java.util.Properties prop = new java.util.Properties();
prop.put(OracleConnection.PROXY_USER_NAME, schema);
oracleConnection.openProxySession(OracleConnection.PROXYTYPE_USER_NAME,prop);
使用上面的代码片段,我们可以从oracle jdbc连接创建代理连接。 PHIL是代理连接的代理用户。我们如何获得原始用户?
OracleConnection中是否有任何API可以提供信息?
oracleConnection.getUserName()
只会返回用于连接的用户。是否可以从代理连接中删除代理连接,而只返回旧的jdbc连接?
最佳答案
调用oracleConnection.close(OracleConnection.PROXY_SESSION)
将关闭代理-客户端的会话(在您的示例中为JEFF),并且连接将切换到原始的“父”会话。从那里,如果再次调用getUserName()
,则应该获得“父”会话用户名。