1 定义
audit_sys_operations审计SYSDBA的活动。默认值是false。相关的审计信息不会记录在aud$中,因为有可能此时数据库还未启动,只能记录在操作系统层面的文件中。默认为false,不意味着没有审计信息,像conn / as sysdba这样的操作仍然会被记录。audit_file_dest参数指定的审计信息的文件夹。
将audit_sys_operations设置成true后,那么做为sysdba或sysoper连接数据库的用户所发布的每条语句都会被写入操作系统的审计中,从而能够给出DBA所进行操作的完整记录。
2 实验
audit_sys_operations设置成true。要重启数据库。
2.1 Select操作
SQL> select * from scott.emp;
[oracle@cent4 adump]$ ll -t
总用量 572
-rw-r----- 1 oracle oinstall 1935 10月 26 21:39 ora_3600.aud
-rw-r----- 1 oracle oinstall 51892 10月 26 21:38 ora_3821.aud
……
[oracle@cent4 adump]$ cat ora_3600.aud
……
Wed Oct 26 21:39:04 2011
ACTION : 'select * from scott.emp'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/1
STATUS: 0
2.2 show parameter操作
SQL> show parameter audit
NAME TYPE VALUE
----------------------------- ----------- ---------------------------------
audit_file_dest string /u01/app/oracle/admin/ltest/adump
audit_sys_operations Boolean TRUE
audit_syslog_level string
audit_trail string DB, EXTENDED
……
Wed Oct 26 21:41:26 2011
ACTION : 'SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number', 6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%audit%') ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/1
STATUS: 0
可以从trace中看到,show parameter audit语句而是显示其原始语句,如下:
select name name_col_plus_show_param, decode(type, 1, 'boolean', 2, 'string', 3, 'integer', 4, 'file', 5, 'number', 6, 'big integer', 'unknown') type, display_value value_col_plus_show_param from v$parameter where upper(name) like upper('%audit%') order by name_col_plus_show_param, rownum;