Replication

無法在副本集上驗證 admin db

  • September 18, 2017

副本集有一個問題

有一個具有 root 權限的管理員使用者它完全可以在配置伺服器上執行,但是當我嘗試在任何 RS 上對其進行身份驗證時 - 得到:

2017-09-18T09:01:53.755-0400 E QUERY    Error: 18 Authentication failed.
at DB._authOrThrow (src/mongo/shell/db.js:1271:32)
at (auth):6:8
at (auth):7:2 at src/mongo/shell/db.js:1271
exception: login failed

在部署了所有副本集之後,在配置伺服器上添加了使用者,也許這就是問題所在?

是的。當您“嘗試”直接對集群中的任何副本集進行身份驗證時,將使用“本地”管理數據庫(副本集中的管理數據庫)。

您需要在本地創建該管理員使用者。如果沒有使用者插入到您的 RS 的管理數據庫中,“localhost 異常”仍然有效,並且您不應該在沒有身份驗證的情況下登錄(在 mongo -command 上沒有 -u 和 -p 參數)並創建該管理員使用者。在為 RS 創建第一個使用者後,localhost 異常消失了,您需要進行身份驗證。因此,第一個創建的使用者必須是具有 root 權限的管理員。

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