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 角色来摆脱这个问题。
角色 root
在 admin
数据库中定义。在数据库中 test_db
这个角色不存在 - 除非你手动创建它。
注:
除了在 admin
数据库中创建的角色外,角色只能包含适用于其数据库的权限,并且只能从其数据库中的其他角色继承。
在 admin
数据库中创建的角色可以包括适用于 admin
数据库、其他数据库或群集资源的权限,并且可以继承其他数据库中的角色以及admin
数据库。
实际上,除了admin
。
,我不知道有什么理由在其他数据库中创建用户
在 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 角色来摆脱这个问题。
角色 root
在 admin
数据库中定义。在数据库中 test_db
这个角色不存在 - 除非你手动创建它。
注:
除了在 admin
数据库中创建的角色外,角色只能包含适用于其数据库的权限,并且只能从其数据库中的其他角色继承。
在 admin
数据库中创建的角色可以包括适用于 admin
数据库、其他数据库或群集资源的权限,并且可以继承其他数据库中的角色以及admin
数据库。
实际上,除了admin
。