Mongodb
為多數據庫身份驗證設置 MongoDB
我有一個具有正常身份驗證設置的 MongoDB,因此您需要使用者名和密碼才能連接到數據庫(
auth=true
在配置中)。我遇到的問題是我有一些腳本需要連接到該數據庫,然後創建一個新腳本,複製一些數據,然後在某個時間點刪除數據庫。問題是主數據庫的使用者似乎無法創建新數據庫。我已經翻閱了他們的文件,但還沒有找到任何東西。我將我正在尋找的東西比作讓 MySQL 使用者能夠
create database
和drop 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 是創建數據庫…