개요
DBMS Audit 기능은 DBA가 데이터베이스 내의 작업 내역을 감시하고 특정 활동을 감사하여 Data를 수집할 수 있도록 지원합니다.
Tibero DBMS Audit 종류로 시스템 권한(System Privilege)과 스키마 객체 권한(Schema Object Privilege)에 대한 감사를 지원합니다.
본 문서에서는 사용자가 특정 권한을 사용했는지 여부를 기록하는 시스템 권한 감사 (System Privilege Audit)에 대해 소개합니다.
방법
시스템 권한 감사 (System Privilege Audit)
시스템 특권에 대한 감사는 시스템 권한(System Privilege)을 감사합니다. 시스템 권한을 부여 받은 사용자가 그 권한으로 사용하며, 모든 문장에 대해 감사하여 Audit Trail에 저장합니다.
•
사용 문법
AUDIT System_Privileges
BY USER
[BY SESSION | ACCESS]
[WHENEVER [NOT] SUCCESSFUL ]
SQL
복사
•
System_Privileges : 감사할 시스템 권한입니다.
•
BY USER : 지정한 사용자를 감사하도록 지정합니다. (생략 시 모든 사용자 감사)
•
BY [SESSION | ACCESS]
◦
BY SESSION : 동일한 유형의 SQL문에 대해서는 하나의 감사 기록 작성합니다.
◦
BY ACCESS : 감사할 문장을 실행할 때마다 기록, 동일 문장 반복하여도 매번 기록합니다.
◦
생략 시 BY SESSION 으로 적용됩니다.
•
WHENEVER
◦
SUCCESSFUL : SQL 문장이 성공적으로 실행 되었을 경우 기록을 남깁니다.
◦
NOT SUCCESSFUL : 지정한 SQL 문장이 실패했을 경우 기록을 남깁니다.
◦
생략 시 SQL 문장이 성공과 실패 모두 기록합니다.
•
Create Table 권한에 대한 감사 예제
다음은 AUD 사용자가 Table 생성 시 성공하면 감사 기록을 하는 예제입니다.
1.
Sample User 생성
$ tbsql sys/tibero
SQL> create user AUD identified by AUD;
User 'AUD' created.
SQL> grant CONNECT, RESOURCE to AUD;
Granted.
SQL
복사
2.
AUDIT 적용 및 확인
SQL> AUDIT create table
by AUD
by access
whenever successful;
Audited.
SQL> select * from DBA_PRIV_AUDIT_OPTS
where user_name ='AUD';
USER_NAME PROXY_NAME PRIVILEGE SUCCESS FAILURE
---------- ---------- ------------ ---------- ----------
AUD CREATE TABLE BY ACCESS NOT SET
1 row selected.
SQL
복사
3.
적용한 Audit TEST
SQL> conn AUD/AUD
Connected to Tibero.
SQL> create table AUDIT_TB ( num number, name varchar2(10));
Table 'AUDIT_TB' created.
SQL
복사
4.
Audit Log 확인
AUDIT_TRAIL = DB_EXTENDED 설정 시 View 확인 방법
SQL > select USERNAME, USERHOST, TIMESTAMP, OWNER, OBJ_NAME, SQL_TEXT
from user_audit_trail;
USERNAME USERHOST TIMESTAMP OWNER OBJ_NAME SQL_TEXT
---------- ------------- ------------------- ---------- ---------------- --------------------------------------------------------
AUD 127.0.0.1 2014-08-18:16:23:26 AUD AUDIT_TB create table AUDIT_TB ( num number, name varchar2(10))
1 row selected.
SQL
복사
AUDIT_TRAIL = OS 설정 시 LOG 확인 방법
$ cat audit.log
2014/08/18 15:42:07.341
SESS_ID:[19] SERAIL_NO:[14242] AUD_NO:[2] STMT_ID:[0] USER_NAME:[AUD]
USER_HOST:[127.0.0.1] OS_USER:[tibero] CLIENT_ID:[tbsql] PRIV_NO:[-489] ACTION:[S]
OBJ_OWNER:[AUD] OBJ_NAME:[AUDIT_TB] USGMT_ID:[8] SLOTNO:[32] WRAPNO:[29] TSN:[145806]
PID:[2845] SQLTEXT:[create table AUDIT_TB ( num number, name varchar2(10))]
SQL
복사
참고
일반 User가 시스템 특권을 감사하기 위해서는 AUDIT SYSTEM 시스템 특권이 필요합니다.
$ tbsql AUD/AUD
SQL> AUDIT create table by AUD;
TBR-17004: Permission denied.
SQL> conn sys/tibero
Connected to Tibero.
SQL> grant AUDIT SYSTEM to AUD;
Granted.
SQL> conn AUD/AUD
Connected to Tibero.
SQL> AUDIT create table by AUD;
Audited.
SQL
복사