Changing the password in MongoDB for existing user
Asked Answered
A

5

22

I have production environment where my mongoDB is up and running and DBAs are asking us to change the password which we use for authentication. One way to do this is run the addUser command again with a new password as described in change password

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

This is as good as a adding a new user.

I understand that I have to restart mongod with the --auth option once I add a new user as described in but as this is a production env and I can't restart my server. Is there any other option ? or if my approach is wrong how to change the password in mongoDB

Allain answered 30/4, 2013 at 14:31 Comment(2)
You only would need to restart if you were going from no auth to auth - you have no need to restart.Lawtun
Apparently you also need to restart when adding/updating users to a non auth mongod (yes its still possible to authenticate users on specific database)Overspill
A
25

For v2.4

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

https://groups.google.com/d/msg/mongodb-user/KkXbDCsCfOs/rk2_h-oSbAwJ https://jira.mongodb.org/browse/DOCS-1515

Arum answered 17/5, 2013 at 18:7 Comment(0)
S
28

MongoDB > 3.X

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

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

Sigismundo answered 22/12, 2016 at 15:46 Comment(0)
A
25

For v2.4

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

https://groups.google.com/d/msg/mongodb-user/KkXbDCsCfOs/rk2_h-oSbAwJ https://jira.mongodb.org/browse/DOCS-1515

Arum answered 17/5, 2013 at 18:7 Comment(0)
L
1

You linked to a question asking about adding authentication to MongoDB which involves starting 'mongod' with option --auth. Since you are already running with --auth the restart is not necessary in your scenario.

Just change the user password and you'll be set to go.

Lawtun answered 30/4, 2013 at 15:16 Comment(4)
Thanks Asya, but is it the only way to change the password ? "adduser" is somewhat misleading.Allain
I agree it's not the best command name but addUser will create user if they don't exist or change their password if they do exist.Lawtun
As of 2.4 this doesn't seem to work anymore JavaScript execution failed: User already exists with that username/userSource combinationChurchless
@Asya using the 2.2 syntax gives "uncaught exception: couldn't add user: system.users entry must not have both 'roles' and 'readOnly' fields"Arum
E
1

Starting of Mongodb 4.0, you have to use db.updateUser(), setting passwordDigestor key as "server", when updating the user password:

Embracery answered 23/5, 2019 at 2:34 Comment(0)
M
1

If you have an old password and you want to change the password then user mongo --username <USERNAME> and then use db.changeUserPassword("<USERNAME>", passwordPrompt()) .

Mcgannon answered 29/6, 2021 at 12:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.