web-dev-qa-db-ja.com

既存のユーザーのMongoDBのパスワードを変更する

MongoDBが稼働している実稼働環境があり、DBAから認証に使用するパスワードの変更を求められています。これを行う1つの方法は、 パスワードの変更 で説明されているように、新しいパスワードを使用してaddUserコマンドを再度実行することです。

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

これは、新しいユーザーを追加するのと同じくらい良いことです。

説明されているように新しいユーザーを追加したら、-authオプションを使用してmongodを再起動する必要があることを理解しています in しかし、これは本番環境であり、サーバーを再起動できません。他に選択肢はありますか?または私のアプローチが間違っている場合は、mongoDBでパスワードを変更する方法

15
Srivatsa N
15
Gabriel

MongoDB> 3.X

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

リファレンス: https://docs.mongodb.com/manual/reference/method/db.updateUser/

11
db80

Mongo構成ファイルのセキュリティ設定を変更した場合、パスワードを変更することはできません。これを行うには、authorizationdisabledに設定します。

mongodサービスを停止します:

$ Sudo service mongod stop

Mongo構成ファイルを開きます(パスはシステムによって異なる場合があります):

Linux

設定ファイルのパス: "/ etc/mongod.conf"

Windows

構成ファイルのパス: "C:\ Program Files\MongoDB\Server\3.6\mongod.cfg"

authorizationを見つけて、disabledに設定します。

security:
  authorization: enabled

への変更:

security:
  authorization: disabled

Mongoサービスを開始します。

$ Sudo service mongod start

Mongo Shell内からパスワードを変更します。

> use mydb
> db.updateUser("myUser", {pwd: "myNewPassword" })

これで、authorizationを元の状態に戻すことができます。 Mongoサービスを停止し、設定を変更してサービスを開始するだけです。

2

オプション--authで「mongod」を開始することを含むMongoDBへの認証の追加について尋ねる質問にリンクしました。すでに--authで実行しているため、シナリオでは再起動は必要ありません。

ユーザーパスワードを変更するだけで、準備が整います。

1
Asya Kamsky

Mongodb 4.0以降では、ユーザーパスワードを更新するときに、db.updateUser()を使用し、passwordDigestorキーを「サーバー」として設定する必要があります。

0
ivanleoncz