使用Java测试Oracle数据库连接,没有用户名/密码

时间:2015-08-03 10:19:32

标签: java database oracle database-connection

我知道这与已经回答的问题非常相似,但有一点点差异。

我的生产连接设置中有一个连接列表。过程是从第一个开始,并继续尝试,直到我得到一个连接。我希望能够运行一个使用相同列表作为其输入的任务,但确实足以显示应用程序将使用哪些连接。为了避免我们的安全团队感到烦恼,必须在没有用户名/密码的情况下完成。

有可能吗?

1 个答案:

答案 0 :(得分:1)

以下答案可能对您有所帮助。 getErrorCode()中的SQLException方法在身份验证失败时返回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;
    }