3

我在一个 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" },
    ]
})
4

1 回答 1

0

我猜你需要明确地为 admin db 分配 root。对我来说,以下工作(版本:3.4.23):

use admin
db.createUser(
{
    user: "iamroot",
    pwd: "<pa$$w0rd>",
    roles: [ 
        { role: "root", db: "admin" }
    ]
})
于 2020-11-11T12:03:41.967 回答