从Java连接时DB2密码中的特殊字符?

时间:2011-11-07 03:57:46

标签: java passwords db2

我有一个简单的Java应用程序突然停止连接到本地DB2数据库,引用了错误的密码作为原因。数据库使用Windows用户凭据进行身份验证。我使用的是包含分号和一些括号的密码,当我将其更改为更简单的内容时,应用程序又能够再次连接。

我的问题是:密码中的这些字符是否有可能导致登录失败?

例外是:COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001

连接代码如下:

String username = "username";
String password = "pass;w(ord)";
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
db2Connection = DriverManager.getConnection("jdbc:db2:DBNAME", username, password);

2 个答案:

答案 0 :(得分:1)

如果DB2密码包含特殊字符,则需要在连接字符串中引用它。

尝试将password变量更改为:

String password = "\"pass;w(word)\"";

答案 1 :(得分:0)

尝试通过命令窗口连接到数据库,以确保一切正常:

c:\>db2 connect to dbname user username using pass;w(ord)

或在db2命令行中

db2> connect to dbname user username using pass;w(ord)

可能连接方法,凭据或防火墙规则已更改,

一旦通过提供正确的凭据到达数据库,您现在可以用Java检查问题。

尝试Java之前的一步是从 DataStudio 连接。这是一个Java应用程序,因此您可以验证是否可以从Java连接到您的数据库。