![设置 MongoDB 进行多数据库身份验证](https://linux22.com/image/803334/%E8%AE%BE%E7%BD%AE%20MongoDB%20%E8%BF%9B%E8%A1%8C%E5%A4%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我有一个 MongoDB,它具有常规身份验证设置,因此您需要用户名和密码才能连接到数据库(auth=true
在配置中)。我遇到的问题是,我有一些脚本需要连接到该数据库,然后创建一个新数据库,复制一些数据,然后在某个时间点删除该数据库。问题是主数据库的用户似乎无法创建新数据库。
我查阅了他们的文档,但还没有找到任何东西。我把寻找的东西比作让 MySQL 用户能够create database
和drop database
。
答案1
答案2
您应该有一个“根”用户(例如在 MySQL 中)并使用他执行管理/操作任务:
db.addUser({user: "root", pwd: "123456", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]})) // change PW
该用户将可以做任何事情:
- 创建/更改用户
- 创建/删除 DBS
- 转储/恢复
请注意您还应该添加:
setParameter = enableLocalhostAuthBypass=0
防止本地用户从本地主机连接时成为“root”。
普通用户(非管理员)最多应具有以下权限:
"read", "readWrite", "dbAdmin"
更多信息可以在这里找到:http://docs.mongodb.org/manual/reference/user-privileges/
编辑:clusterAdmin 用于创建数据库……