我知道这与已经回答的问题非常相似,但略有不同。
我的生产连接设置中有一个连接列表。这个过程是从第一个开始,一直尝试直到我建立连接。我希望能够运行一个任务,该任务使用相同的列表作为其输入,但足以显示应用程序将使用哪些连接。为了避免我们的安全团队感到不安,这必须在没有用户名/密码的情况下完成。
这可能吗?
最佳答案
以下回答可能对您有所帮助。 SQLException
中的 getErrorCode()
方法在身份验证失败时返回 1017 值。因此,您可以遍历连接列表并调用 validateConnection
。
- 我在这里使用虚拟用户名和密码(我没有看到任何其他选项)
替换主机、端口和 SID 值。
public static void main(String[] args) { String connString = "jdbc:oracle:thin:@host:port:SID"; System.out.println(validateConnection(connString)); } public static boolean validateConnection(String connString) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection(connString, "x", "y"); } catch (SQLException sqle) { if (sqle.getErrorCode() == 1017) return true; } catch (Exception e) { e.printStackTrace(); } return false; }
关于java - 在没有用户名/密码的情况下用 Java 测试 Oracle DB 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31784857/