Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Alternando usuários em uma conexão JDBC


Depois de pesquisar ontem, descobri que a solução é usar o Oracle Proxy Authentication. Esta solução está fora da especificação JDBC. No entanto, a Oracle fornece um gancho para implementar tal solução. A abertura de uma conexão proxy teria a seguinte aparência:
import oracle.jdbc.OracleConnection;    

//Declare variables
String url = "...";
String username = "...";
String password = "...";

//Create the Connection
Connection conn = DriverManager.getConnection(url, username, password);

//Set the proxy properties
java.util.Properties prop = new java.util.Properties();
prop.put(OracleConnection.PROXY_USER_NAME, "BILL");
prop.put(OracleConnection.PROXY_USER_PASSWORD, "password");

//Cast the Connection to an OracleConnection and create the proxy session
((OracleConnection)conn).openProxySession(OracleConnection.PROXYTYPE_USER_NAME, prop);

/* The Connection credentials have now been changed */

Eu não ficaria surpreso se houvesse outras nuances associadas a isso, mas este é um bom começo. Obrigado pela ajuda, todos!