background image

Oracle 审计功能

1、什么是审计
审计(

Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为

审计记录:存储在

system

 

表空间中的

SYS.AUD$表中,可通过视图 dba_audit_trail 查看)

或操作系统审计记录中(默认位置为

$Oracle_BASE/admin/$ORACLE_SID/adump/)。。默认

情况下审计是没有开启的。

当数据库的审计是使能的,在语句执行阶段产生审计记录。审计记录包含有审计的操作、

用户执行的操作、操作的日期和时间等信息。

不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连

Instance;启动数据库;关闭数据库。

1)Oracle 审计功能

审计是对选定的用户动作的监控和记录,通常用于:
审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该

 数据

库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。

监视和收集关于指定数据库活动的数据。例如:

DBA 可收集哪些被修改、执行了多少次

逻辑的

I/O 等统计数据。

ORACLE 所允许的审计选择限于下列方面:
审计语句的成功执行、不成功执行,或者其两者。
对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
对全部用户或指定用户的活动的审计。

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 表空间又足够的空间存放审计信

息。

安装后要重启数据库
将审计相关的表移动到其他表空间
由于

AUD$表等审计相关的表存放在 SYSTEM 表空间,因此为了不影响系统的性能,

保护

SYSTEM 表空间,最好把 AUD$移动到其他的表空间上。可以使用下面的语句来进行

移动:

sql>connect / as sysdba;
sql>alter table aud$ move tablespace <new tablespace>;
sql>alter index I_aud1 rebuild online tablespace <new tablespace>;
SQL> alter table audit$ move tablespace <new tablespace>;
SQL> alter index i_audit rebuild online tablespace <new tablespace>;
SQL> alter table audit_actions move tablespace <new tablespace>;
SQL> alter index i_audit_actions rebuild online tablespace <new tablespace>;
2、和审计相关的两个主要参数

1)Audit_sys_operations: