如何在MongoDB中重命名用户?

如何在MongoDB中重命名用户?,mongodb,rename,user-management,Mongodb,Rename,User Management,数据库中有一个用户,应重命名此用户。如何重命名用户?MongoDB用户管理参考有方法,但我不知道如何为用户设置新名称如何更新用户名?ty db.updateUser( "<username>", { customData : { <any information> }, roles : [ { role: "<role>", db: "<database>" } | "<role&

数据库中有一个用户,应重命名此用户。如何重命名用户?MongoDB用户管理参考有方法,但我不知道如何为用户设置新名称如何更新用户名?ty

db.updateUser(
   "<username>",
   {
     customData : { <any information> },
     roles : [
               { role: "<role>", db: "<database>" } | "<role>",
               ...
             ],
     pwd: "<cleartext password>"
    },
    writeConcern: { <write concern> }
)
db.updateUser(
"",
{
自定义数据:{},
角色:[
{role:,db:}|“”,
...
],
pwd:“
},
writeConcern:{}
)

您是否尝试更新用户

db.system.users.update({"user":"oldname"}, {$set:{"user":"newname"}})

此命令需要
root用户
访问管理员数据库。

未尝试使用此方法。您的方法普遍吗?为什么支持db.updateUser()?无论如何,感谢您提供的解决方案:)。好吧,在我的脑海中,
updateUser
加密普通密码,并且不需要访问
system.users
database.btw命令
db.system.users.update({“user”:“oldname”},{$set:{“user”:“newname”})
给出了错误(
“errmsg”:“未授权管理员为具有以下角色的用户执行命令{update:
):[{role:“userAdminAnyDatabase”,db:“admin”}]。必须以具有角色的用户身份进行身份验证:[{role:“root”,db:“admin”}才能成功发布db,system.users.update。”(..更新了答案。谢谢。@Willmore Alex是对的,
updateUser
是众多shell便利方法中的一种,在发布
db.updateUser
时可以看到这一点(请注意缺少的括号。我想补充一点,您不必是root用户。任何具有authenticationDatabase角色的用户(
admin
在本例中)或
userAdminAnyDatabase
可以执行此操作。请注意后者,具有此角色的用户可以将任何特权授予自己或其他人。