2011-11-07 105 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連接到您的數據庫。