私の質問は、mongoシェルの--authenticationDatabaseオプションに関するものです。MongoDB認証データベースの目的
私は、ユーザーが実際にここでは、このマニュアルを読んだ後に定義されているため、私は、ユーザーが作成したデータベースは、管理データベースだったと思っビットのためにそれで混乱していた:https://docs.mongodb.com/manual/core/security-users/#user-management-interface
私は私がいた理解違う;認証データベースは、ユーザーが役割を果たすデータベースです。私の質問は、オプション "--authenicationDatabase?"の目的は何ですか?以下の私のシナリオを見てください。
以下のコマンドは
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp
をmyappのデータベースに接続し、また、myappのデータベースに対して認証されます以下のコマンドでは、myappのデータベースに接続しても、デフォルトではmyappのデータベースに対して認証します。これは、上記のコマンドを廃止するように思われる。
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp
以下のコマンドは、myappデータベースに対して認証しますが、接続しません。どうして?単に資格情報をテストするだけですか?
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp"
このコマンドを実行すると、「エラー:認証に失敗しました」と表示されます。私の信任状が無効であることを知るために前のコマンドが必要なのはなぜだろうかと疑問に思う。
mongo -u "bob" -p "bobspassword" myapp
最後に、1つのデータベースに対して認証し、次のコマンドのように別のデータベースに接続する必要がある状況がありますか?私は役割が定義されているデータベースにのみ接続できます。なぜ、接続しようとしていたデータベースに対して認証しないのですか?
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myotherapp
あなたの洞察をいただきありがとうございます!
なぜ私が唯一のサーバー/テストに接続するようにしたいですか? 'show dbs'を実行するには?他に何か? – Daniel
おそらくデータベースを作成しますか?私はそれが理にかなっていると思う。 – Daniel
これはデフォルト動作ですが、dbテストに接続するには、どこかに書き込む必要があります。 mongoでは、最初の文書が保存される瞬間にDBが作成されます。 – sergiuz