各位前辈,大家好。我是初出茅庐的ORALCE小弟。
遇到个问题,想请教各位。
如果我想查看谁在什么时候对ORALCE做了什么操作,比如查询了什么SQL,建立了什么表的话,如何查看呢?
简单的说,就是查看操作ORACLE的流水账改如何做呢?马上结账

解决方案 »

  1.   

    没那么简单的哦http://wallimn.javaeye.com/blog/688123看看里面有关于oracle审计的内容 
      

  2.   

    需要打开oracle审计功能才能记录,并且消耗一定性能。
    简单打开审计如下
    1、设置参数
    alter system set audit_trail=db scope=spfile;
    2、重启数据库
    3、打开相应的审计(审计选项很多),如,对用户test对表操作的审计
    audit table by test;
    4、以dba查看审计记录
    select * from dba_audit_trail;

    更多关于审计

      

  3.   

    我试验过审查了,不过好像没有能实现我要的记录LOG的功能。不知道能不能再指教指教
      

  4.   

    比如说。我现在做了一个操作,SELECT * from TABLEA 然后我怎么看得到以下两件事情
    1.我用什么用户登录了数据库
    2.我在那个时刻做了select * from TABLEA 的表
      

  5.   

    如果是仅仅是查询,是看不到的.
    如果是查update可以参考如下:
    --
    begin 
    SYS.DBMS_LOGMNR.ADD_LOGFILE('C:\oracle\oradata\jhoracle\REDO01.LOG', --这个文件名你要查询你自己机器的名字
    sys.dbms_logmnr.New); 
    end; select min(low_time),  max(high_time), 
          min(low_scn),  max(next_scn) -1 
    from V$logmnr_logs; begin 
    SYS.DBMS_LOGMNR.START_LOGMNR(Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG); 
    end; Select 
    SCN, 
    timestamp, 
    sql_redo, 
    session# session_num, 
    username, 
    session_info 
    From V$LOGMNR_CONTENTS where sql_redo like '%update%'
    Order by 1; 
    begin 
    SYS.DBMS_LOGMNR.END_LOGMNR(); 
    end;--
      

  6.   

    非常感谢dawugui的解决方案。马上结账。并且希望能和您有更深的交流。谢谢!
      

  7.   

    dawugui的解决方案挺好,谢谢!