Mongodb

為多數據庫身份驗證設置 MongoDB

  • August 4, 2013

我有一個具有正常身份驗證設置的 MongoDB,因此您需要使用者名和密碼才能連接到數據庫(auth=true在配置中)。我遇到的問題是我有一些腳本需要連接到該數據庫,然後創建一個新腳本,複製一些數據,然後在某個時間點刪除數據庫。問題是主數據庫的使用者似乎無法創建新數據庫。

我已經翻閱了他們的文件,但還沒有找到任何東西。我將我正在尋找的東西比作讓 MySQL 使用者能夠create databasedrop database.

這看起來需要幾個不同的權限。

  • clusterAdmin : dropDatabase,允許刪除任何數據庫。
  • Any Database Roles:readWriteAnyDatabase,允許從任何數據庫進行讀寫;需要對動態創建的數據庫進行操作。

我還沒有弄清楚創建數據庫需要什麼,但該權利可能直接繼承自 readWriteAnyDatabase。

您應該有一個“root”使用者(如 MySQL)並將他用於管理/操作任務:

db.addUser({user: "root", pwd: "123456", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]})) // change PW

該使用者將能夠執行任何操作:

  • 創建/更改使用者
  • 創建/刪除 DBS
  • 轉儲/恢復

請注意,您還應該添加:

setParameter = enableLocalhostAuthBypass=0

防止本地使用者在從 localhost 連接時成為“root”。

普通使用者(非管理員)最多應具有以下權限:

"read", "readWrite", "dbAdmin"

更多資訊可以在這裡找到:http: //docs.mongodb.org/manual/reference/user-privileges/

編輯:clusterAdmin 是創建數據庫…

引用自:https://serverfault.com/questions/528494