sql >> Base de Datos >  >> RDS >> Oracle

Cambio de usuarios en una conexión JDBC

Después de investigar ayer, descubrí que la solución es usar Oracle Proxy Authentication. Esta solución está fuera de la especificación JDBC. Sin embargo, Oracle proporciona un gancho para implementar dicha solución. Abrir una conexión de proxy se vería así:

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 */

No me sorprendería si hay otros matices asociados con esto, pero este es un buen comienzo. ¡Gracias por su ayuda a todos!