Oracle数据库审计策略
Oracle数据库默认是关闭审计的,一旦开启了会对oracle数据库的性能产生影响。
Oracle默认安装后审计策略设置
默认情况下,审计策略是关闭的,而且审计记录存储的模式也未选择。所以默认情况下,某用户对某表做了某操作都是不做任何记录的。
audit_sys_operations 值只有TRUE和FALSE两个之分。
但是audit_trail值有如下情况:(1)audit_trail=’DB’
表示把审计日志记录到数据库sys.audit$表中。(2)audit_trail=’DB,extended’
在DB选项基础上,在audit$表中还增加了SQLBIND和SQLTEXT两个clob栏位,用来存储SQLBIND和SQLTEXT信息。(3) audit_trail=‘OS’
审计结果存放在操作系统的审计信息中,若是windows 平台,audit
trail会记录在windows的事件管理器中,若是linux/unix平台则会记录在audit_file_dest参数指定文件中。(4)audit_trail=‘xml’审计结果存放在XML中,
并包含XML文件可以由数据库以外的工具方便地处理,过滤出有用的事件,与其它系统中的审计日志组合,并格式化HTML显示,操作系统文件提供比SYS.AUD$表更强大的安全性,特别是在希望阻止数据库管理员查看或修改审计跟踪的情况下,即使关闭数据库实例,仍然可以继续使用保存在数据库外的审计日志。用以下代码确定写入审计文件的目录:
audit_file_dest='directorypath'
。注意,directorypath这不是一个目录对象,而是操作系统目录的实际路径名。(5)
audit_trail=‘xml,extended’,存储为xml,并包含SQLBIND和SQLTEXT信息。audit_trail是static参数,每次修改后需要重新启动数据库才能生效。
标准数据库审计的数据放于基表aud$上,而aud$位于system表空间上,众所周知,system表空间是存放数据字典表的地方,为避免因审计而较大的影响数据库的性能,应将此表移到其它表空间上。生产环境建议建一个单独的表空间存放审计表。
底层表是AUD$,上层该查询哪些表可通过SQL>
Select * from dict d where d.table_name like
‘%AUD%’;来查询
设置audit_trail值为DB,把审计日志记录到数据库sys.aud$表中。SQL > alter system set audit_sys_operat