다른 명령
특정 IP, 또는 특정 Windows User, Software에서만 접속이 가능하게 접속제한을 하는 방법
- LOGON 시 trigger를 이용하여 ERROR Massage를 강제 발생.
- RAISE_APPLICATION_ERROR 이용
- SYSDBA User로 접속하여 Trigger 생성=> 특정 유저의 접속을 원하는 방식으로 차단 가능
- OS_USER, MODULE 등은 SYS_CONTEXT 함수를 사용하여 처리
생성 TRIGGER
CREATE OR REPLACE TRIGGER SCOTT_LOGON AFTER LOGON ON SCOTT.SCHEMA BEGIN -- 특정 IP '192.168.10.23' 에서만 접속 가능하게 하기 IF (ORA_CLIENT_IP_ADDRESS != '192.168.10.23') THEN RAISE_APPLICATION_ERROR(-20002,'Oops! Access denied!'); END IF; -- 특정 OS USER(GDHONG)만 접속 가능하게 하기 -- OS USER 알아내기 방법 : 윈도우 + R => CMD 타이핑 => set user 타이핑 => USERNAME 확인 IF (UPPER(SYS_CONTEXT('USERENV','OS_USER'))!='scott') THEN RAISE_APPLICATION_ERROR(-20002,'Oops! Access denied!'); END IF; -- 특정 Software(sqlplus.exe) 만 차단하기 IF (UPPER(SYS_CONTEXT('USERENV','MODULE'))='SQLPLUS.EXE') THEN RAISE_APPLICATION_ERROR(-20002,'Oops! Access denied!'); END IF; END; /
SYSTEM Event attribute 관련 하여서는 http://docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg14evt.htm 참고