grantRolesToUser 失败并出现错误 "Could not find role: root"

grantRolesToUser fails with error "Could not find role: root"

在 mongo 罗盘中使用 mongosh,我为我的数据库创建了一个用户:

use test_db
db.createUser({user:'some_user', pwd: 'some_pass', roles:[]})

现在,当我尝试为其分配 root 角色时,我得到 找不到角色:root@test_db

db.grantRolesToUser(    "some_user",
    [
      { role: "root", db: "test_db" }
    ])

root角色不是内置角色吗?为什么我不能分配它?目前,当我尝试 运行 聚合时,我得到 MongoServerError: not authorized on test to execute command { aggregate: ...。 这就是为什么我想分配 root 角色来摆脱这个问题。

角色 rootadmin 数据库中定义。在数据库中 test_db 这个角色不存在 - 除非你手动创建它。

注:

除了在 admin 数据库中创建的角色外,角色只能包含适用于其数据库的权限,并且只能从其数据库中的其他角色继承。

admin 数据库中创建的角色可以包括适用于 admin 数据库、其他数据库或群集资源的权限,并且可以继承其他数据库中的角色以及admin 数据库。

实际上,除了admin

,我不知道有什么理由在其他数据库中创建用户