定義
db.auth()ユーザーが shell 内からデータベースに認証できるようにします。
Tip
メソッドやコマンド呼び出しでパスワードを直接指定する代わりに、
passwordPrompt()メソッドをさまざまなユーザー認証や管理のメソッドやコマンドと組み合わせて使用すると、パスワードの入力を求めることができます。 ただし、mongoshell の以前のバージョンと同様にパスワードを直接指定することもできます。db.auth(<username>, <password>)構文を使用してパスワードを省略すると、ユーザーはパスワードの入力を求められます。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
重要
このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.auth()の構文形式は次のとおりです。
db.auth(<username>, <password>)
次のいずれかを実行できます。
ユーザーにパスワードの入力を求めるには、パスワードを省略します。
db.auth( <username> ) ユーザーにパスワードの入力を求めるには、
passwordPrompt()を使用します。db.auth( <username>, passwordPrompt() ) クリアテキストのパスワードを指定します。
db.auth( <username>, <password> )
db.auth(<user document>)
db.auth( { user: <username>, pwd: passwordPrompt(), // Or "<cleartext password>" mechanism: <authentication mechanism>, digestPassword: <boolean> } )
Parameter | タイプ | 説明 |
|---|---|---|
| string | このデータベースに対するアクセス特権を持つユーザーの名前。 |
| string | ユーザーのパスワード。値は次のいずれか:
Tipメソッドやコマンドの呼び出しでパスワードを直接指定する代わりに、 ユーザー ドキュメントの構文を使用する場合、 |
| string | 任意。使用する 利用可能なメカニズムについては、「 指定されていない場合は、 |
| ブール値 | 任意。指定されたパスワードを、指定された認証メカニズムで使用する前に事前にハッシュ化するかどうかを決定します。
デフォルト値は |
- 戻り値
db.auth()は、認証が成功しなかった場合は0を返し、操作が成功した場合は1を返します。
動作
クライアントの切断
MongoDB 4.2以降では、 db.auth()を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp を使用してdb.auth()を終了対象としてマークし 。
例
Tip
メソッドやコマンドの呼び出しでパスワードを直接指定する代わりに、 passwordPrompt()メソッドをさまざまなユーザー認証や管理のメソッドやコマンドと組み合わせて使用すると、パスワードの入力を求めることができます。 ただし、 mongo shell の以前のバージョンと同様にパスワードを直接指定することもできます。
db.auth(<username>, <password>)構文を使用してパスワードを省略すると、ユーザーはパスワードの入力を求められます。
Shell への接続後の認証
mongosh を接続後に認証するには、ユーザーの認証データベース内に db.auth() を発行します。
use test db.auth( "myTestDBUser", passwordPrompt() )
password 値を完全に省略すると、ユーザーにパスワードの入力を求めることができます。
use test db.auth( "myTestDBUser" )
MongoDB 5.0以降、接続で--apiStrictオプションが指定されている場合は、 db.auth()メソッドを使用して次の操作を実行できません。
同じデータベースで同じユーザーとして再度認証します。
以前に同じデータベースで認証されていた場合は、別のユーザーとして認証します。
以前に別のデータベースで認証されていた場合は、新しいデータベースで認証します。
Shell への接続時の認証
あるいは、 mongoshのコマンドライン オプション--username 、 --password 、 --authenticationDatabase 、 --authenticationMechanismを使用して、 mongoshを接続するときに認証情報を指定することもできます。
mongosh --username "myTestDBUser" --password --authenticationDatabase test --authenticationMechanism SCRAM-SHA-256