MongoDB:用户创建数据库需要哪些权限?

时间:2019-02-25 13:24:10

标签: mongodb

我们需要创建一个特殊角色,该角色将仅允许以下操作:

  1. 创建一个新数据库
  2. 创建一个新用户,该用户是该数据库的管理员

创建数据库需要哪个MongoDB角色? https://docs.mongodb.com/manual/reference/built-in-roles/的文档中都没有写它,而且似乎没有已知的角色可以执行此任务

1 个答案:

答案 0 :(得分:1)

我认为readWrite是您需要的角色。 我尝试了以下操作:

  1. 使用管理用户连接到我的admin数据库
  2. 创建一个新的aaa用户,该用户在admin db上定义,具有密码和两个角色:readWrite在(不存在的)数据库xxx和{{1}上}(不存在)数据库dbAdmin
  3. 使用yyy用户连接到admin数据库

因此,我尝试在aaatest数据库的xxx集合中插入文档:

yyy

有回应 在2毫秒内插入1条记录

use xxx
db.test.insert({})

有回应 未在yyy上授权执行命令...

错误消息是指use yyy db.test.insert({}) 无法执行aaainsert的事实:数据库创建是在第一次插入时发生的,因此您需要{{1} }角色,以使第一个test ==>创建数据库。

我希望我采用的检查问题的方法可以帮助您解决问题。