获得XML格式的Oracle 10g审计跟踪

  一直以来,Oracle数据库就具有对照数据库审计操作类型,并将审计跟踪保存在一个系统表内的功能。这个表名为SYS.AUD$,位于数据目录下。在一些操作系统中,你还可以给操作系统自己的事件日志子系统写审计记录。

  Oracle 10g增加了第三个选项:在一个操作系统目录中写入文件的功能。这些文件可以为XML格式。

  使用XML而不是SYS.AUD$进行审计有以下几个好处:

  XML文件可以由数据库以外的工具方便地处理,过滤出有用的事件,与其它系统中的审计日志组合,并格式化HTML显示。

  操作系统文件提供比SYS.AUD$表更强大的安全性,特别是在希望阻止数据库管理员查看或修改审计跟踪的情况下。

  即使关闭数据库实例,仍然可以继续使用保存在数据库外的审计日志,但还是可以通过一个新的视图,V$XML_AUDIT_TRAIL,从数据库中对它们进行查询。

  要激活XML文件审计功能,需要设定两个初始化参数。首先,用以下代码确定写入审计文件的目录:

  audit_file_dest='directorypath'

  注意,这不是一个目录对象,如Data Pump,而是操作系统目录的实际路径名。

  然后,设定audit_trail参数:

  audit_trail=xml

  最后,重新启动Oracle实例。audit_trail参数为静态形式,需要重新启动Oracle才能生效。但是,如果使用了DEFERRED参数,你可以通过ALTER SYSTEM命令动态地改变audit_file_dest参数:

  ALTER SYSTEM SET audit_file_dest='directorypath' DEFERRED

  退出会话将把日志保存在原始位置,但新会话将记录到新目的位置。