"특정 IP,프로그램(Module) 접속 차단"의 두 판 사이의 차이
DB CAFE
Goldlight111 (토론 | 기여) (→생성 TRIGGER) |
|||
18번째 줄: | 18번째 줄: | ||
-- 특정 OS USER(GDHONG)만 접속 가능하게 하기 | -- 특정 OS USER(GDHONG)만 접속 가능하게 하기 | ||
+ | -- OS USER 알아내기 방법 : 윈도우 + R => CMD 타이핑 => set user 타이핑 => USERNAME 확인 | ||
IF (UPPER(SYS_CONTEXT('USERENV','OS_USER'))!='scott') THEN | IF (UPPER(SYS_CONTEXT('USERENV','OS_USER'))!='scott') THEN | ||
RAISE_APPLICATION_ERROR(-20002,'Oops! Access denied!'); | RAISE_APPLICATION_ERROR(-20002,'Oops! Access denied!'); |
2021년 5월 4일 (화) 14:40 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
특정 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 참고