2015년 10월 15일 목요일

[오라클TRIGGER예제]SCOTT 계정으로 로그인을 막는 트리거

[오라클TRIGGER예제]SCOTT 계정으로 로그인을 막는 트리거

SQL> conn system/onj@onj
연결되었습니다.

SQL> CREATE OR REPLACE TRIGGER deny_scott
  2  AFTER LOGON ON  DATABASE
  3  BEGIN
  4    DBMS_OUTPUT.PUT_LINE(sys_context('USERENV','SESSION_USER') || ' logged o
n...');
  5
  6      --IF sys_context('USERENV','SESSION_USER') = 'SCOTT' THEN
  7      IF USER = 'SCOTT' THEN
  8        RAISE_APPLICATION_ERROR(-20001,'SCOTT NO ACCESS');
  9      END IF;
 10  END;
 11  /

트리거가 생성되었습니다.

-- SCOTT계정이 DBA권한이 있다면 로그온을 막을 수가 없으므로 DBA권한이 있는 경우라면 회수
SQL> revoke dba from scott;
revoke을(를) 성공했습니다.

SQL> conn scott/tiger@onj
ERROR:
ORA-00604: 순환 SQL 레벨 1 에 오류가 발생했습니다
ORA-20001: SCOTT NO ACCESS
ORA-06512:  2행

경고: 이제는 ORACLE에 연결되어 있지 않습니다.

댓글 없음:

댓글 쓰기