2011-11-07 80 views
0

我有一个简单的Java应用程序,突然停止连接到本地DB2数据库,引用不正确的密码作为原因。数据库使用Windows用户凭证进行认证。我使用的密码包含分号和一些括号,当我将其更改为更简单时,该应用程序能够再次连接。从Java连接时,DB2密码中的特殊字符?

我的问题是:有没有什么办法可以使密码中的这些字符导致登录失败?

唯一的例外是: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); 

回答

1

凡DB2密码包含它所需要的连接字符串中被引用的特殊字符。

试着改变你的password变量:

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

尝试连接到通过命令窗口中创建数据库,以确保一切都没问题:

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

或DB2命令line

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

可能是连接方法,credentiala ls或防火墙规则已更改,您可以通过提供正确的凭据到达数据库,现在可以使用Java检查问题。

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