我花了一个小时的时间试图挖掘MongoDB的在线文档,当用户管理命令不断变化时,这对2.4版本来说非常粗制滥造。
我已经在mongoDB 2.4.11中找到了它。
db.addUser( { user: "...", pwd: "...", roles: [ ... ] } )
的工作原理。但我找不到任何更新用户角色的命令示例,当我尝试覆盖现有用户时收到此错误消息:
User already exists with that username/userSource combination at src/mongo/shell/db.js:125
所以我被卡住了。
(作为奖励,如何从2.4中删除现有用户的角色?)
当我尝试
时db.grantRolesToUser( "myself", [ {role: "clusterAdmin"} ] )
如v2.6中所述,我得到:
TypeError: Property 'grantRolesToUser' of object admin is not a function
所以在2.4不工作。
答案 0 :(得分:1)
我在mongodb网站上看到了一份清晰的文档:
仅限v2.6: 要向用户授予其他角色,请按照此处给出的步骤操作:https://docs.mongodb.org/v2.6/tutorial/assign-role-to-user/
要撤消用户的角色,请按以下步骤操作:https://docs.mongodb.org/v2.6/tutorial/change-user-privileges/
对于v2.4,请尝试使用其他帖子:https://stackoverflow.com/a/23125827/1505987
答案 1 :(得分:1)
MongoDB 版本:4.4.2
您可以使用 db.grantRolesToUser()
官方语法:db.grantRolesToUser( "<username>", [ <roles> ], { <writeConcern> } )
使用以下命令,您可以授予对除local和config
以外的所有数据库的读写访问权限> use admin;
> db.grantRolesToUser('user1', ['readWriteAnyDatabase']);
但是,如果您只想授予特定数据库(例如帐户数据库)的读写权限,则可以按如下操作
use admin;
db.grantRolesToUser('user1', [{ role: 'readWrite', db: 'account' }]);
MongoDB 参考:https://docs.mongodb.com/manual/reference/method/db.grantRolesToUser/