我在一个MongoDB实例上有22个数据库。我遇到了MongoDB身份验证的root角色。我想创建一个可以对现有数据库进行任何操作以及创建新数据库并对其进行全面管理的用户。我运行了以下命令,但是除admin
之外,它不允许我访问任何数据库。
use admin
db.createUser(
{
user: "iamroot",
pwd: "<pa$$w0rd>",
roles: [ "root" ]
})
它仅为root
数据库存储admin
角色。如何将root
角色应用于所有现有数据库以及新数据库(如果已添加)?只有这样一种方法可以在roles
数组中提供所有数据库名称,以实现我想要的吗?
use admin
db.createUser(
{
user: "iamroot",
pwd: "<pa$$w0rd>",
roles: [
{ role: "root", db: "db_1" },
{ role: "root", db: "db_2" },
{ role: "root", db: "db_n" },
]
})
答案 0 :(得分:0)
我想您需要为管理数据库明确分配根目录。 对我来说,以下工作(在版本:3.4.23上有效):
use admin
db.createUser(
{
user: "iamroot",
pwd: "<pa$$w0rd>",
roles: [
{ role: "root", db: "admin" }
]
})