簡體   English   中英

mongodb副本設置:未經本地授權執行命令

[英]mongodb replica setup: not authorized on local to execute command

我一直在遵循本指南: https : //gist.github.com/calvinh8/c99e198ce5df3d8b1f1e42c1b984d7a4

我剛剛完成所有服務器的設置,並在admin數據庫中創建了該用戶,並獲得了以下回報:

Successfully added user: {
    "user" : "user",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

現在,我嘗試使用以下命令鏈接數據庫:

rs.add("ec2-XX-XXX-XX-XXX.compute-1.amazonaws.com")

但這給了我錯誤:

2018-04-11T00:20:56.389+0000 E QUERY    [thread1] Error: count failed: {
    "ok" : 0,
    "errmsg" : "not authorized on local to execute command { count: \"system.replset\", query: {}, fields: {} }",
    "code" : 13,
    "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBQuery.prototype.count@src/mongo/shell/query.js:383:11
DBCollection.prototype.count@src/mongo/shell/collection.js:1700:12
rs.add@src/mongo/shell/utils.js:1240:1
@(shell):1:1

指向副本時是否需要登錄以進行身份​​驗證? 機器之間是否存在keyFile錯誤? 誰能闡明一些想法?

您遵循的指南不是很有幫助; 一旦創建了第一個管理員用戶,它就錯過了驗證連接所需的關鍵步驟。

我建議您閱讀有關身份驗證復制的 MongoDB官方文檔(兩者都很全面且寫得很好)。 特別是, 啟用身份驗證指南准確地涵蓋了您所處的情況。

我發現這里的另一個答案中提到的“綜合且編寫良好”的文檔在只需要建立數據庫時就非常令人困惑和誤導。 但是,此官方教程幾乎是針對性的: https : //docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#deploy-repl-set-with-auth

這很簡單,它是:安裝裸db,創建密鑰並將其放在每個框上,更新配置,啟動每個db,在本地指定一個作為主要數據庫,從mongoshell啟動副本集。 我遇到的一個問題是所有副本集成員必須一次性添加(如本教程中所建議)。 否則,添加第一個成員后,身份驗證要求會生效,並阻止添加更多成員,直到創建集群管理員用戶為止。 因此,在啟動副本集之后並離開外殼之前,請確保創建3個用戶:admin,集群admin和備份admin,檢查是否可以從另一個外殼登錄,然后以適當的用戶身份繼續工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM