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

2019.08.12 06:48

ischo 조회 수:25820

원문 : 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





번호 제목 글쓴이 날짜 조회 수
» 일반유저에게 kill session 권한 주기 ischo 2019.08.12 25820
114 Oracle expdp 로 백업하기 조인상 2015.02.23 9211
113 ORA-28040 : No matching authentication protocol 조인상 2014.11.13 67445
112 ORA-28002 : the password will expired within N days 조인상 2014.01.09 11370
111 REDO 로그 그룹의 용량을 늘리기 [1] 조인상 2013.05.22 15299
110 checkpoint not complete에 대해서 ischo 2013.05.22 357
109 Oracle Database 10g: New Features for Oracle8i OCPs 조인상 2013.05.13 13576
108 SQL developer 실행시 jvm.dll 오류 발생 조치 방법 조인상 2013.01.23 19891
107 Orace Lisence 정책 조인상 2013.01.22 13947
106 SQL study - 특정열 앞에 순차적인 값 붙여 나열하기 조인상 2012.11.23 14953
105 datafile, redolog, controlfile 위치 변경하기 조인상 2012.08.02 24773
104 Introduce Oracle ExaData 조인상 2012.05.24 17953
103 ASM 정리자료 조인상 2012.04.26 14614
102 ORA-01555 : snapshot too old: rollback segment number %s with name \"%s\" too small ischo 2012.04.10 19407
101 Oracle Database 2 Day DBA - 부록 A. ASM file 조인상 2012.04.05 18787
100 Oracle 설치문서에서 보는 ASM file 조인상 2012.03.30 19865
99 AIX 6.1에 오라클 9i 설치 조인상 2012.03.24 17430
98 ORA-04063: package body "EXFSYS.DBMS_EXPFIL_EXP" has errors 조인상 2012.01.04 20883
97 AIO on HP-UX filesystem 조인상 2011.11.01 13331
96 Diagnosing and Resolving ORA-4030 errors (Oracle Metalink) 조인상 2011.10.31 16278
서버에 요청 중입니다. 잠시만 기다려 주십시오...