【问题标题】:Changing the password in MongoDB for existing user在 MongoDB 中为现有用户更改密码
【发布时间】:2013-04-24 12:32:15
【问题描述】:

我有生产环境,我的 mongoDB 已启动并正在运行,DBA 要求我们更改用于身份验证的密码。一种方法是使用 change password 中所述的新密码再次运行 addUser 命令

> db.auth("app_user", "somepassword")
db.addUser("app_user", "new password")

这和添加新用户一样好。

我知道一旦我按照in 的描述添加新用户后,我必须使用 --auth 选项重新启动 mongod,但由于这是一个生产环境,我无法重新启动我的服务器。还有其他选择吗?或者如果我的方法错误,如何更改 mongoDB 中的密码

【问题讨论】:

  • 如果您从无身份验证转到身份验证,您只需要重新启动 - 您无需重新启动。
  • 显然,在将用户添加/更新到非 auth mongod 时,您还需要重新启动(是的,它仍然可以在特定数据库上对用户进行身份验证)

标签: mongodb authentication change-password


【解决方案1】:

您链接到一个关于向 MongoDB 添加身份验证的问题,该问题涉及使用选项 --auth 启动“mongod”。由于您已经使用 --auth 运行,因此在您的场景中不需要重新启动。

只需更改用户密码即可开始使用。

【讨论】:

  • 感谢 Asya,但这是更改密码的唯一方法吗? “adduser”有点误导。
  • 我同意这不是最好的命令名称,但如果用户不存在 addUser 将创建用户,如果用户存在则更改密码。
  • 从 2.4 开始,这似乎不再适用 JavaScript execution failed: User already exists with that username/userSource combination
  • @Asya 使用 2.2 语法给出“未捕获的异常:无法添加用户:system.users 条目不能同时具有 'roles' 和 'readOnly' 字段”
【解决方案2】:

【讨论】:

    【解决方案3】:

    MongoDB > 3.X

    db.updateUser("root", {pwd: "NewRootAdmin" }) 
    

    参考:https://docs.mongodb.com/manual/reference/method/db.updateUser/

    【讨论】:

      【解决方案4】:

      Mongodb 4.0启动,更新用户密码时必须使用db.updateUser(),设置passwordDigestor键为“server”:

      【讨论】:

        【解决方案5】:

        如果您有旧密码并且想要更改密码,请使用 mongo --username <USERNAME> 用户,然后使用 db.changeUserPassword("<USERNAME>", passwordPrompt())

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-25
          • 1970-01-01
          • 2014-11-03
          • 2017-10-26
          • 2021-07-26
          • 2019-11-05
          相关资源
          最近更新 更多