更改现有用户在MongoDB中的密码

22

我有一个生产环境,在这个环境中我的MongoDB正在运行,DBA要求我们更改用于身份验证的密码。实现这一目标的其中一种方法是使用新密码再次运行addUser命令,如更改密码所述。

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

这和添加一个新用户一样好。

我理解,我需要在添加新用户后使用--auth选项重新启动mongod,如所述,但由于这是生产环境,我不能重启我的服务器。还有其他选择吗?或者如果我的方法不正确,如何更改mongoDB中的密码?


只有在从无权限到有权限时才需要重新启动 - 您无需重新启动。 - Asya Kamsky
显然,当向非认证的mongod添加/更新用户时,您也需要重新启动(是的,在特定数据库上仍然可以对用户进行身份验证)。 - Benoit
5个回答

26

24

对于版本2.4

db.changeUserPassword("app_user", "new password")

这里 这里


1
你链接到了一个关于在MongoDB中添加身份验证的问题,这需要使用选项--auth启动'mongod'。由于你已经使用--auth运行,因此在你的情况下重新启动是不必要的。
只需更改用户密码,即可开始使用。

1
谢谢Asya,但是更改密码的唯一方法吗?“adduser”有点误导。 - Srivatsa N
1
我同意这不是最好的命令名称,但 addUser 命令将创建用户(如果他们不存在)或更改其密码(如果他们存在)。 - Asya Kamsky
截至2.4版本,这似乎不再起作用了:“JavaScript执行失败:该用户名/用户来源组合已存在现有用户”。 - UpTheCreek
@Asya使用2.2语法时出现了“未捕获的异常:无法添加用户:system.users条目不能同时具有'roles'和'readOnly'字段”的错误。 - Gabriel

1

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接