任何获取不同数据库连接的上下文详细信息的方法
问题描述:
我们有应用程序ID(假设为APP_ID)连接到数据库并使用dbms_session.set_context()为VPD设置实际登录用户(例如:user1,user2)。任何获取不同数据库连接的上下文详细信息的方法
对于查询中的性能问题,我们要确定运行它的用户(user1,user2)。有没有办法通过提供sid来获取连接的dbms_session.get_context()?
- 假设DBA可以运行它。
- 我要转储从上下文的实际用户名和其连接ID(SID)
- Oracle数据库
我知道可以创建应用程序登录或DBA跟踪或登录信息的过程..我只想知道,有没有什么可以用的方法?
答
如果你有一个DBA运行它,你应该可以访问V$SESSION
view。 像这样的简单查询会给你所有的小岛屿发展中国家相连的&用户名:
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描述。
我认为问题是要求由另一个会话设置的自定义上下文值,而不只是试图找到常规会话信息。 –
@jonearles即使在Oracle中也可行吗? – Durandal
我不这么认为。但很难说这样的事情是不可能的。 –