Изменение пароля в MongoDB для существующего пользователя

У меня есть производственная среда, в которой моя mongoDB запущена и работает, и администраторы баз данных просят нас изменить пароль, который мы используем для аутентификации. Один из способов сделать это — снова запустить команду addUser с новым паролем, как описано в разделе change password

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

Это так же хорошо, как добавление нового пользователя.

Я понимаю, что мне нужно перезапустить mongod с параметром --auth, как только я добавлю нового пользователя, как описано in, но так как это производственная среда, и я не могу перезапустить свой сервер. Есть ли другой вариант? или если мой подход неверен, как изменить пароль в mongoDB


person Srivatsa N    schedule 30.04.2013    source источник
comment
Вам нужно будет только перезапустить, если вы переходите от отсутствия аутентификации к аутентификации - вам не нужно перезагружаться.   -  person Asya Kamsky    schedule 30.04.2013
comment
По-видимому, вам также необходимо перезапустить при добавлении/обновлении пользователей в mongod без аутентификации (да, все еще возможно аутентифицировать пользователей в определенной базе данных)   -  person Benoit    schedule 25.11.2016


Ответы (5)


Для версии 2.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

person Gabriel    schedule 17.05.2013

МонгоДБ > 3.Х

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

Ссылка: https://docs.mongodb.com/manual/reference/method/db.updateUser/

person db80    schedule 22.12.2016

Вы связались с вопросом о добавлении аутентификации в MongoDB, который включает запуск «mongod» с параметром --auth. Поскольку вы уже работаете с параметром --auth, в вашем сценарии перезапуск не требуется.

Просто измените пароль пользователя, и все готово.

person Asya Kamsky    schedule 30.04.2013
comment
Ася, спасибо, а пароль сменить можно только так? adduser несколько вводит в заблуждение. - person Srivatsa N; 02.05.2013
comment
Я согласен, что это не лучшее имя команды, но addUser создаст пользователя, если он не существует, или изменит его пароль, если он существует. - person Asya Kamsky; 02.05.2013
comment
Начиная с версии 2.4 это больше не работает JavaScript execution failed: User already exists with that username/userSource combination - person UpTheCreek; 07.05.2013
comment
@Asya, использующая синтаксис 2.2, дает необработанное исключение: не удалось добавить пользователя: запись system.users не должна иметь поля «роли» и «только для чтения» - person Gabriel; 17.05.2013

Начиная с Mongodb 4.0, вы должны использовать db.updateUser(), установив ключ passwordDigestor как «сервер», при обновлении пароля пользователя:

person ivanleoncz    schedule 23.05.2019

Если у вас старый пароль и вы хотите его изменить, тогда используйте mongo --username <USERNAME>, а затем используйте db.changeUserPassword("<USERNAME>", passwordPrompt()).

person Krunal    schedule 29.06.2021