일반유저에게 kill session 권한 주기

2019.08.12 06:48

ischo 조회 수:22269

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


system 유저가 아닌 일반유저도 kill session 할 권한이 필요하지만, 보안상 안전하지 않다.

대신에 DBA유저가 kill session 프로시저를 생성하여 일반유저에게 프로시저 실행권한을 줄 수 있다.



1. 프로시저 생성


SYS로 접속후


SQL> CREATE OR REPLACE PROCEDURE SP_KILL_SESSION (P_SID NUMBER, P_SERIAL NUMBER)
AS
V_USER_NAME   VARCHAR2 (30);
BEGIN

    SELECT USERNAME

    INTO V_USER_NAME
    FROM V$SESSION
    WHERE SID = P_SID AND SERIAL# = P_SERIAL;
        IF V_USER_NAME IN ('NONDBAUSER1, NONDBAUSER2')
            THEN
            EXECUTE IMMEDIATE
            'ALTER SYSTEM KILL SESSION ''' || P_SID || ',' || P_SERIAL || '''';
       ELSIF V_USER_NAME IS NULL
      THEN
      RAISE_APPLICATION_ERROR (-20001, 'Invalid Session ID');
      END IF;
 END SP_KILL_SESSION;
/



2. 일반유저에게 프로시저 실행권한 주기

SQL> grant execute on sys.SP_KILL_SESSION to <nondbauser>;


3. 프로시저 synonym 생성

SQL> CREATE SYNONYM <nondbauser>.SP_KILL_SESSION FOR SYS.SP_KILL_SESSION;


4. 일반유저에서 프로시저 실행 테스트


SQL> conn <non-dbausr>/<password>

SQL> SELECT SID, SERIAL# FROM V$SESSION WHERE USERNAME='<non-dbauser>';

        SID    SERIAL#
---------- ----------
      6718      29167
      3425      49921

SQL> exec SP_KILL_SESSION(6718,29167);

SQL> SELECT SID, SERIAL# FROM V$SESSION WHERE USERNAME='<non-dbauser>';

        SID    SERIAL#
---------- ----------
      3425      49921





번호 제목 글쓴이 날짜 조회 수
115 exp error - ORA-19206: Invalid value for query or REF CURSOR parameter 조인상 2010.05.12 156631
114 centOS 5.2 에 오라클 10g 설치 조인상 2010.05.12 109931
113 오라클 온라인백업 스크립트 (ksh 용) [1] file 조인상 2010.05.12 100773
112 ORA-28040 : No matching authentication protocol 조인상 2014.11.13 67285
111 히든 파라미터 확인하는 쿼리 조인상 2010.05.12 62448
110 성능분석을 위한 v$sysstat, v$sesstat, v$system_event 조회 조인상 2011.09.27 50449
109 오라클 패치후 각 컴퍼넌트들 버전 확인 쿼리 조인상 2010.10.05 46331
108 exp실행시 에러. ORA-06512 SYS.DBMS_METADATA_INT 조인상 2010.05.12 32654
107 오라클 11g - ADR/ADRCI : 새로운 alertlog 위치 조인상 2011.05.17 29717
106 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 조인상 2010.05.12 24652
105 datafile, redolog, controlfile 위치 변경하기 조인상 2012.08.02 24615
» 일반유저에게 kill session 권한 주기 ischo 2019.08.12 22269
103 ORA-04063: package body "EXFSYS.DBMS_EXPFIL_EXP" has errors 조인상 2012.01.04 20761
102 온라인 백업방법 begin~end backup 조인상 2010.05.12 20669
101 windows용 오라클 온라인 백업 스크립트 file 조인상 2010.07.01 20142
100 SQL developer 실행시 jvm.dll 오류 발생 조치 방법 조인상 2013.01.23 19760
99 Oracle 설치문서에서 보는 ASM file 조인상 2012.03.30 19746
98 online backup(archive log mode) 조인상 2010.05.12 19439
97 ORA-01089 : 오라클 프로세스를 kill 한 후 로그인 못 할때 조인상 2010.06.20 19426
96 ORA-01555 : snapshot too old: rollback segment number %s with name \"%s\" too small ischo 2012.04.10 19263
서버에 요청 중입니다. 잠시만 기다려 주십시오...