网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > Oracle10g新特性—审计-性能调优  

Oracle10g新特性—审计-性能调优

2008-07-17  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        10g审计能力的提升 网管网www_bitscn_com

        Oracle 10g的审计会在非常细节的层次上捕捉用户的动作,它可以是手动审计、基于触发器审计。 网管bitscn_com

        假如用户A用以下语句更新了表里面得一条记录:

         SQL> update SCOTT.EMP set salary = 12000 where empno = 123456;
网管朋友网www_bitscn_net

        你如何去跟踪这样的操作呢?在Oracle 9i中,审计只捕捉了谁做了操作,但不知道他做了什么?例如,它能让你知道A更新过用户scott的表emp,但是却无法知道他更新了工号为123456的员工的薪水信息。它同样在改变字段salary之前无法显示处它的值——要捕捉这样的信息,你只能通过编写自己的触发器来在值改变前捕捉它,或者通过使用Log Miner(日志挖掘器)从归档日志中找出来。

网管u家www.bitscn.net

        这两种方式都会让你付出较大代价来跟踪和记录数值的变化。使用触发器记录统计信息会造成很大的性能压力。处于性能考虑,在一些情况下(如在三层构架应用中)会禁止使用用户自定义的触发器。日志挖掘器不会产生性能问题,但它必须依赖于归档日志功能已经启动。 网管下载dl.bitscn.com

        在Oracle 9i中出现的细密纹理审计(Fine-grained Auditing FGA),可以同SCN数重新构造老的数据来记录更低层次的变化,但是它只针对select查询,无法记录update、insert和delete这些DML语句。因此,在oracle 10g之前,使用触发器是唯一可以用来跟踪用户在低层次上做的数据操作的途径。 中国网管论坛bbs.bitsCN.com

        随着10g的带来了在审计方面的两个显著变化,这些限制将全都没有了。因为引入了两种类型的审计——标准审计(所有版本都有)和细密纹理审计(Oracle 9i和以上版本才具备)。我们分别来了解他们,看看它们如何通过互补来提供一个单一的、强大的跟踪能力。

网管网www.bitscn.com

        新功能

网管u家www.bitscn.net

        首先,FGA现在提供了除select以为的DML审计。这些变化记录还是存储在同一个地方:FGA_LOG$,并且可以通过视图DBA_FGA_AUDIT_TRAIL查询到。除了DML语句外,你还可以选择使用触发器跟踪所有相关的字段或者只是其中的一小部分。 网管有家bitscn.net

        通过命令AUDIT执行的标准审计能够很容易的跟踪某个特殊对象。例如,你需要跟踪用户scott的表EMP上的所有更新操作,可以用以下命令:

         SQL> AUDIT UPDATE on scott.emp BY ACCESS;

网管u家www.bitscn.net

        这一命令会在任意一个用户更新scott.emp表时记录在审计跟踪表AUD$中,并通过DBA_AUDIT_TRAIL视图可以查询。 网管下载dl.bitscn.com

        这一功能在10g以前的版本中也有。但是在哪些版本中,写入的跟踪信息仅限于一小部分相关信息,如执行操作的用户,时间,终端ID等。而哪些修改的值这样的重要信息却没有记录。在10g中,除了以前版本记录的哪些信息以外,还记录了很多这种重要信息。审计的主要表AUD$增加了几个字段来记录这些信息,相应的的视图的DBA_AUDIT_TRAIL也增加了这些字段以便查询。让我们再深入了解一下。

网管下载dl.bitscn.com

        EXTENDED_TIMESTAMP 这一字段用TMESTAMP(6)的格式记录了审计记录的时间戳,它以格林尼治时间(UTC)记录到了秒的第9位小数以后的时间以及相应的时区信息,下面时一个例子:

         2004-3-13 18.10.13.123456000 -5:0
网管bitscn_com

        这意味着时间在美国东部标准时间2004年3月13日,时区比UTC完5个小时。这一扩展格式的时间在一个精确得多得精度上记录了审计跟踪时间,对于哪些数据库时间存在时区差得系统来说非常有用。 网管u家bitscn.net

        GLOBAL_UID和PROXY_SESSIONID 当要鉴别一个用于鉴权的管理组件如Oracle Internet Directory时,用户在数据库中可能以不同的形式可见。例如,他们可能作为一个企业用户鉴权进入数据库。审计这些用户时将无法在视图DBA_AUDIT_TRAIL的字段USERNAME中记录他们的企业userid,这样记录下来的信息是无用的。在Oracle 10g中,如果没有进一步的操作或设置,全局(或企业)用户会被唯一的记录在字段GLOBAL_UID中。这一字段可以被用于查询目录服务器以找出这个企业用户的完整信息。

网管论坛bbs_bitsCN_com

        有时候企业用户需要通过一个代理用户连接数据库,特别是在多点应用时。一个用户可以通过以下方式授予代理权限:

         SQL> alter user scott grant connect to appuser;
网管网www_bitscn_com

        这一命令将使用户scott可以最为appuser连接数据库,成为一个代理用户。在这一例子中,字段COMMENT_TEXT将通过存入值PROXY来记录下scott作为代理用户的情况。但在9i中,代理用户的会话ID不会记录下来。在10g中,字段PROXY_SESSIONID记录下来代理用户的session id。 网管u家www.bitscn.net

        INSTANCE_NUMBER 在Oracle RAC环境中,能够知道用户从哪个实例连上数据库会比较有用。在10G中,这个字段就记录了实例初始化参数设置的唯一的实例号。

网管下载dl.bitscn.com

        OS_PROCESS 在9i及以下版本中,审计跟踪记录中只会记录SID,而不会记录操作系统的进程ID。但是操作系统进程ID对于以后对照trace文件是非常必要的。在10g中,这个字段就记录了操作系统进程id。

网管联盟bitsCN@com

        TRANSACTIONID 这是一个极其重要的信息。加入用户执行了以下语句:

         SQL> update CLASS set size = 10 where class_id = 123;
        SQL> commit;
网管论坛bbs_bitsCN_com

 

网管u家u.bitsCN.com

TAGs   性能   审计   特性       记录   用户   信息   跟踪   10g   一个      
 上一篇:Oracle10g新特性—工作量自动收集-性能调优   下一篇:Oracle10g新特性—等待接口-性能调优
Oracle10g新特性—审计-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: