Linux
DB2 Linux 認證失敗
我將 DB2 Express-C v10.5 實例配置為針對 LDAP 進行身份驗證。LDAP 伺服器將要關閉,我應該配置同一個 DB2 實例以使用 Linux 身份驗證。
我將使用者從 LDAP 伺服器複製到執行 DB2 的本地 Linux 主機。然後我確實關閉了 LDAP 伺服器。之後我更改了 DB2 身份驗證設置
db2 update dbm cfg using SRVCON_PW_PLUGIN IBMOSauthserver
(IBMLDAPauthserver
以前是)並重新啟動了 DB2。應用程序使用使用者名訪問數據庫
db2smth
(由於隱私原因更改了名稱)。我可以連接到一個數據庫,db2 connect to dbname user db2inst1 using '********'
但連接到同一個數據庫db2smth
失敗:db2 => connect to dbname user db2smth using '********' SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001
su - db2smth
並且su - db2inst1
工作正常,這意味著 Linux 身份驗證工作正常。如何診斷身份驗證出了什麼問題?
(既然問題復活了,我想我會加我的 2 美分。)
我會驗證使用者名是否符合 DB2 命名規則。由於您之前使用過身份驗證外掛,我懷疑您可以忽略這些命名規則。現在您直接在伺服器上創建了使用者,您需要關注他們。這是規則的連結:
https://www.ibm.com/docs/en/db2/10.5?topic=rules-general-naming
我會特別檢查這個:
對於 Linux 和 UNIX 系統,使用者名和組名的字元必須小寫。
我過去被它咬過。據我記得,錯誤消息並沒有直接指出這個問題。該消息可能是您收到的消息。
一個簡單的答案——使用者 db2smth 需要“連接”權限——你可以試試:
- db2 連接到 dbname 使用者 db2inst1
- 將數據庫上的連接授予使用者 db2smth