任何获取不同数据库连接的上下文细节的方法

时间:2014-02-21 22:43:37

标签: sql oracle

我们有应用程序ID(假设APP_ID)连接到数据库并使用dbms_session.set_context()为VPD设置实际登录用户(例如:user1,user2)。

对于查询中的性能问题,我们希望识别运行它的用户(user1,user2)。有没有办法通过提供sid来获取连接的dbms_session.get_context()?

  1. 假设DBA可以运行它。
  2. 我想从上下文及其连接ID(sid)
  3. 转储实际的用户ID
  4. Oracle数据库
  5. 我知道可以创建应用程序登录或dba跟踪或记录信息的程序......我只是想知道,有没有开箱即用的方式?

1 个答案:

答案 0 :(得分:0)

如果您正在运行DBA,则应该可以访问V$SESSION view。 像这样的简单查询将为您提供所有连接的sids&他们的用户名:

select
       substr(sid,1,5) sid,
       substr(serial#,1,5) ser_num,
       substr(machine,1,6) box,
       substr(username,1,10) username,
       substr(osuser,1,8) os_user,
       substr(program,1,30) program
from v$session
where
and type='USER'
order by username;

如果您只是在寻找实际运行的查询和用户/ sid,您可以运行此answer中所述的内容。