Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB中更改现有用户的密码_Mongodb_Authentication_Change Password - Fatal编程技术网

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

在MongoDB中更改现有用户的密码,mongodb,authentication,change-password,Mongodb,Authentication,Change Password,我有一个生产环境,mongoDB已经启动并运行,DBA要求我们更改用于身份验证的密码。一种方法是使用新密码再次运行addUser命令,如中所述 这与添加新用户一样好 我知道,一旦我添加了一个新用户,我就必须使用--auth选项重新启动mongod,如前所述,但由于这是一个生产环境,我无法重新启动服务器。还有其他选择吗?或者,如果我的方法错误,如何在mongoDB中更改密码您链接到一个问题,询问如何向mongoDB添加身份验证,其中涉及使用选项--auth启动“mongod”。由于您已经使用--a

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

这与添加新用户一样好


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

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

只需更改用户密码,您将被设置为go。

对于v2.4

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

MongoDB>3.X

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

参考资料:

从Mongodb 4.0开始,在更新用户密码时,必须使用
db.updateUser()
,将
passwordDigestor
键设置为“服务器”:


如果您从非身份验证转到身份验证,您只需要重新启动-您不需要重新启动。显然,在向非身份验证mongod添加/更新用户时,您也需要重新启动(是的,仍然可以对特定数据库上的用户进行身份验证),谢谢ASIA,但这是更改密码的唯一方法吗?“adduser”有点误导。我同意这不是最好的命令名,但如果用户不存在,adduser将创建用户,如果用户确实存在,则更改其密码。从2.4开始,这似乎不再有效
JavaScript执行失败:用户已经存在,并且使用2.2语法使用用户名/用户源组合
@Asya“未捕获异常:无法添加用户:system.users条目不能同时包含“角色”和“只读”字段”
db.updateUser("root", {pwd: "NewRootAdmin" })