开启和关闭oracle数据库中的审计功能
第1步:查看审计功能是否开启?
SQL> show parameter audit; NAME TYPE VALUE -------------------- ------------------ ------------------------------ audit_file_dest string /u01/app/oracle/admin/gbk/adump audit_sys_operations boolean FALSE audit_syslog_level string audit_trail string DB
和审计相关的两个主要参数:
1、 参数audit_sys_operations值:
audit_sys_operations:审计SYSDBA的活动。默认值是false。相关的审计信息不会记录在aud$中,因为有可能此时数据库还未启动,只能记录在操作系统层面的文件中。默认为false,不意味着没有审计信息,像conn / as sysdba这样的操作仍然会被记录,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。audit_file_dest参数指定的审计信息的文件夹。
将audit_sys_operations设置成true后,那么做为sysdba或sysoper连接数据库的用户所发布的每条语句都会被写入操作系统的审计中,从而能够给出DBA所进行操作的完整记录。
2、参数audit_trail的值
audit_trail:None:是10g默认值,不做审计;11g默认值DB,将审计结果记录到aud$表中;
db:启用审计,并且把审计结果放到数据库的sys.aud$表中,审计结果只有连接信息
TURE:表示开启;
os:启用审计,并且把审计结果存放在操作系统的数据信息中(若是windows 平台,audit trail会记录在windows的事件管理器中,若是linux/unix平台则会记录在audit_file_dest参数指定文件中;)
db_extended:启用审计,把审计结果存放在数据库的sys.aud$表中,并且在clob列的sqlbind和sqltext字段记录额外的信息(与db大致相同,但审核结果包含了具有绑定变量的SQL语句)
xml:启用审计,以xml格式写所有的审计记录
extended:启用审计,在审计跟踪中记录所有列,包括sqltext和sqlbing值
none/false:表示不开启,禁用审计
第2步:开启审计功能
SQL> alter system set audit_sys_operations=TRUE scope=spfile; --审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;
重启实例
第3步:关闭审计功能
SQL> conn /as sysdba
SQL> show parameter audit
SQL> alter system set audit_trail=none scope=spfile;
SQL> alter system set audit_sys_operations=FALSE scope=spfile;
重启实例
SQL> show parameter audit NAME TYPE VALUE --------------------------- ----------- ----------------------- audit_file_dest string /u01/app/oracle/admin/gbk/adump audit_sys_operations boolean FALSE audit_syslog_level string audit_trail string NONE