谁,什么时候,运行了什么样的SQL语句

kimminho 2009-02-27 04:22:59
能查到谁,什么时候,运行了什么样的SQL语句吗?

我的数据库莫名其妙的被修改的很多数据。
能查那个IP,在那个时间段 做了什么样的操作吗?
...全文
142 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzzlz 2009-03-02
  • 打赏
  • 举报
回复
up
spkly 2009-03-02
  • 打赏
  • 举报
回复
SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
FROM V$SESSION

学习
tigde 2009-03-02
  • 打赏
  • 举报
回复
mark
ACMAIN_CHM 2009-03-02
  • 打赏
  • 举报
回复
select * from v$sql;
zxbyhcsdn 2009-03-02
  • 打赏
  • 举报
回复


参数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语句就会存到跟踪文件里面
fuyou001 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rexyudl 的回复:]
SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
FROM V$SESSION
[/Quote]
学习
Raul_Gonzalez 2009-02-28
  • 打赏
  • 举报
回复
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
mosaic 2009-02-27
  • 打赏
  • 举报
回复
以后可以用oracle提供的审计(auditing)功能来记录这些信息。
rutstyle 2009-02-27
  • 打赏
  • 举报
回复
嗯,长见识了
oraclelogan 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rexyudl 的回复:]
SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
FROM V$SESSION
[/Quote]

正解啊,学习了!
kimminho 2009-02-27
  • 打赏
  • 举报
回复
这个能查到谁什么时候Logon的。 SQL_ADDRESS 字段是干什么用的?
能查到里边某个人做了什么样的操作能查吗?
或者不管是谁,在某个时间段内转了什么样的SQL语句能查到吗?
数据库是 Oracle
[Quote=引用 1 楼 rexyudl 的回复:]
SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
FROM V$SESSION
[/Quote]
dawugui 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 kimminho 的帖子:]
能查到谁,什么时候,运行了什么样的SQL语句吗?

我的数据库莫名其妙的被修改的很多数据。
能查那个IP,在那个时间段 做了什么样的操作吗?
[/Quote]
尝试通过日志去看看,具体怎么搞,不清楚.

SQL SERVER是通过Log Explorer
rexyudl 2009-02-27
  • 打赏
  • 举报
回复
SELECT USERNAME, SYSDATE, SYS_CONTEXT('USERENV', 'IP_ADDRESS')
FROM V$SESSION

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧