Oracle10g审计
===========================================================
要使用oracle的审计功能必须先设定初始化参数audit_trail
audit_trail 参数的值可以设置为以下几种:
1. NONE:不开启审计功能。
2. DB:开启审计功能,并将审计记录保存在数据库系统提供的审计视图内,要求用于审计功
能实现的视图已经创建。
Oracle10g审计要使用oracle的审计功能必须先设定初始化参数audit_trail
audit_trail 参数的值可以设置为以下几种:
1. NONE:不开启审计功能。
2. DB:开启审计功能,并将审计记录保存在数据库系统提供的审计视图内,要求用于审计功
能实现的视图已经创建。
3. OS:审计记录写入一个操作系统文件。
4. TRUE:与参数DB效果等同。
5. FALSE:不开启审计功能。
注意此参数不是一个动态参数,需要重启数据库才能生效.
Oracle10g审计比9i在功能上有了加强,9i当中你能看到是谁做的操作,但不能看到具体操作内
容,而10g倪补了这一点,例子如下:
用add_policy过程创建审计任务
begin
dbms_fga.add_policy (
object_schema => 'TEST',
object_name => 'T',
policy_name => 'ACCOUNTS_ACCESS',
audit_column => 'ID',
audit_condition => 'ID>1',
statement_types => 'UPDATE'
);
end;执行语句触发审计:
update t set name = 'aa' where id = 100
这样可以在DBA_FGA_AUDIT_TRAIL视图的SQL_TEXT字段中找到执行的语句
第二种审计方法是使用语句
例如:
想对用户gu的所有表的所有sql跟踪用如下语句
Audit table by gu by access;
想对表test的insert进行跟踪用如下语句
Audit insert on test by access
然后可以在DBA_AUDIT_TRAIL视图中查看审计信息
这种方法记录了事务的transactionid,通过和视图FLASHBACK_TRANSACTION_QUERY连接查询可
以知道记录中实际记录的是什么.
select start_scn, start_timestamp,
commit_scn, commit_timestamp, undo_change#, row_id, undo_sql
from flashback_transaction_query
where xid = '';
这两种方法都有记录操作的SCN,这可以通过”闪回”功能来找回操作之前的数据
Select * from test as of SCN 12345
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25136010/viewspace-683012/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25136010/viewspace-683012/