ユーザーsInfo
定義
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、および M 5クラスターで限定的にサポートされています。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { usersInfo: <various>, showCredentials: <Boolean>, showCustomData: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document>, comment: <any> } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
---|---|---|
usersInfo | さまざまな | 情報を返すユーザーに関するユーザー。
|
showCredentials | ブール値 | 任意。 ユーザーのパスワード ハッシュを表示するには、 を デフォルトでは、このフィールドは |
showCustomData | ブール値 | 任意。 Set to デフォルトでは、このフィールドは バージョン 5.2 で追加。 |
showPrivileges | ブール値 | 任意。 を デフォルトでは、このフィールドは すべてのユーザーを表示する場合は、このフィールドを指定できません。 |
showAuthenticationRestrictions | ブール値 | 任意。 ユーザーの認証制限を表示するには、 デフォルトでは、このフィールドは すべてのユーザーを表示する場合は、このフィールドを指定できません。 |
filter | ドキュメント | 任意。 フィルター条件に一致するユーザーの情報を返すために $match ステージ条件を指定するドキュメント。 |
comment | any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
usersInfo: <various>
{ usersInfo: <various> }
usersInfo
の引数には、リクエストされた情報に応じて複数の形式があります。
Argument | 戻り値 |
---|---|
{ usersInfo: 1 } | コマンドが実行されたデータベース内のユーザーに関する情報を返します。
|
{ usersInfo: <username> } | コマンドが実行されたデータベースに存在する特定のユーザーに関する情報を返します。
|
{ usersInfo: { user: <name>, db: <db> } } | 名前とデータベースによって指定されたユーザーに関する情報を返します。 |
{ usersInfo: [ { user: <name>, db: <db> }, ... ] } { usersInfo: [ <username1>, ... ] } | 指定したユーザーに関する情報を返します。 |
{ forAllDBs: true } | すべてのデータベース内のユーザーに関する情報を返します。 |
必要なアクセス権
ユーザーはいつでも自分の情報を表示できます。
別のユーザーの情報を表示するには、コマンドを実行しているユーザーに、他のユーザーのデータベースに対するviewUser
アクションを含む特権が必要です。
出力
指定されたオプションに応じて、 usersInfo
によって次の情報が返される場合があります。
{ "users" : [ { "_id" : "<db>.<username>", "userId" : <UUID>, "user" : "<username>", "db" : "<db>", "mechanisms" : [ ... ], "customData" : <document>, "roles" : [ ... ], "credentials": { ... }, // only if showCredentials: true "inheritedRoles" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true "inheritedPrivileges" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true "inheritedAuthenticationRestrictions" : [ ] // only if showPrivileges: true or showAuthenticationRestrictions: true "authenticationRestrictions" : [ ... ] // only if showAuthenticationRestrictions: true }, ... ], "ok" : 1 }
例
特定のユーザーの表示
"home"
データベースで定義されているユーザー"Kari"
の情報と特権を表示するには、次のコマンドを実行します。
db.runCommand( { usersInfo: { user: "Kari", db: "home" }, showPrivileges: true } )
現在のデータベースに存在するユーザーを表示するには、名前のみでユーザーを指定できます。 たとえば、 home
データベースにいて、 "Kari"
という名前のユーザーがhome
データベースに存在する場合は、次のコマンドを実行できます。
db.getSiblingDB("home").runCommand( { usersInfo: "Kari", showPrivileges: true } )
複数のユーザーの表示
複数のユーザーの情報を表示するには、オプション フィールドshowPrivileges
とshowCredentials
の有無にかかわらず、配列を使用します。 例:
db.runCommand( { usersInfo: [ { user: "Kari", db: "home" }, { user: "Li", db: "myApp" } ], showPrivileges: true } )
データベースのすべてのユーザーの表示
コマンドが実行されるデータベース上のすべてのユーザーを表示するには、次のようなコマンド ドキュメントを使用します。
db.runCommand( { usersInfo: 1 } )
すべてのユーザーを表示する場合は、 showCredentials
オプションを指定できますが、 showPrivileges
またはshowAuthenticationRestrictions
オプションは指定できません。
指定したフィルターに一致するデータベースのすべてのユーザーの表示
usersInfo
コマンドはfilter
ドキュメントを受け入れ、フィルター条件に一致するユーザーの情報を返すことができます。
現在のデータベース内で指定されたロールを持つすべてのユーザーを表示するには、次のようなコマンド ドキュメントを使用します。
db.runCommand( { usersInfo: 1, filter: { roles: { role: "root", db: "admin" } } } )
すべてのユーザーを表示する場合は、 showCredentials
オプションを指定できますが、 showPrivileges
またはshowAuthenticationRestrictions
オプションは指定できません。
認証情報を持つすべてのユーザーの表示SCRAM-SHA-1
usersInfo
コマンドはfilter
ドキュメントを受け入れ、フィルター条件に一致するユーザーの情報を返すことができます。
次の操作では、 SCRAM-SHA-1
認証情報を持つすべてのユーザーが返されます。 具体的には、コマンドは全データベースのすべてのユーザーを返し、 $match
ステージを使用して指定されたフィルターをユーザーに適用します。
db.runCommand( { usersInfo: { forAllDBs: true}, filter: { mechanisms: "SCRAM-SHA-1" } } )
すべてのユーザーを表示する場合は、 showCredentials
オプションを指定できますが、 showPrivileges
またはshowAuthenticationRestrictions
オプションは指定できません。
出力からカスタム データを省略する
バージョン 5.2 の新機能: usersInfo
の出力からユーザーのカスタム データを除外するには、 showCustomData
オプションをfalse
に設定します。
createUser
コマンドを使用して、 products
データベースにaccountAdmin01
という名前のユーザーを作成します。
db.getSiblingDB("products").runCommand( { createUser: "accountAdmin01", pwd: passwordPrompt(), customData: { employeeId: 12345 }, roles: [ { role: 'readWrite', db: 'products' } ] } )
ユーザーには{ employeeId: 12345 }
のcustomData
フィールドが含まれています。
ユーザーを取得して出力からカスタム データを除外するには、 showCustomData
をfalse
に設定してusersInfo
を実行します。
db.getSiblingDB("products").runCommand ( { usersInfo: "accountAdmin01", showCustomData: false } )
出力例:
{ users: [ { _id: 'products.accountAdmin01', userId: UUID("0955afc1-303c-4683-a029-8e17dd5501f4"), user: 'accountAdmin01', db: 'products', roles: [ { role: 'readWrite', db: 'products' } ], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] } ], ok: 1 }