暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

如何清理统一审计日志UNIFIED_AUDIT_TRAIL表

原创 让世界为你转身 2024-11-13
385

1.清除所有统一审计日志

统一审计日志(unified audit trail)可以使用 DBMS_AUDIT_MGMT 包进行清理。

sqlplus / as sysdba SQL> select count(1) from unified_audit_trail; COUNT(*) ---------- 2619 SQL> BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE); END; / PL/SQL procedure successfully completed. SQL> select count(*) from unified_audit_trail; COUNT(*) ---------- 1

2.清除指定日期之前的审计日志

如果您不想清除所有审计记录并保留最新记录,也可以使用 last_arch_timestamp。

BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,last_archive_time => TO_TIMESTAMP('10-SEP-0714:10:10.0','DD-MON- RRHH24:MI:SS.FF')); END; / BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => TRUE); END; /

说明: 由于统一审计将审计日志缓存在内存中以实现有助于提高性能的“延迟写入”功能,因此某些符合删除条件的记录可能仍会保留在缓存中,为了得到更一致/符合期待的结果,在调用 dbms_audit_mgmt.clean_audit_trail 之前,追加调用DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL,先刷一下这些缓存。

3.通过job定期清理指定日期之前的审计日志

BEGIN DBMS_AUDIT_MGMT.CREATE_PURGE_JOB( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, audit_trail_purge_interval => 24 /* hours */, audit_trail_purge_name => 'CLEANUP_AUDIT_TRAIL_UNIFIED', use_last_arch_timestamp => TRUE); END; / BEGIN DBMS_SCHEDULER.create_job ( job_name => 'audit_last_archive_time', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, TRUNC(SYSTIMESTAMP)-10); END;', start_date => SYSTIMESTAMP, repeat_interval => 'freq=daily; byhour=0; byminute=0; bysecond=0;', end_date => NULL, enabled => TRUE, comments => 'Automatically set audit last archive time.'); END; /

可以将清除作业和last_archive_timestamp的自动推进合并到一个调度程序代码中。

BEGIN DBMS_SCHEDULER.create_job ( job_name => 'PURGE_UNIFIED_AUDIT_JOB', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, SYSTIMESTAMP-31); DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => TRUE); END;', start_date => '', repeat_interval => 'freq=daily; byhour=3; byminute=10; bysecond=0;', end_date => NULL, enabled => TRUE, comments => 'Purge unified audit trail older than 31 days.'); END; /
最后修改时间:2024-11-14 09:01:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论