Mongodb $ external数据库无法创建具有用户定义角色的新用户

时间:2019-05-01 17:02:22

标签: mongodb authentication

我已经在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中创建用户并将其分配给用户定义的角色?

1 个答案:

答案 0 :(得分:1)

我们首先需要在admin db中创建用户定义的角色。接下来,切换到$ external db并指定角色来自admin db,如下所示:

db.createUser({user: "xxxx", roles:[ { role : <user created role name>, db : "admin" } ]})