【问题标题】:How do I change a MongoDB user's password?如何更改 MongoDB 用户的密码?
【发布时间】:2013-05-17 14:55:06
【问题描述】:

我在过去的某个时候使用 db.addUser(...) 创建了一个用户。我现在如何更改该用户的密码?

我使用具有 userAdmin 角色的用户登录。我用什么命令来更改另一个用户的密码?

编辑 2

我需要为 v2.4 样式的 addUser 和权限文档回答这个问题

编辑

有人建议我使用 2.2 addUser 语法来更改密码。这不起作用:

db.addUser({user: "test", pwd: "oldPassword", roles: ["readWrite"]})
db.addUser("test", "newPassword")

给予

uncaught exception: couldn't add user: system.users entry must not have both 'roles' and 'readOnly' fields

【问题讨论】:

  • 删除并读取用户
  • @Sammaye 这真的是唯一的方法吗?
  • 我相信在某些情况下是这样

标签: mongodb


【解决方案1】:

【讨论】:

    【解决方案2】:

    要更改密码,只需再次运行addUser 命令即可。

    db.addUser("coolguy",  "newxH@x0rPasswd", true);
    

    【讨论】:

    • 这是旧式addUser。我正在使用新样式的用户文档。 docs.mongodb.org/manual/reference/privilege-documents
    • db.addUser({user: "super", pwd: "123456"}) GIVES 'roles' 字段必须提供 src/mongo/shell/db.js:155
    • db.addUser({user: "super", pwd: "123456", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase", "clusterAdmin"]}) 给出未捕获的异常:具有该用户名/用户源组合的用户已经存在
    • db.addUser("super", "123456") 给出未捕获的异常:无法添加用户:system.users 条目不能同时包含“角色”和“只读”字段
    【解决方案3】:

    this 可能会有所帮助。

    小心传递的参数。那是只读选项。

    编辑: 我遵循的步骤:添加了一个新用户

    > db.addUser("admin","firstpwd") 
    {
        "user" : "admin",
        "readOnly" : false,
        "pwd" : "40a84fcba954c8924d277f23b0f880b1",
        "_id" : ObjectId("51966ec8c7ad876ba0319438")
    }
    

    退出

    > db.auth("admin","firstpwd")
    1
    

    修改密码

    > db.addUser("admin","secondpwd")
    {
        "_id" : ObjectId("51966ec8c7ad876ba0319438"),
        "user" : "admin",
        "readOnly" : false,
        "pwd" : "82f4e416844349418281a3eca1cf6082"
    }
    

    退出

    db.auth("admin","secondpwd") 1

    MongoDB shell 版本:2.4.3

    【讨论】:

    • 我看到了,但答案是询问者对 --auth 命令行选项的困惑。我只想更改用户的密码。
    • 只需使用新密码再次使用 db.addUser()
    • 我试过了,但它给出了“未捕获的异常:用户已经存在该用户名/userSource 组合”
    • 这里是输出 MongoDB shell 版本:2.4.3 > db.addUser("coolguy", "hereIsoldpwd") { "_id" : ObjectId("51966b49ef4f47402f6be04c"), "user" : "coolguy ", "readOnly" : false, "pwd" : "4f9a89c83b9493f5666762ed0149f258" } 我从 DB 退出,再次登录,> db.auth("coolguy", "hereIsoldpwd") 1 > db.addUser("coolguy", "hereisNewPwd ") { "_id" : ObjectId("51966b49ef4f47402f6be04c"), "user" : "coolguy", "readOnly" : false, "pwd" : "4f9a89c83b9493f5666762ed0149f258" } 对我来说效果很好
    • 我看到您使用的是旧式用户权限文档。我正在使用带有角色的 2.4 样式文档。见docs.mongodb.org/manual/reference/privilege-documentsdocs.mongodb.org/manual/tutorial/add-user-to-database
    猜你喜欢
    • 2013-04-24
    • 2012-09-25
    • 2014-07-13
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多