适用于:
Oracle Server - Enterprise Edition - Version: 9.2.0.8 to 11.2.0.1 - Release: 9.2 to 11.2
Information in this document applies to any platform.
用途:
这个文件旨在帮助数据库管理员检查产生过多的审计记录背后的根本原因。
这个文件已三种类别分为三段:
--绿色为预期的行为
--黄色属于产品定制
--红色对应产品的缺陷
最后审查日期:
August 10, 2010
读者说明:
故障排除指导在调试一个特定的问题时提供辅助。如果可能,诊断工具包含在这个文档中用于故障排除辅助。
故障排除详细:
绿色区域:
1) 用过期的条款BY SESSION 启动oracle11g数据库。这是一个数据库安全指导的文档:
“BY SESSION 条款审计语句,对于每一个审计事件,现在会写入一条审计记录。在之前的发行版中,BY SESSION 对所有对相同类型的在同一模式中使用相同用户会话执行的的SQL语句或操作都会写入一条审计记录。现在,对于所有的审计操作,所有BY SESSION 和BY ACCESS都会写入一条审计记录。此外,对于LOGON和LOGOFF,有分开的审计记录。”
在这之上的改变,预期有些审计记录或文件将会增长的相当大。
黄色区域
1) 如果没有使用正确的情况,审计选项在时间上将会变得非常昂贵。
例如:考虑一个特别的用于和DBA需要可用,你需要审计选择操作运行的场景,如下审计选项:
sql> audit select table;
之上的审计选项将审计目标用户,但是他也会审计所有的其他用户,同时生成很多的审计记录。
代替之上的语句,这个一个更好的选择,他将只会审计相对应的用户而不是所有的用户.
sql>audit select table by scott;
如果你看到有大量的审计记录,那么推荐你回顾数据库中所有的审计选项,最后移除不需要的选项。The following queries can be used to get the current audit settings:
SELECT * FROM DBA_STMT_AUDIT_OPTS order by user_name,audit_option;
SELECT * FROM DBA_PRIV_AUDIT_OPTS order by user_name,privilege;
SELECT * FROM DBA_OBJ_AUDIT_OPTS order by owner,object_name,object_type;
SELECT * FROM ALL_DEF_AUDIT_OPTS;
The following two notes can be used:
Note 1068714.6 How does the NOAUDIT option work
Note 287436.1 SCRIPT Generate AUDIT and NOAUDIT Statements for Current Audit Settings
2) 一些DBA在oracle企业管理器中使用SYSDBA用户来监控数据库,由于每一个SYSDBA会话都会被审计,所以,在oracle企业管理器中链接数据库时,将产生大量的审计文件。
在这种情况下,可以使用DBSNMP用户代替SYS用户监控数据库。See Note 1196323.1.
你可以使用DBSNMP用户监控所有的备用数据库实例。
红色区域:
如果你的问题不在上面的两个区域中,那么你可能遇上了产品缺陷。一般情况下,这个产品缺陷不回位于审计代码中,但是会位于经常连接数据库的组件代码中。
Some of the known issues that fall in this category are :
1.) A logical standby database can cause many SYSDBA connections to an ASM instance. See Note 7185872.8
2.) Excessive number of audit trace files are generated under the AUDIT_FILE_DEST folder of the ASM instances, if PQ slave processes open/close ASM files very frequently. See Note 813416.1.
3.) Huge number of audit records are seen with ACTION:[3] "102" . This issue is fixed in Bug 9744092.See Note 1087380.1 for details.
4.) In a RAC environment many audit records with a 'ROLLBACK' statement are seen in the audit files.
This problem was analyzed in Bug 9816214.
5.) If you see many audit files accompanied by the "AUD: Audit Commit Delay exceeded, written a copy to OS Audit Trail" messages in the alert.log then you are hitting the unpublished Bug 8642202. .
6.) One may see many small OS or XML audit files after upgrading to 11g or after starting to use DBMS_AUDIT_MGMT. This issue is classified as unpblished Bug 7427320. See Note 804624.1 (paragraph 3.) for a detailed explanation.
怎样自动清除审计数据?
1.) In 11.2 one can use DBMS_AUDIT_MGMT package to clean up audit records and more :
Refer Chapter 26 Of Oracle Database PL/SQL Packages and Types Reference 11gR2.
2.)在早期版本中,一个含有框架脚本的用于清除审计记录。The following documents will be helpful:
Note.73408.1 How to Truncate, Delete, or Purge Rows from the Audit Trail Table SYS.AUD$.
Note.166301.1 How to Reorganize SYS.AUD$ Table.