(
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