DBA需要知道的Oracle 10g的审计内容
2007-05-05 12:03:48 来源:WEB开发网核心提示: 该命令获取一个事务项,并且生成一个审计记录,DBA需要知道的Oracle 10g的审计内容(4),但是,您怎样知道该审计记录真正记录的是什么内容呢?如果记录是一个事务,因此,即使原始事务回滚,该事务标识号就会存储在该列中,您可以使用它把审计跟踪与 FLASHBACK_TRANSACTION
该命令获取一个事务项,并且生成一个审计记录。但是,您怎样知道该审计记录真正记录的是什么内容呢?如果记录是一个事务,该事务标识号就会存储在该列中。您可以使用它把审计跟踪与 FLASHBACK_TRANSACTION_QUERY 视图联接起来。下面是该视图中的列的一个小示例:
select start_scn, start_timestamp,
commit_scn, commit_timestamp, undo_change#, row_id, undo_sql
from flashback_transaction_query
where xid = '<the transaction id>';
除了记录对该事务所做的通常的统计外,如 undo change#、rowid 等等,Oracle 10g 还可以在 UNDO_SQL 列中记录撤消对事务所作更改 SQL 命令,以及在 ROW_ID 列显示的受影响行的 rowid。
系统更改号。 最终,它记录更改前的值。您怎样执行该操作呢?按 Oracle 9i 中的 FGA 所指出的那样,更改前的值可以通过闪回查询来获取。但是您需要知道该更改的系统更改号 (SCN),它可以在审计跟踪的该列中捕获到。您可以发出下面的命令:
select size from class as of SCN 123456
where where class_id = 123;
这将显示用户所看到的内容或更改前的值。
扩展的 DB 审计
记住我们最初的兴趣:为了捕获用户发出的 SQL 语句,以及在标准审计中无法捕获的绑定变量。在 Oracle 数据库 10g 中进入增强型审计,其中这些任务变得如同更改一个简单的初始化参数一样微不足道。只需把下列代码行放入参数文件中。
audit_trail = db_extended
如果使用该参数,该参数将在各列中记录 SQL 文本和绑定变量值。该值在早期的版本中不可用。
触发器何时是必要的
避免误检。 审计跟踪是通过来自于原始事务的自治事务生成的。因此,即使原始事务回滚,它们也会提交。
[]
更多精彩
赞助商链接