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(),则应该获得“父”会话用户名。

10-05 23:55