일반유저에게 kill session 권한 주기
2019.08.12 06:48
원문 : 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
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
15 | Oracle Database 2 Day DBA - 부록 A. ASM | 조인상 | 2012.04.05 | 18676 |
14 | ORA-01555 : snapshot too old: rollback segment number %s with name \"%s\" too small | ischo | 2012.04.10 | 19263 |
13 | ASM 정리자료 | 조인상 | 2012.04.26 | 14510 |
12 | Introduce Oracle ExaData | 조인상 | 2012.05.24 | 13694 |
11 | datafile, redolog, controlfile 위치 변경하기 | 조인상 | 2012.08.02 | 24616 |
10 | SQL study - 특정열 앞에 순차적인 값 붙여 나열하기 | 조인상 | 2012.11.23 | 14835 |
9 | Orace Lisence 정책 | 조인상 | 2013.01.22 | 13811 |
8 | SQL developer 실행시 jvm.dll 오류 발생 조치 방법 | 조인상 | 2013.01.23 | 19760 |
7 | Oracle Database 10g: New Features for Oracle8i OCPs | 조인상 | 2013.05.13 | 13468 |
6 | checkpoint not complete에 대해서 | ischo | 2013.05.22 | 248 |
5 | REDO 로그 그룹의 용량을 늘리기 [1] | 조인상 | 2013.05.22 | 15177 |
4 | ORA-28002 : the password will expired within N days | 조인상 | 2014.01.09 | 11274 |
3 | ORA-28040 : No matching authentication protocol | 조인상 | 2014.11.13 | 67285 |
2 | Oracle expdp 로 백업하기 | 조인상 | 2015.02.23 | 9094 |
» | 일반유저에게 kill session 권한 주기 | ischo | 2019.08.12 | 22277 |