- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试更新用户的角色。
所以我尝试使用管理员用户执行以下命令(它具有 dbOwner 和 userAdmin 权限,并直接在 UnitTestDb 上创建)
db.runCommand({ "updateUser" : "unittestuser1", "roles" : [{ "role" : "Testentity_readwrite", "db" : "UnitTestDb" }, { "role" : "Testentity_read", "db" : "UnitTestDb" }] }
我直接在“UnitTestDb”上运行这个命令,角色“Testentity_read”也是直接在这个数据库中创建的。
我收到以下错误:
{
"ok" : 0,
"errmsg" : "not authorized on UnitTestDb to execute command { updateUser: \"unittestuser1\", roles: [ { role: \"Testentity_readwrite\", db: \"UnitTestDb\" }, { role: \"Testentity_read\", db: \
"UnitTestDb\"} ] }", “代码”:13
我可以为用户更新自定义数据,但不能更新角色...
谁能告诉我我的管理员用户需要哪种权限或角色才能执行此更新?
dbOwner 应该拥有对其创建的数据库的完全访问权限(来自 mongodb.org:数据库所有者可以对数据库执行任何管理操作。此角色结合了 readWrite、dbAdmin 和 userAdmin 角色授予的权限。)
托比亚斯
最佳答案
我认为问题在于 updateUser 需要对所有数据库的额外权限。来自文档:
Required Access
You must have access that includes the revokeRole action on all databases in order to update a user’s roles array.
You must have the grantRole action on a role’s database to add a role to a user.
请注意 revokeRole 对所有数据库的要求,而不仅仅是涉及的数据库。
我会尝试改用 db.grantRolesToUsers() 命令,因为它不需要相同级别的权限。
http://docs.mongodb.org/manual/reference/method/db.grantRolesToUser/
Required Access
You must have the grantRole action on a database to grant a role on that database.
或者,您可以确保运行 updateUser 命令的用户对所有数据库都具有 revokeRole 权限。
关于mongodb - dbowner "not authorized"更新用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597901/
我正在尝试更新用户的角色。 所以我尝试使用管理员用户执行以下命令(它具有 dbOwner 和 userAdmin 权限,并直接在 UnitTestDb 上创建) db.runCommand({ "up
最终我想使用 R+MongoDB。因此,我在 Linux 上设置了 MongoDB 并执行了以下操作: 在 shell 上运行 mongo 命令 使用管理数据库 添加根用户 以 root 身份验证:d
如何更改 SQL Server 2000 数据库中所有表和存储过程的所有者。 我认为“sp_changeobjectowner”可以做到,但我找不到实现这一点的方法。 谁能帮帮我? 编辑 declar
我是一名优秀的程序员,十分优秀!