DB (데이터베이스)/Oracle (오라클)

[Oracle] Oracle audit_trail로 object 접근 관리 이벤트 감사 방법

뜽배 2024. 6. 24. 18:55
728x90
반응형

audit_trail로 특정 object에 접근하는 이벤트 감사 방법에 대해 알아보자

 

2024.06.03 - [DB (데이터베이스)/Oracle (오라클)] - [Oracle] Oracle audit_trail파라미터 설정방법\

 

[Oracle] Oracle audit_trail파라미터 설정방법

oracle DB에서 audit_trail을 설정 하는 방법에 대해 알아보자우선 oracle audit기능에 대해 설명해보자면.  AUDIT기능은 oracle DB의 사용자 행동을 감시하는 목적으로 사용된다. 이 기능을 통해 어

seungbae-db.tistory.com

 

위 글에서 audit_trail을 설정 하는 방법에 대해 알아보았다.

audit_trail로 object접근 감사에 방법에 대해 알아보자

 

우선 object접근 감사 이벤트의 종류는 
* select : object에서 데이터 조회 이벤트
* insert : object에 데이터 삽입 이벤트
* update : object의 데이터 변경 이벤트
* delete : object의 데이터 삭제 이벤트
* execute : procedure나 package 등을 실행하는 이벤트
* alert : object변경 이벤트
* grant : object에 권한부여 이벤트
* referrences : object를 참조하는 이벤트
* index : object에 index생성 이벤트
* create : 새로운 object를 생성하는 이벤트
* drop : object를 삭제하는 이벤트
* rename : object의 이름을 변경하는 이벤트
* truncate : object의 데이터를 truncate하는 이벤트
* flashback : object를 flashback하는 이벤트
이렇게 있다.

 

1. audit_trail 파라미터 확인

show parameter audit_trail;

 

 

※(중요) "DB" 또는 "DB, EXTENDED"로 되어 있어야 한다.

 

 

2. object 관리 감사 활성화 


일부 예시로 object관리 감사설정을 해보자

-- create table
audit create table;

-- create procedure
audit create procedure;

-- select any table
audit select any table;

-- select 특정 테이블
audit select on system.test;

-- execute 특정 object
audit execute on system.sp_test;

-- 특정(system, test) 유저 object생성 감사
audit create table by system, test;

 

 

3. object관리 감사 활성화 확인

SELECT *
FROM dba_stmt_audit_opts;

 

위 쿼리를 통해 감사 설정을 확인할 수 있다.

 

SELECT *
FROM dba_obj_audit_opts
WHERE owner = 'SYSTEM';

그리고 특정 테이블을 감사 설정 한 것은 위 쿼리를 통해 알 수 있다.

 

 

4. object 관리 감사 조회

SELECT 
	OS_USERNAME,
	USERNAME,
	USERHOST,
	TERMINAL,
	TIMESTAMP,
	OBJ_NAME,
	ACTION_NAME,
	LOGOFF_TIME,
	RETURNCODE
FROM DBA_AUDIT_TRAIL
WHERE action_name LIKE '%USER%'
ORDER BY TIMESTAMP;

"RETURNCODE = 0" 인 것은 성공적으로 수행된 SQL을 의미한다.

 

 

5. object 관리 감사 비활성화

-- create table
noaudit create table;

-- create procedure
noaudit create procedure;

-- select any table
noaudit select any table;

-- select 특정 테이블
noaudit select on system.test;

-- execute 특정 object
noaudit execute on system.sp_test;
728x90
반응형