数据库中有一个用户,需要将其更名。如何更改用户名?MongoDB用户管理参考文档中有一个方法db.updateUser,但我不知道如何设置新用户名。 怎样更新用户名? 谢谢。
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> }
)
updateUser
函数会加密明文密码,并且不需要访问system.users
数据库。 - Alex Blexdb.system.users.update({"user":"oldname"}, {$set:{"user":"newname"}})
对于具有以下角色的用户 (roles : [ { role : "userAdminAnyDatabase", db : "admin" } ]
) 产生了错误 ("errmsg" : "not authorized on admin to execute command { update:
)。必须使用具有以下角色的用户(roles : [ { role : "root", db : "admin" } ]
)进行身份验证,才能成功发出db.system.users.update(...)
命令。 - Developer Marius ŽilėnasupdateUser
是许多shell便捷方法之一,当发出db.updateUser
时可以看到(请注意括号的缺失)。我想补充说明的是,您不一定需要成为root用户。任何具有身份验证数据库(在本例中为admin
)中的userAdmin或userAdminAnyDatabase
角色的用户都可以执行此操作。对于后者要小心,拥有此角色的用户可以向自己或其他人授予任何特权。 - Markus W Mahlberg