標籤:oracle purge fga audit trail
注意:本文為原創文章,轉載請註明出處:
http://blog.csdn.net/msdnchina/article/details/38435999
一、確認有哪些fga審計策略,
從select * from dba_audit_policies就可以查詢到審計策略,請注意,查詢結果中的每一行,就是一個審計策略。
另外,fga審計記錄存放在這個視圖中:select * from dba_fga_audit_trail
該視圖對應的後台基表為:sys.fga_log$,見如下的視圖。注意,fga審計策略不是存放在sys.aud$表中!!!
---摘錄開始CREATE OR REPLACE VIEW DBA_FGA_AUDIT_TRAIL(session_id, timestamp, db_user, os_user, userhost, client_id, econtext_id, ext_name, object_schema, object_name, policy_name, scn, sql_text, sql_bind, comment$text, statement_type, extended_timestamp, proxy_sessionid, global_uid, instance_number, os_process, transactionid, statementid, entryid, obj_edition_name, dbid)ASselect sessionid, CAST ( (FROM_TZ(ntimestamp#,'00:00') AT LOCAL) AS DATE ), dbuid, osuid, oshst, clientid, auditid, extid, obj$schema, obj$name, policyname, scn, to_nchar(substr(lsqltext,1,2000)), to_nchar(substr(lsqlbind,1,2000)), comment$text, DECODE(stmt_type, 1, 'SELECT', 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 'INVALID'), FROM_TZ(ntimestamp#,'00:00') AT LOCAL, proxy$sid, user$guid, instance#, process#, xid, statement, entryid, obj$edition, dbidfrom sys.fga_log$---摘錄結束
二、禁用fga審計策略:
以下以 policy_name => ‘EMP_FGA_AUDIT‘為例子說明,當然,客戶的環境中,可能存在多個審計策略。
begindbms_fga.enable_policy ( object_schema => 'SCOTT', object_name =>'EMP', policy_name => 'EMP_FGA_AUDIT', enable => FALSE);end;
請補全其他的審計策略
三、執行exp 匯出sys.fga_log$表
exp sys/aa file=fga_logdmp log=fga_logexp.log tables=sys.fga_log$ buffer=99999999
請注意:sys.fga_log$為5G大小(請注意,該表有lob欄位,不能只查詢dba_segments來確定帶有lob列的表的大小),所以,匯出可能需要一段時間。
四、 刪除日誌表:
truncate table sys.fga_log$
五、開啟fga審計策略:
begindbms_fga.enable_policy ( object_schema => 'SCOTT', object_name =>'EMP', policy_name => 'EMP_FGA_AUDIT', enable => TRUE);end;
請補全其他的審計策略
注意:上邊=>後邊的資訊,可以從dba_audit_policies查詢出來。