행위

특정 IP,프로그램(Module) 접속 차단

DB CAFE

thumb_up 추천메뉴 바로가기


특정 IP, 또는 특정 Windows User, Software에서만 접속이 가능하게 접속제한을 하는 방법

  1. LOGON 시 trigger를 이용하여 ERROR Massage를 강제 발생.
  2. RAISE_APPLICATION_ERROR 이용
  3. SYSDBA User로 접속하여 Trigger 생성=> 특정 유저의 접속을 원하는 방식으로 차단 가능
  4. 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 참고