Mongodb

MongoDB 集群 - 無法使用憑據訪問分片成員

  • January 5, 2018

我有一個分片集群,我正在嘗試訪問分片中副本集的特定成員。

連接到 mongos 時很好,但是當在副本集的成員上使用相同的憑據時,即使我的使用者具有 root 角色,我也無法獲得訪問權限。

錯誤是:

來自客戶端 127.0.0.1:39356 的管理員對 root 的 SCRAM-SHA-1 身份驗證失敗;UserNotFound: 找不到使用者 root@admin

mongos 開始於:

mongos --configdb cfg/mongo-cfg0:27019,mongo-cfg1:27019,mongo-cfg2:27019 --bind_ip_all --keyFile "/etc/mongodb-keyfile"

副本集的成員開始於:

mongod --auth --bind_ip_all --shardsvr --replSet a --smallfiles --oplogSize 50  --keyFile "/etc/mongodb-keyfile"

連接到 mongos 時,我在本地使用以下內容:

mongo --port 27017 -u user -p password --authenticationDatabase admin

當連接到本地副本集的成員時,我嘗試使用:

mongo --port 27018 -u user -p password --authenticationDatabase admin

我覺得我缺少一些明顯的東西,但我不知道是什麼,任何幫助將不勝感激。

當您使用mongoS身份驗證時,是針對配置伺服器admin數據庫完成的。當您直接連接到副本集時,您正在對副本集的admin數據庫進行身份驗證,而您沒有該root使用者集。

你能做什麼?將不帶 –auth 參數(或等效配置參數)的副本集(一個接一個)啟動到維護模式,使用 mongo 命令連接該 RS,創建該root使用者(和其他需要的使用者)。之後,您可以通過身份驗證重新啟動 RS,然後您就可以登錄了。

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