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

2019.08.12 06:48

ischo 조회 수:22324

원문 : 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 온라인 백업/리스토어 (imp/exp) 조인상 2010.05.09 12785
114 아카이브 모드로 변환하기 조인상 2010.05.12 12791
113 OS재설치 후 오라클 복구(솔라리스) 조인상 2010.05.12 6779
112 백업에 관한 조언 조인상 2010.05.12 5184
111 필수로 암기해야 할 view 들... 조인상 2010.05.12 5748
110 오라클 뷰들... 조인상 2010.05.12 5908
109 9i 에서의 언두세그먼트 관리 조인상 2010.05.12 7342
108 오라클 재시작시에 롤백세그먼트 OFFLINE 조인상 2010.05.12 5784
107 오라클 버전업 후 exp할때 ORA-00904에러 조인상 2010.05.12 10450
106 아카이브 로그 강제로 생성하는 명령어 조인상 2010.05.12 10806
105 오라클 패치 후 export가 안된다! [1] 조인상 2010.05.12 10849
104 control file 재생성하기 조인상 2010.05.12 11671
103 온라인 백업방법 begin~end backup 조인상 2010.05.12 20682
102 64비트 Solaris에 오라클 9.2.0 설치 하기 조인상 2010.05.12 10527
101 처음 오라클 설치시 SGA 영역크기 정하는 규칙 조인상 2010.05.12 8351
100 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 조인상 2010.05.12 7149
99 인텔 펜티엄4 기반 Windows에 설치시 오류에 대해서 조인상 2010.05.12 5795
98 오라클 8.1.7 -> 7.3.4 로 DB data 이전 조인상 2010.05.12 6922
97 캐릭터셋 변경방법 조인상 2010.05.12 7356
96 [기타] 디비튜닝에 대한 질문과답변내용... 조인상 2010.05.12 5718
서버에 요청 중입니다. 잠시만 기다려 주십시오...