标准审计:
2.1 分类:
在ORACLE中分别支持以下三种标准审计类型:
语句审计,对某种类型的SQL语句审计,不指定结构或对象。
特权审计,对执行相应动作的系统特权的使用审计。
对象审计,对一特殊模式对象上的指定语句的审计。
这三种标准审计类型分别对如下3方面进行审计:
审计语句的成功执行、不成功执行,或者其两者。
对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
对全部用户或指定用户的活动的审计。
当数据库的审计功能打开后,在语句执行阶段产生审计记录。审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。数据库审计记录是在SYS模式的AUD$表中。
2.2设置ORACLE标准审计:
下列步骤可以设置ORACLE的标准审计功能:
1. 修改参数
修改静态参数AUDIT_TRAIL,并且重启数据库。AUDIT_TRAIL的取值如下:
DB/TRUE:启动审计功能,并且把审计结果存放在数据库的 SYS.AUD$ 表中
OS:启动审计功能,并把审计结果存放在操作系统的审计文件中以trace文件格式存放。
XML:启动审计功能,并把审计结果放在操作系统的审计文件中以xml文件格式存放。
DB_EXTENDED:具有DB/TRUE的功能,另外填写AUD$的SQLBIND和SQLTEXT字段(10g添加)
NONE/FALSE:关闭审计功能
如果设置 AUDIT_TRAIL = OS,审计信息会记录在操作系统审计文件中,文件会自动存放在AUDIT_FILE_DEST所指定的目录下,并且文件名包含进程的PID。
比如:
AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit
$ ls -l $ORACLE_HOME/rdbms/audit
-rw-rw---- 1 ora92 dba 881 Mar 17 09:57 ora_13264.aud
2.确认审计相关的表是否已经安装
SQLPLUS> connect / AS SYSDBA
SQLPLUS> select * from sys.aud$; -- 没有记录返回
SQLPLUS> select * from dba_audit_trail; -- 没有记录返回
如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。
SQLPLUS> connect / as sysdba
SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql
审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。
.3. 设置所需要的审计信息
下面是一个例子
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- --------------------------
audit_sys_operations boolean TRUE
audit_trail string DB_EXTENDED
SQL> audit drop any table by scott by session whenever successful;
Audit succeeded.
其中:
by access: 每一个被审计的操作都会生成一条audit trail。
by session,一个会话里面同类型的操作只会生成一条audit trail
两者使用时也是有限制的,oracle官方的解释如下:
However, several audit options can be set only BY ACCESS:
All statement audit options that audit DDL statements
All privilege audit options that audit DDL statements
10g中虽然仍然支持ddl的by session的语法不报错,但实际生效的却是by access,11g中如果对ddl进行by session的审计会直接报错。
4将审计相关的表移动到其他表空间:
由于AUD$表等审计相关的表存放在SYSTEM表空间,因此为了不影响系统的性能,保护SYSTEM表空间,最好把AUD$移动到其他的表空间上。移动时要注意索引的移动。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-682699/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13177610/viewspace-682699/