java - 在没有用户名/密码的情况下用 Java 测试 Oracle DB 连接

标签 java database oracle database-connection

我知道这与已经回答的问题非常相似,但略有不同。

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

这可能吗?

最佳答案

以下回答可能对您有所帮助。 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/

相关文章:

oracle - mod_jk 给出错误的网关

java - 使用具有缓存行为的工厂方法配置 PicoContainer

java - 无法在 ubuntu 上打开 Talend Open Studio

java - 如何修复此表达式计算器中的错误?

mysql - 选择不同值之前的列最大值

oracle - 控制/限制Oracle中用户的线程使用?

java - Android 中的数组编辑

mysql - 错误 : Cannot find module 'sequelize/types'

android - onProgressUpdate 遗漏了一些发布

database - 将 unicode 文本插入 Oracle 数据库表