考试网 >> IT认证 >> Oracle >> Oracle指导 >> 分析Oracle数据库日志文件(二)

分析Oracle数据库日志文件(二)

发布时间:2006-06-28 09:43     点击:
分页:上一页  1 [2] 3  下一页

  前面我们已经知道了LogMiner的分析结果是放在v$logmnr_contents中,这里面有很多信息,我们可以根据需要追踪我们感兴趣的信息。那么我们通常感兴趣的有哪些呢?

  1、追踪数据库结构变化情况,即DDL操作,如前所述,这个只有Oracle9i才支持:

  SQL> select timestamp,sql_redo from v$logmnr_contents2

  where upper(sql_redo) like '%CREATE%';

  TIMESTAMP

  -------------------

  SQL_REDO

  -------------------------

  2003-09-21 10:01:55

  create table t (c1 number);

  2、追踪用户误操作或恶意操作:

  例如我们现实中有这样需求,有一次我们发现一位员工通过程序修改了业务数据库信息,把部分电话的收费类型改成免费了,现在就要求我们从数据库中查出到底是谁干的这件事?怎么查?LogMiner提供了我们分析日志文件的手段,其中v$logmnr_contents的SESSION_INFO列包含了下面的信息:

  login_username=NEW_97

  client_info= OS_username=oracle8 Machine_name=phoenix1

  OS_terminal=ttyp3 OS_process_id=8004 OS_program name=sqlplus@phoenix1

  (TNS V1-V3)

  虽然其中信息已经很多了,但在我们的业务数据库中,程序是通过相同的login_username登录数据库的,这样单从上面的信息是很难判断的。

  不过我们注意到,因为公司应用服务器不是每个人都有权限在上面写程序的,一般恶意程序都是直接通过他自己的PC连到数据库的,这就需要一个准确的定位。IP追踪是我们首先想到的,并且也满足我们的实际要求,因为公司内部IP地址分配是统一管理的,能追踪到IP地址我们就可以准确定位了。但从面的SESSION_INFO中我们并不能直接看到IP,不过我们还是有办法的,因为这个SESSION_INFO里面的内容其实是日志从V$SESSION视图里提取的,我们可以在生产数据库中创建一个追踪客户端IP地址的触发器:

  create or replace trigger on_logon_trigger

  after logon on database

  begin

  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
分页:上一页  1 [2] 3  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有