我已经在admin db中创建了一个具有集合访问权限的用户定义角色。由于我们的mongodb使用X.509身份验证机制,因此我必须在$ external数据库中创建用户。在此$ external数据库中,找不到我在admin数据库中创建的角色。
在$ external db中,我在mongo shell中运行命令:
db.createUser({user:"xxxxx", roles:["custom_role"]})
显示错误:
[thread1] Error: couldn't add user: No role named custom_role@$external
如何在$ external db中创建用户并将其分配给用户定义的角色?
答案 0 :(得分:1)
我们首先需要在admin db中创建用户定义的角色。接下来,切换到$ external db并指定角色来自admin db,如下所示:
db.createUser({user: "xxxx", roles:[ { role : <user created role name>, db : "admin" } ]})