2013-10-20 55 views
0

場景:我有一個java應用程序,它與部署在Linux上的DB2數據庫進行交互。 Java應用程序用於基本的提取,轉換和加載操作。我們連接到數據庫使用具有URL JDBC類型4驅動程序:使用JDBC連接到DB2 Linux數據庫

jdbc:db2://<hostname>:<port>/<databaseName> 

問題:上述方法需要用戶名和密碼,但在我們的客戶環境中的DB2數據庫是基於Unix的驗證,並不需要用戶名和密碼。 UNIX用戶沒有密碼。

是否可以通過運行在不同機器上的Java應用程序訪問此數據庫?任何JDBC代碼來完成這一點將不勝感激。

如果無法訪問數據庫而沒有密碼,那麼我們如何配置數據庫以獲得密碼?

回答

0

1)如果使用身份驗證方法將客戶端配置爲數據庫,則可以無密碼地連接到數據庫。

欲瞭解更多信息:

2)如果你不能改變的配置屬性,你應該知道在DB2中配置了認證方法。默認情況下,身份驗證基於操作系統,這意味着您只需爲用戶分配密碼。例如在AIX(UNIX)中鍵入'passwd'

如果認證方法是其他認證方法,則使用其他機制的更改密碼機制。請記住,DB2依賴於外部安全機制,DB2不會執行身份驗證,而是執行授權。

+0

在將身份驗證方法更改爲客戶端後,我可以使用編錄命令連接到遠程數據庫。但我無法使用我的Java應用程序訪問數據庫。這裏是代碼: Class.forName(「com.ibm.db2.jcc.DB2Driver」); Connection conn = DriverManager.getConnection(「jdbc:db2:// :50000/target」,「db2inst1」,「」); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(「select * from db2inst1.test」); – Neo

+0

我收到以下錯誤代碼: 密碼長度爲0是不允許的。 ERRORCODE = -4461,SQLSTATE = 42815 如何在代碼中指定該數據庫不需要密碼? – Neo