Audit Trail Purge 1편 (수동 Purge)

안녕하세요 Thinking Man 입니다.

이번 글에서는 Audit Trail 데이터를 삭제하는 방법 중 수동으로 삭제하는 방법에 대해 알아보도록 하겠습니다.

이번 글을 읽게 되면 Audit Trail Purge(삭제)하는 방법의 종류와 수동 삭제 절차 및 방법에 대해서 알 수 있습니다.

이 글은 Oracle 11gR2 공식 문서를 참고하여 작성하였습니다.

 

 

Audit Trail Purge
Designed by Freepik

Audit Trail Purge 

이번 글에서는 아래 세가지 내용에 대해서 다루어 보도록 하겠습니다.

– Audit Trail Purge 정보

– Audit Trail Purge 방법

– Audit Trail 수동 삭제

 


Audit Trail Purge 정보

Audit 데이터가 계속 증가만 한다면 새로운 데이터를 저장할 수 없는 상황이 발생할 수 있기 때문에 주기적으로 Audit Trail 데이터를 Archiving 하고 삭제해야 합니다.

DB Audit 데이터 및 OS Audit Trail 데이터를 삭제하는 두 가지 방법에 대해 알아보겠습니다.

방법 1. DB Audit Trail 데이터의 일부를 삭제

방법 2. DB Audit Trail 및 OS Audit Trail 의 데이터를 수동으로 삭제 또는 지정된 Interval 간격으로 자동으로 삭제 작업 수행

방법2의 경우 Archive 타임스탬프 이전에 생성된 Audit Trail 레코드를 삭제하거나 모든 레코드를 삭제합니다.

Audit Trail 삭제는 DBMS_AUDIT_MGMT 패키지를 사용하여 작업을 수행하며 해당 패키지를 실행하기 위해서는 EXECUTE 권한이 필요합니다.

 

Audit Trail Purge 방법

아래 표는 Audit Trail Purge 방법을 선택하는 가이드를 제공합니다.

표) Audit Trail Purge 방법

Purge 방법 설명 및 단계
주기적으로 지정된 타임스탬프 이전에 생성된 Audit 레코드를 삭제

또는

주기적으로 모든 Audit 레코드를 삭제

일정한 시간에 삭제 작업을 예약하고 진행할 수 있습니다.

예) 매주 일요일 새벽 1시에 삭제 작업 진행

STEP

1. Audit Trail 데이터를 삭제하는 중에도 감사 데이터가 쌓일 수 있기 때문에 Redo Log 및 Archive Log 사이즈를 조정을 검토 (필요한 경우 수행)

2. 아카이브 전략과 타임스탬프 계획을 수립

3. Audit Trail 정리 작업을 초기화

4. 삭제하고자 하는 Audit 레코드의 기준을 위해 아카이브 타임스탬프를 설정

5. 삭제 작업을 생성하고 예약

6. Audit Trail 을 일괄 삭제도 가능 (선택적 사용)

상세 내용은 다음 글 “Audit Trail Purge 2편 (자동 Purge)“를 참조

모든 감사 레코드

또는

특정 타임스탬프 이전에 생성된레코드를 삭제

삭제 스케쥴을 생성하지 않고 Audit 데이터를 즉시 수동으로 한번에 삭제하는 방법.

STEP

1. Audit Trail 데이터를 삭제하는 중에도 감사 데이터가 쌓일 수 있기 때문에 Redo Log 및 Archive Log 사이즈를 조정을 검토 (필요한 경우 수행)

2. 아카이브 전략과 타임스탬프 계획을 수립

3. Audit Trail 정리 작업을 초기화

4. 삭제하고자 하는 Audit 레코드의 기준을 위해 아카이브 타임스탬프를 설정

5. Audit Trail 을 일괄 삭제 가능 (선택적 사용)

6.삭제 작업 수행

상세 내용은 아래의 “Audit Trail 수동 삭제” 부분 참조

DB Audit Trail의 일부 Audit 레코드만 삭제 Audit 레코드의 일부만 수동으로 삭제하고자 할 때 사용.

예) 2024년 1월 1일 ~ 2024년 1월 31일 사이에 생성된 모든 Audit 레코드를 삭제

STEP

1. Audit Trail 데이터를 삭제하는 중에도 감사 데이터가 쌓일 수 있기 때문에 Redo Log 및 Archive Log 사이즈를 조정을 검토 (필요한 경우 수행)

2. 삭제하고자 하는 Audit 레코드를 아카이브

3. 관리자 권한이 부여된 사용자로 접속하여 SYS.AUD$ 테이블의 특정 기간을 삭제

 

 

Audit Trail 수동 삭제

Audit Trail 데이터를 예약 없이 수동으로 즉시 삭제 할 수 있습니다. 아카이브 타임스탬프 이전에 생성 된 Audit Trail 데이터를 삭제할 수 있고 Audit Trail의 모든 데이터를 한번에 삭제할 수도 있습니다.

OS 및 XML 파일의 Audit 데이터를 수동 삭제하기 위해서는 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 프로시저를 사용하며 아래는 해당 프로시저의 특징입니다.

  • 해당 프로시저 수행 시 현재 감사 디렉토리만 정리 합니다.
  • MS Windows 에서는 해당 패키지는 Windows 이벤트 뷰어를 정리 하지 않습니다. Windows 는 OS Audit 레코드가 이벤트 뷰어에 기록되기 때문에 AUDIT_TRAIL_TYPE 속성 값을 AUDIT_TRAIL_OS로 설정해도 이벤트 뷰어는 정리되지 않습니다.
  • UNIX 시스템에서 CLEAN_AUDIT_TRAIL 프로시저 수행 시 AUDIT_TRAIL_TYPE 속성을 AUDIT_TRAIL_OS로 설정하면  AUDIT_FILE_DEST 매개변수에 설정된 Audit 디렉토리 밑에 .aud 파일들을 삭제합니다.
  • AUDIT_TRAIL_TYPE 변수를 AUDIT_TRAIL_XML로 설정한 경우에는 현재 감사 디렉토리 밑에 .xml 파일들을 정리합니다. Oracle 에서 XML Audit 생성 시에 XML 파일 목록을 나열하는 인덱스 파일(adx_$ORACLE_SID.txt)이 있는데 프로시저 수행 시 이 파일을 삭제하지 않습니다.

 

DB Audit Trail 데이터 삭제의 경우에는 DBMS_AUDIT_MGMT.INIT_CLEANUP 프로시저를 사용하여 정리 작업 초기화 한 후 DELETE 문으로 SYS.AUD$ 테이블을 삭제해야 합니다. DELETE 문을 사용하여 삭제하는 방법은 다음 글에서 다룰 예정입니다.

 

Audit Trail 수동 삭제 단계 

1. 다음글의 내용인 Audit Trail 자동 삭제 작업과 단계는 동일하며 각 단계별 내용은 “Audit Trail Purge 2편 (자동 Purge)“에서 상세히 다룰 예정입니다.

1-1 : 필요한 경우 Redo Logfile, Archive Log 사이즈 조정

1-2 : 아카이브 전략과 타임스탬프 계획 수립

1-3 : Audit Trail 정리 작업 초기화

1-4 : 필요한 경우 아카이브 타임스탬프 설정

1-5 : 삭제 작업 생성과 스케쥴링

1-6 :  Audit Trail 을 일괄 삭제도 가능 (선택적 사용)

 

2. DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 프로시저를 실행하여 Audit Trail 데이터를 삭제

예제)

BEGIN  DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
   AUDIT_TRAIL_TYPE           =>  DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
   USE_LAST_ARCH_TIMESTAMP    =>  TRUE );
END;
/

위 예제에서 각 속성에 대한 설명

  • AUDIT_TRAIL_TYPE : 삭제할 유형을 아래의 옵션 중 하나를 선택하여 지정

– AUDIT_TRAIL_AUD_STD : 표준 감사 테이블인 AUD$

– AUDIT_TRAIL_FGA_STD : 상세 감사 테이블인 FGA_LOG$

– AUDIT_TRAIL_DB_STD : 표준 및 상세 감사 테이블 모두

– AUDIT_TRAIL_OS : .aud 확장자를 가진 OS Audit Trail 파일. (이 속성은 Windows 이벤트 로그에는 적용되지 않습니다.

– AUDIT_TRAIL_XML : XML Audit Trail 파일.

– AUDIT_TRAIL_FILES : OS 및 XML Audit Trail 파일 모두 지정.

– AUDIT_TRAIL_ALL : 모든 Audit Trail 데이터. 즉 DB Auduit Trail, OS Audit Trail 모두 포함

  • USE_LAST_ARCH_TIMESTAMP : 삭제할 타임스탬프 기준을 선택. TRUE, FALES 중 하나를 입력

– TRUE : 최종 아카이브 타임스탬프 이전에 생성된 Audit 데이터를 삭제합니다. 아카이브 타임스탬프 설정에 대한 상세 내용은 “여기”를 참조하십시오. Default 값은 TRUE 이며 Oracle 에서는 USE_LAST_ARCH_TIMESTAMP를 TRUE로 설정하는 것을 권고합니다.

– FALSE : 최종 아카이브 타임스탬프를 고려하지 않고 모든 Audit 데이터를 삭제합니다. 삭제되면 안되는 Audit 데이터를 실수로 삭제할 수 있으니 주의해서 사용하시기 바랍니다.

 

같이 읽으면 좋은 글

Audit Trail 관리 2편(OS Audit Trail 관리)

Audit Trail 관리 1편(DB Audit Trail 관리)

Oracle Fine Grained Auditing 2편 (DBMS_FGA 패키지 활용법)

Oracle Fine Grained Auditing 1편 (상세감사)

Oracle 보안 관리 Audit 10편

1 thought on “Audit Trail Purge 1편 (수동 Purge)”

Comments are closed.