background image

2)dba_stmt_audit_opts:可以用来查看 statement 审计级别的 audit options,即数据库

设置过哪些

statement 级别的审计。dba_obj_audit_opts,dba_priv_audit_opts 视图功能与之类似

3)all_def_audit_opts:用来查看数据库用 on default 子句设置了哪些默认对象审计。

6、取消审计
将对应审计语句的

audit 改为 noaudit 即可,

audit session whenever successful

对应的取消审计语句为

noaudit session whenever successful;

7、10g 中的审计告知一切
Oracle 数据库 10g 审计以一种非常详细的级别捕获用户行为,它可以消除手动的、基于

触发器的审计。

假定用户

 Joe 具有更新那张表的权限,并按如下所示的方式更新了表中的一行数据:

update SCOTT.EMP set salary = 12000 where empno = 123456;
您如何在数据库中跟踪这种行为呢?在

 Oracle 9i 数据库及其较低版本中,审计只能捕

“谁”执行此操作,而不能捕获执行了“什么”

 

内容。例如,它让您知道

Joe 

 

更新了

SCOTT 

所有的表

EMP

 

,但它不会显示他更新了该表中员工号为

123456 的薪水列。它不会显示更改

 

前的薪水列的值

— 要捕获如此详细的更改,您将不得不编写您自己的触发器来捕获更改

 

前的值,或使用

LogMiner 将它们从存档日志中检索出来。

细粒度审计(

FGA

 

 

):精细审计 ,是在

Oracle 9i 

 

中引入的,能够记录

SCN 号和行级

 

的更改以重建旧的数据,但是它们只能用于

select 

 

语句,而不能用于

DML 

 

,如

update 、

insert 和 delete 

 

语句。因此,对于

Oracle 

 

数据库

10g 之前的版本,使用触发器虽然对于以行

级跟踪用户初始的更改是没有吸引力的选择,但它也是唯一可靠的方法。

8、审计的相关基本操作

1)审计功能的参数控制

audit_trail 参数的值可以设置为以下几种
1. NONE:不开启
2. DB:开启审计功能
3. OS:审计记录写入一个操作系统文件。
4. TRUE:与参数 DB 一样
5. FALSE:不开启审计功能。
这个参数是写道

spfile 里面的,需要重启数据库

2)查看是否审计功能是否启动

SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      NONE

3)开启审计

SQL> conn /as sysdba
SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump