Mongodb
MongoDB 集群 - 無法使用憑據訪問分片成員
我有一個分片集群,我正在嘗試訪問分片中副本集的特定成員。
連接到 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,然後您就可以登錄了。