Oracle10g新特性——审计
2008-08-30 12:44:35 来源:WEB开发网有时候企业用户需要通过一个代理用户连接数据库,特别是在多点应用时。一个用户可以通过以下方式授予代理权限:
SQL> alter user scott grant connect to appuser;
这一命令将使用户scott可以最为appuser连接数据库,成为一个代理用户。在这一例子中,字段COMMENT_TEXT将通过存入值PROXY来记录下scott作为代理用户的情况。但在9i中,代理用户的会话ID不会记录下来。在10g中,字段PROXY_SESSIONID记录下来代理用户的session id。
INSTANCE_NUMBER 在Oracle RAC环境中,能够知道用户从哪个实例连上数据库会比较有用。在10G中,这个字段就记录了实例初始化参数设置的唯一的实例号。
OS_PROCESS 在9i及以下版本中,审计跟踪记录中只会记录SID,而不会记录操作系统的进程ID。但是操作系统进程ID对于以后对照trace文件是非常必要的。在10g中,这个字段就记录了操作系统进程id。
TRANSACTIONID 这是一个极其重要的信息。加入用户执行了以下语句:
SQL> update CLASS set size = 10 where class_id = 123;
这一操作产生了一个事务,并记录一条审计记录。但你如何知道记录中实际记录的是什么呢?如果这条记录是一个事务,这个字段就记录了事务的ID。你可以用它遇视图FLASHBACK_TRANSACTION_QUERY连接查询。下面就是一个例子:
SQL> commit;
SQL> select start_scn, start_timestamp,
2 commit_scn, commit_timestamp, undo_change#, row_id, undo_sql
3 from flashback_transaction_query
4 where xid = '<the transaction id>';
除了哪些关于这个事务的统计信息,如undo change#、rowid等等,10g中还记录了回归事务变化的SQL语句在字段UNDO_SQL中,记录了回归影响的行的rowid在字段ROW_ID中。
赞助商链接