能查到谁,什么时候,运行了什么样的SQL语句吗?我的数据库莫名其妙的被修改的很多数据。
能查那个IP,在那个时间段 做了什么样的操作吗?

解决方案 »

  1.   

    SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
      FROM V$SESSION
      

  2.   

    尝试通过日志去看看,具体怎么搞,不清楚.SQL SERVER是通过Log Explorer
      

  3.   

    这个能查到谁什么时候Logon的。 SQL_ADDRESS 字段是干什么用的?
    能查到里边某个人做了什么样的操作能查吗?
    或者不管是谁,在某个时间段内转了什么样的SQL语句能查到吗?
    数据库是 Oracle
      

  4.   

    以后可以用oracle提供的审计(auditing)功能来记录这些信息。
      

  5.   

    Oracle的SYS_CONTEXT使用列表: 
    SELECT SYS_CONTEXT ('USERENV', 'TERMINAL') terminal,
           SYS_CONTEXT ('USERENV', 'LANGUAGE') LANGUAGE,
           SYS_CONTEXT ('USERENV', 'SESSIONID') sessionid,
           SYS_CONTEXT ('USERENV', 'INSTANCE') INSTANCE,
           SYS_CONTEXT ('USERENV', 'ENTRYID') entryid,
           SYS_CONTEXT ('USERENV', 'ISDBA') isdba,
           SYS_CONTEXT ('USERENV', 'NLS_TERRITORY') nls_territory,
           SYS_CONTEXT ('USERENV', 'NLS_CURRENCY') nls_currency,
           SYS_CONTEXT ('USERENV', 'NLS_CALENDAR') nls_calendar,
           SYS_CONTEXT ('USERENV', 'NLS_DATE_FORMAT') nls_date_format,
           SYS_CONTEXT ('USERENV', 'NLS_DATE_LANGUAGE') nls_date_language,
           SYS_CONTEXT ('USERENV', 'NLS_SORT') nls_sort,
           SYS_CONTEXT ('USERENV', 'CURRENT_USER') CURRENT_USER,
           SYS_CONTEXT ('USERENV', 'CURRENT_USERID') current_userid,
           SYS_CONTEXT ('USERENV', 'SESSION_USER') session_user,
           SYS_CONTEXT ('USERENV', 'SESSION_USERID') session_userid,
           SYS_CONTEXT ('USERENV', 'PROXY_USER') proxy_user,
           SYS_CONTEXT ('USERENV', 'PROXY_USERID') proxy_userid,
           SYS_CONTEXT ('USERENV', 'DB_DOMAIN') db_domain,
           SYS_CONTEXT ('USERENV', 'DB_NAME') db_name,
           SYS_CONTEXT ('USERENV', 'HOST') HOST,
           SYS_CONTEXT ('USERENV', 'OS_USER') os_user,
           SYS_CONTEXT ('USERENV', 'EXTERNAL_NAME') external_name,
           SYS_CONTEXT ('USERENV', 'IP_ADDRESS') ip_address,
           SYS_CONTEXT ('USERENV', 'NETWORK_PROTOCOL') network_protocol,
           SYS_CONTEXT ('USERENV', 'BG_JOB_ID') bg_job_id,
           SYS_CONTEXT ('USERENV', 'FG_JOB_ID') fg_job_id,
           SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE') authentication_type,
           SYS_CONTEXT ('USERENV', 'AUTHENTICATION_DATA') authentication_data
      FROM DUAL
      

  6.   

    参数TIMED_STATISTICS = TRUE
    设置MAX_DUMP_FILE_SIZE ,oracle 9i的是设置的unlimite,就不用管它了
    1)全局启动Sql_Tracle:
     参数文件指定: sql_trace=true 
    [注意:]性能消耗多,建议不要这样用2)跟踪当前Session
    sql>alter session set sql_trace=true;
    sql>alter session set sql_trace=false;
    [注意:]意义不大!!3)跟踪其他用户进程:
    --查看当前会话连接的情况
    Sql>select sid,serial#,username from v$session where username is not null;
     sid serial# userName
    ------  ------- -------------
    9 3 sys
    13 27 hrmis--指定跟踪13 27 hrmis进程
    exec dbms_system.set_sql_trace_in_session(13,27,true);--关闭跟踪13 27 hrmis进程
    exec dbms_system.set_sql_trace_in_session(13,27,false);>跟踪的Sql语句就会存到跟踪文件里面
      

  7.   

    SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS') 
      FROM V$SESSION 
     
    学习