기술 정보
home
채널 소개
home

DBMS Audit 개요 및 기능 정보

문서 유형
기술 정보
분야
모니터링/점검
키워드
DBMS Audit
Previlege Audit
Schema Object Audit
1 more property

개요

Tibero Audit 기능은 DBA가 데이터베이스 내의 작업 내역을 감시하고 특정 활동을 감사하여 Data를 수집할 수 있도록 지원합니다.
이를 통해 보안 강화, 이상 행위 탐지, 규제 준수 등에 활용할 수 있습니다.
본 문서에서는 Tibero Audit 개요 및 기능 정보를 안내합니다.
주의
감사 작업 수행 시에는 로그 기록 등I/O가 발생하므로 성능이 저하될 수 있습니다.
감사할 사용자를 정의하거나 BY SESSION 단위의 감사를 하는 등 감사 옵션을 최소화 하여 감사 요구를 사전에 정의해야 합니다.

방법

AUDIT 기능 종류

Tibero는 시스템 특권에 대한 감사(Previlege Audit)와 스키마 객체에 대한 감사(schema object audit)를 지원한합니다.

Previlege Audit (시스템 특권에 대한 감사)

시스템, 세션, 롤, 데이터베이스 등 시스템 특권에 대한 감사를 의미합니다.
감사할 시스템 특권을 지정할 수 있으며, 모든 시스템 특권을 감사할 수도 있습니다.
사용자를 지정하여 감사할 수 있으며, 지정하지 않을 경우 모든 사용자에 대해 적용됩니다.

Schema Object Audit (스키마 객체에 대한 감사)

테이블, 뷰, 시퀀스 등 스키마 객체에 대한 특권에 대한 감사를 의미합니다.
해당 객체에 사용 가능한 모든 스키마 객체 혹은 감사할 대상이 되는 객체를 지정하여 감사가 가능합니다.

AUDIT 관련 View

View
설 명
user_audit_trail
현재 사용자의 감사 기록을 조회하는 View 입니다.
dba_audit_trail
모든 감사 기록을 조회하는 View 입니다.
user_obj_audit_opts
현재 사용자가 소유한 스키마 객체에 대한 감사 정보를 조회하는 View 입니다.
dba_obj_audit_opts
모든 스키마 객체에 대한 감사 정보를 조회하는 View 입니다.
dba_priv_audit_opts
현재 시스템과 사용자의 시스템 특권에 대한 감사 정보를 조회하는 View 입니다.
참고
dba_obj_audit_opts 의 옵션은 [A/S]/[A/S] 형식입니다.
‘/’ 기준으로 왼쪽은 SUCCESSFUL , 오른쪽은 NOT SUCCESSFUL을 나타냅니다.
A는 By ACCESS로 해당 명령이 내려질 때마다 감사를 기록하고, S는 By SESSION으로 접속된 Session에 하나의 감사 기록만 생성합니다.
구 분
By SESSION
By ACCESS
NONE
–/–
–/–
SUCCESSFUL
S/–
A/–
NOT SUCCESSFUL
–/S
–/A
SUCCESSFUL/NOT SUCCESSFUL
S/S
A/A

시스템 특권(System Privileges) 조회 명령어

SQL> SELECT * FROM SYS.SYSTEM_PRIVILEGES;
SQL
복사

객체 특권(Object Privileges) 조회 명령어

SQL> SELECT * FROM SYS.OBJECT_PRIVILEGES;
SQL
복사

AUDIT Log

Log File 경로

/home/tibero/audit/audit_trail.log
SQL
복사

Log File 설명

항 목
설 명
SESS_ID
Session ID
SERIAL_NO
특정 Session을 식별할 수 있는 Serial Number
AUD_NO
Session이 열린 다음 기록된 Audit Entry의 순차적인 번호
STMT_ID
Audit을 남기게 한 Statement를 parsing 하여 나온 Physical Plan의 내부적인 PPID
CLIENT_ID
클라이언트 이름
PRIV_NO
해당 Statement를 수행하는 데에 필요한 Privilege 번호
ACTION
해당 Statement가 결국 성공했는지 여부를 표시 - S : 성공 / F : 실패
USGMT_ID
현재 트랜잭션을 위한 Undo를 기록한 Undo Segment ID
SLOTNO
Segment에 위치한 Slot들 중 어떤 Slot 인지를 식별할 수 있는 값
WRAPNO
트랜잭션을 식별할 수 있는 Serial Number

AUDIT Log 예제

$ cat audit.log 2014/08/19 11:00:57.708 SESS_ID:[21] SERAIL_NO:[39856] AUD_NO:[3] STMT_ID:[1608] USER_NAME:[TEST] USER_HOST:[127.0.0.1] OS_USER:[tibero] CLIENT_ID:[tbsql] PRIV_NO:[3] ACTION:[S] OBJ_OWNER:[AUD] OBJ_NAME:[AUDIT_TB] USGMT_ID:[10] SLOTNO:[19] WRAPNO:[32] TSN:[158353] PID:[2845] SQLTEXT:[insert into AUD.AUDIT_TB values ( 1, 'TMAXDATA')]
SQL
복사