Linux

DB2 Linux 認證失敗

  • March 7, 2022

我將 DB2 Express-C v10.5 實例配置為針對 LDAP 進行身份驗證。LDAP 伺服器將要關閉,我應該配置同一個 DB2 實例以使用 Linux 身份驗證。

我將使用者從 LDAP 伺服器複製到執行 DB2 的本地 Linux 主機。然後我確實關閉了 LDAP 伺服器。之後我更改了 DB2 身份驗證設置db2 update dbm cfg using SRVCON_PW_PLUGIN IBMOSauthserverIBMLDAPauthserver以前是)並重新啟動了 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 需要“連接”權限——你可以試試:

  1. db2 連接到 dbname 使用者 db2inst1
  2. 將數據庫上的連接授予使用者 db2smth

另請參閱: 如何在 Windows 上使用 DB2 9.7 向本地 db2admin 授予所有權限?

引用自:https://dba.stackexchange.com/questions/294569