Oracle10g新特性——审计
2008-08-30 12:44:35 来源:WEB开发网10g审计能力的提升
Oracle 10g的审计会在非常细节的层次上捕捉用户的动作,它可以是手动审计、基于触发器审计。
假如用户A用以下语句更新了表里面得一条记录:
SQL> update SCOTT.EMP set salary = 12000 where empno = 123456;
你如何去跟踪这样的操作呢?在Oracle 9i中,审计只捕捉了谁做了操作,但不知道他做了什么?例如,它能让你知道A更新过用户scott的表emp,但是却无法知道他更新了工号为123456的员工的薪水信息。它同样在改变字段salary之前无法显示处它的值——要捕捉这样的信息,你只能通过编写自己的触发器来在值改变前捕捉它,或者通过使用Log Miner(日志挖掘器)从归档日志中找出来。
这两种方式都会让你付出较大代价来跟踪和记录数值的变化。使用触发器记录统计信息会造成很大的性能压力。处于性能考虑,在一些情况下(如在三层构架应用中)会禁止使用用户自定义的触发器。日志挖掘器不会产生性能问题,但它必须依赖于归档日志功能已经启动。
在Oracle 9i中出现的细密纹理审计(Fine-grained Auditing FGA),可以同SCN数重新构造老的数据来记录更低层次的变化,但是它只针对select查询,无法记录update、insert和delete这些DML语句。因此,在oracle 10g之前,使用触发器是唯一可以用来跟踪用户在低层次上做的数据操作的途径。
随着10g的带来了在审计方面的两个显著变化,这些限制将全都没有了。因为引入了两种类型的审计——标准审计(所有版本都有)和细密纹理审计(Oracle 9i和以上版本才具备)。我们分别来了解他们,看看它们如何通过互补来提供一个单一的、强大的跟踪能力。
新功能
首先,FGA现在提供了除select以为的DML审计。这些变化记录还是存储在同一个地方:FGA_LOG$,并且可以通过视图DBA_FGA_AUDIT_TRAIL查询到。除了DML语句外,你还可以选择使用触发器跟踪所有相关的字段或者只是其中的一小部分。
更多精彩
赞助商链接