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

Mongodb$外部数据库无法创建具有用户定义角色的新用户,mongodb,authentication,Mongodb,Authentication,我已在admin db中创建了具有集合访问权限的用户定义角色。因为我们的mongodb使用X.509身份验证机制,所以我必须在$external数据库中创建用户。在这个$external db中,它找不到我在admin db中创建的角色 在$external db中,我在mongo shell中运行命令: db.createUser({user:"xxxxx", roles:["custom_role"]}) 错误显示: [thread1] Error: couldn't add user:

我已在admin db中创建了具有集合访问权限的用户定义角色。因为我们的mongodb使用X.509身份验证机制,所以我必须在$external数据库中创建用户。在这个$external db中,它找不到我在admin db中创建的角色

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

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

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