Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

db.auth()

項目一覧

  • 定義
  • 構文
  • 動作
db.auth()

ユーザーが shell 内からデータベースに認証できるようにします。

Tip

メソッドやコマンド呼び出しでパスワードを直接指定する代わりに、 passwordPrompt()メソッドをさまざまなユーザー認証や管理のメソッドやコマンドと組み合わせて使用すると、パスワードの入力を求めることができます。 ただし、 mongo shell の以前のバージョンと同様にパスワードを直接指定できます。

db.auth(<username>, <password>)構文を使用してパスワードを省略すると、ユーザーはパスワードの入力を求められます。

db.auth()の構文形式は次のとおりです。

次のいずれかを実行できます。

  • ユーザーにパスワードの入力を求めるには、パスワードを省略します。

    db.auth( <username> )
  • ユーザーにパスワードの入力を求めるには、passwordPrompt() を使用します。

    db.auth( <username>, passwordPrompt() )
  • クリアテキストのパスワードを指定します。

    db.auth( <username>, <password> )
db.auth( {
user: <username>,
pwd: passwordPrompt(), // Or "<cleartext password>"
mechanism: <authentication mechanism>,
digestPassword: <boolean>
} )
Parameter
タイプ
説明
user
string
このデータベースに対するアクセス特権を持つユーザーの名前。
pwd
string

ユーザーのパスワード。値は次のいずれか:

  • クリアテキスト文字列のユーザーのパスワード

  • passwordPrompt() で、ユーザーのパスワードの入力を求める

Tip

メソッドやコマンドの呼び出しでパスワードを直接指定する代わりに、 passwordPrompt()メソッドをさまざまなユーザー認証や管理のメソッドやコマンドと組み合わせて使用すると、パスワードの入力を求めることができます。 ただし、 mongo shell の以前のバージョンと同様にパスワードを直接指定することもできます。

ユーザー ドキュメントの構文を使用する場合、pwd を省略できません。

mechanism
string

任意。使用する authentication mechanism

利用可能なメカニズムについては、「authentication mechanisms」を参照してください。

指定されていない場合は、hello コマンドを使用して、SASL メカニズム、または指定されたユーザーのメカニズムを決定します。saslSupportedMechs 参照してください。

digestPassword
ブール値

任意。指定されたパスワードを、指定された認証メカニズムで使用する前に事前にハッシュ化するかどうかを決定します。

  • SCRAM-SHA-1 の場合、true に指定できますが、この値を true に設定してもセキュリティは向上せず、他のメカニズムを使用した認証情報に干渉する可能性があります。

  • 他のメソッドの場合はいずれでも、この値を false(デフォルト値)に設定する必要があります。これらのメソッドは MongoDB の事前ハッシュを理解しないため、他の値を指定すると認証が失敗します。

デフォルト値は false です。

注意

mongoshは保存された履歴からすべてのdb.auth()操作を除外します。

戻り値
db.auth() は、認証が成功しなかった場合は 0 を返し、操作が成功した場合は 1 を返します。

MongoDB 4.2以降では、 db.auth()を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp を使用してdb.auth()を終了対象としてマークし

Tip

メソッドやコマンドの呼び出しでパスワードを直接指定する代わりに、 passwordPrompt()メソッドをさまざまなユーザー認証や管理のメソッドやコマンドと組み合わせて使用すると、パスワードの入力を求めることができます。 ただし、 mongo shell の以前のバージョンと同様にパスワードを直接指定することもできます。

db.auth(<username>, <password>)構文を使用してパスワードを省略すると、ユーザーはパスワードの入力を求められます。

mongosh を接続後に認証するには、ユーザーの認証データベース内に db.auth() を発行します。

use test
db.auth( "myTestDBUser", passwordPrompt() )

password 値を完全に省略すると、ユーザーにパスワードの入力を求めることができます。

use test
db.auth( "myTestDBUser" )

MongoDB 5.0以降、接続で--apiStrictオプションが指定されている場合は、 db.auth()メソッドを使用して次の操作を実行できません。

  • 同じデータベースで同じユーザーとして再度認証します。

  • 以前に同じデータベースで認証されていた場合は、別のユーザーとして認証します。

  • 以前に別のデータベースで認証されていた場合は、新しいデータベースで認証します。

あるいは、 mongoshのコマンドライン オプション--username--password--authenticationDatabase--authenticationMechanismを使用して、 mongoshを接続するときに認証情報を指定することもできます。

mongosh --username "myTestDBUser" --password --authenticationDatabase test --authenticationMechanism SCRAM-SHA-256

戻る

ユーザー管理