TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-08-29 |
제목 | LOGON ON TRIGGER를 이용한 접속제한 | TRACE 설정 | ||
---|---|---|---|
LOGON ON TRIGGER를 이용한 접속제한 | TRACE 설정
=============================================== PURPOSE ------- 데이터베이스에 접속하는 IP, USERNAME으로 접속을 제한하거나, TRACE를 설정하는 방법에 대하여 알아본다. Explanation ----------- DB를 접속하는 사용자를 USER/ROLE로 구분하여 관리하는 Accecs Policy 라면 관계 없지만 하나의 USER/PASSWORD로 Application을 이용하는 경우에는 Application을 통해서만 DB에 접속하도록 통제하는 것이 불가능하게 된다. 즉 일부 사용자가 PC에 설치된 SQL*Net을 통하여 SQL*Plus나 3rd party TOOL로 DB에 접속하여 데이터의 열람/조작을 한다면 이를 방지하거나 추적하기가 어렵다. 아래 예제는 DB server로의 TELNET접속을 통한 특정 DB User(SCOTT)의 접속을 원천적으로 막고, 특정 IP(152.69.41.232)로부터 접속하는 Session에 trace를 설정하는 예제이다. REM ------------------------------------------------------------------------ REM DISCLAIMER: REM This script is provided for educational purposes only. It is NOT REM supported by Oracle World Wide Technical Support. REM The script has been tested and appears to work as intended. REM You should always run new scripts on a test instance initially. REM ------------------------------------------------------------------------ REM Main text of script follows: -- Use an error number in the range of -20000 to -20999 -- CREATE OR REPLACE TRIGGER SCOTT_LOGON_TRACE AFTER LOGON ON SCOTT.SCHEMA BEGIN -- LOCAL=YES로 접속 못 하도록 설정 -- IF ( ORA_CLIENT_IP_ADDRESS IS NULL ) THEN RAISE_APPLICATION_ERROR ( -20001 , 'Local connection as SCOTT is not allowed!' ); -- LOOPBACK으로 접속 못 하도록 설정(DB server IP:152.69.41.21) -- ELSIF ( ORA_CLIENT_IP_ADDRESS = '152.69.41.21' ) THEN RAISE_APPLICATION_ERROR ( -20002 , 'IP ' || ORA_CLIENT_IP_ADDRESS || ' is not allowed to connect database as SCOTT!' ); -- 특정 IP에 대하여 TRACE 설정 -- ELSIF ( ORA_CLIENT_IP_ADDRESS = '152.69.41.232' ) THEN SYS.DBMS_SESSION.SET_SQL_TRACE(TRUE); END IF; END; / ----------- cut ---------------------- cut -------------- cut -------------- Example ------- sqlplus /nolog SQL*Plus: Release 8.1.7.0.0 - Production on Wed Nov 6 17:16:57 2002 (c) Copyright 2000 Oracle Corporation. All rights reserved. SQL> conn scott/tiger ERROR: ORA-00604: error occurred at recursive SQL level 1 ORA-20001: Local connection as SCOTT is not allowed! ORA-06512: at line 3 SQL> conn scott/tiger@kyulee ERROR: ORA-00604: error occurred at recursive SQL level 1 ORA-20002: IP 152.69.41.21 is not allowed to connect database as SCOTT! ORA-06512: at line 7 SQL> conn system/manager Connected. Reference Documents ------------------- 1. http://metalink.oracle.com/metalink/plsql/ml2_documents.showNot?p_id=178924.1&p_font= 2. Bulletin No: 11848 Product: ORACLE_SERVER Subject: ORACLE 8I SYSTEM EVENT TRIGGER ( ORACLE 8.1.6 ) |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |