MongoDBが稼働している実稼働環境があり、DBAから認証に使用するパスワードの変更を求められています。これを行う1つの方法は、 パスワードの変更 で説明されているように、新しいパスワードを使用してaddUserコマンドを再度実行することです。
> db.auth("app_user", "somepassword")
db.addUser("app_user", "new password")
これは、新しいユーザーを追加するのと同じくらい良いことです。
説明されているように新しいユーザーを追加したら、-authオプションを使用してmongodを再起動する必要があることを理解しています in しかし、これは本番環境であり、サーバーを再起動できません。他に選択肢はありますか?または私のアプローチが間違っている場合は、mongoDBでパスワードを変更する方法
V2.4の場合
db.changeUserPassword("app_user", "new password")
https://groups.google.com/d/msg/mongodb-user/KkXbDCsCfOs/rk2_h-oSbAwJhttps://jira.mongodb.org/browse/DOCS-1515
MongoDB> 3.X
db.updateUser("root", {pwd: "NewRootAdmin" })
リファレンス: https://docs.mongodb.com/manual/reference/method/db.updateUser/
Mongo
構成ファイルのセキュリティ設定を変更した場合、パスワードを変更することはできません。これを行うには、authorization
をdisabled
に設定します。
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
サービスを停止し、設定を変更してサービスを開始するだけです。
オプション--authで「mongod」を開始することを含むMongoDBへの認証の追加について尋ねる質問にリンクしました。すでに--authで実行しているため、シナリオでは再起動は必要ありません。
ユーザーパスワードを変更するだけで、準備が整います。
Mongodb 4.0以降では、ユーザーパスワードを更新するときに、db.updateUser()
を使用し、passwordDigestor
キーを「サーバー」として設定する必要があります。