开启和关闭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