2011-03-02 31 views
1

我在建立DB2連接時出現了錯誤的用戶名/密碼問題。我們有一個應用程序,它運行在使用位於我的系統以及其他系統上的DB2數據庫的許多系統上的局域網上。使用錯誤的用戶名/密碼在Java中建立DB2連接的問題

首先,我用這個URL來創建其它系統DB2連接:

Connection con = DriverManager.getConnection("jdbc:db2://Rahulkcomputer:50000/XAN4", "rahulk", "dbirs#35"); 

這將返回正確的Connection對象。

Connection con = DriverManager.getConnection("jdbc:db2://127.0.0.1:50000/XAN4", "rahulk", "dbirs#35"); 

此番再次回到了:現在,當我改變URL來訪問我用同樣的用戶名/密碼爲系統DB2連接(使用相同的用戶名/密碼激烈用於檢查錯誤處理完成)連接對象,而不是拋出SQLException指定錯誤的用戶名/密碼(由於我的系統的DB2認證是完全不同於Rahulkcomputer的系統)

在獲得連接後,我執行此查詢來檢查正確的用戶名稱,

Simple DB2 Query for connection validation

SELECT CURRENT SQLID FROM SYSIBM.SYSDUMMY1 

(這將返回在兩種情況下「rahulk」)

爲什麼DB2中創建了一個錯誤的用戶名/密碼(而且當我們關閉對Rahulkcomputer DB2的所有服務第二種情況的連接,即使再我在第二種情況下獲得連接)?

在此先感謝。

+0

您是否驗證了您可以實際插入帶有該連接的數據,如果有,數據所在的計算機是什麼?你確定在執行你的代碼之前編譯你的.java文件嗎? – 2011-03-07 07:54:21

+0

嗨約阿希姆·紹爾, 實際上,在第二種情況作出的連接,不允許運行的任何查詢,也它拋出SQL異常 SQLCODE = -204,SQLSTATE = 42704。 我的問題是,如果沒有查詢可以執行,那麼爲什麼連接正在創建? 是的。我在執行代碼之前編譯了我的.java文件。 請給出具體的答案,如果您知道。 在此先感謝。 – Kishore 2011-03-09 05:08:32

+0

我發佈了錯誤的標籤,由於沒有得到任何線索?請明確說明。 – Kishore 2011-03-04 06:59:48

回答

1

您使用限制性選項創建了數據庫,或者從PUBLIC中撤消了sysibm的選擇權。你的連接沒有問題,訪問權限不是。 42704是DB2說「這個?」的方式,它沒有識別sysibm,因爲你沒有權利看到它。

+0

如果一個ID沒有權限訪問SYSIBM.SYSDUMMY1,上面的查詢不會得到SQL0204N(「找不到對象」),它會得到SQL0551N(「ID沒有必需的授權或特權」)。如果失敗實際上是SQL0204N,那意味着SYSIBM.SYSDUMMY1在系統上不存在。 – 2012-12-16 16:00:46

+0

只有在安裝嚴重拙劣的情況下才會發生這種情況。在安裝fixpack的時候,不要重新綁定所有的默認軟件包,例如可以這樣做,但仍然不太可能? – user918176 2012-12-16 17:43:57

相關問題