2013-04-30 30 views
8

私のmongoDBが稼働している実稼働環境があり、認証に使用するパスワードをDBAが変更するよう求めています。 change passwordMongoDBの既存ユーザーのパスワードを変更する

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

で説明したようにこれを行う1つの方法は、新しいパスワードで再度、adduserコマンドを実行しているこれは、新しいユーザーを追加するのと同じくらい良いです。

私はinのように新しいユーザーを追加すると--authオプションでmongodを再起動する必要があることを理解していますが、これはプロダクション環境であり、サーバーを再起動できません。他の選択肢はありますか?私のアプローチは、MongoDBの

+0

authからauthに移行する場合は、再起動する必要があります。再起動する必要はありません。 –

+0

明らかに、非認証mongodにユーザーを追加/更新するときにも再起動する必要があります(特定のデータベースでユーザーを認証することは可能です) – Benoit

答えて

1

でパスワードを変更する方法を間違っている場合や、オプション--authで「mongodプロセス」を開始することを伴うMongoDBのに認証を追加することについて尋ねる質問にリンクされています。すでに--authで実行しているので、再起動は必要ありません。

ユーザーのパスワードを変更するだけで、移動するように設定されます。

+1

ありがとうございますAsya、パスワードを変更する唯一の方法ですか? "adduser"はやや誤解を招く。 –

+1

私はそれが最良のコマンド名ではないことに同意しますが、存在しない場合はaddUserがユーザーを作成し、存在する場合はパスワードを変更します。 –

+0

2.4の時点ではもう動作していないようです。「JavaScriptの実行に失敗しました。ユーザーはすでにusername/userSourceの組み合わせで存在しています」 – UpTheCreek

0

あなたはでセキュリティ設定を変更した場合10の設定ファイルでは、パスワードを変更することはできません。そのためには、disabledauthorizationを設定します。

停止mongodサービス:

$ sudo service mongod stop 

オープンMongo設定ファイル(パスがシステムに異なる場合があります):

Linuxの

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

のWindows

設定ファイルのパス:「C:\プログラムファイル\のMongoDB \サーバー3.6 \のmongod \。CFG」

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

security: 
    authorization: enabled 

への変更:

security: 
    authorization: disabled 

Mongoサービス開始:

$ sudo service mongod start 

をし、内からパスワードを変更しますMongoシェル:

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

今、あなたは戻って、それが何であったかにauthorizationを設定することができます。 Mongoサービスを停止し、設定を変更してサービスを開始してください。

関連する問題