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

ユーザーsInfo

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • usersInfo: <various>
  • 必要なアクセス権
  • 出力
usersInfo

1 人以上のユーザーに関する情報を返します。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

注意

このコマンドはMongoDB Atlasではサポートされていません。すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。

このコマンドの構文は、次のとおりです。

db.runCommand(
{
usersInfo: <various>,
showCredentials: <Boolean>,
showCustomData: <Boolean>,
showPrivileges: <Boolean>,
showAuthenticationRestrictions: <Boolean>,
filter: <document>,
comment: <any>
}
)

このコマンドは、次のフィールドを使用します。

フィールド
タイプ
説明

usersInfo

さまざまな

情報を返すユーザーに関するユーザー。

usersInfo の引数には、リクエストされた情報に応じて複数の形式があります。 usersInfo: <various>詳しくは、 を参照してください。

showCredentials

ブール値

任意。 ユーザーのパスワード ハッシュを表示するには、 をtrueに設定します。

デフォルトでは、このフィールドは false です。

showCustomData

ブール値

任意。 Set to false to omit the user's customData from the output.

デフォルトでは、このフィールドは true です。

バージョン 5.2 で追加

showPrivileges

ブール値

任意。 をtrueに設定すると、継承されたロールの展開情報を含むユーザーの完全な権限セットが表示されます。

デフォルトでは、このフィールドは false です。

すべてのユーザーを表示する場合は、このフィールドを指定できません。

showAuthenticationRestrictions

ブール値

任意。 ユーザーの認証制限を表示するには、 trueに設定します。

デフォルトでは、このフィールドは false です。

すべてのユーザーを表示する場合は、このフィールドを指定できません。

filter

ドキュメント

任意。 フィルター条件に一致するユーザーの情報を返すために$matchステージ条件を指定するドキュメント。

comment

any

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

{ usersInfo: <various> }

usersInfoの引数には、リクエストされた情報に応じて複数の形式があります。

Argument
戻り値

{ usersInfo: 1 }

コマンドが実行されたデータベース内のユーザーに関する情報を返します。

mongoshは、コマンドのこの呼び出し用にdb.getUsers()ヘルパーを提供します。

{ usersInfo: <username> }

コマンドが実行されたデータベースに存在する特定のユーザーに関する情報を返します。

mongoshは、コマンドのこの呼び出し用にdb.getUser()ヘルパーを提供します。

{ 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
}
)

複数のユーザーの情報を表示するには、オプション フィールドshowPrivilegesshowCredentialsの有無にかかわらず、配列を使用します。 例:

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オプションは指定できません。

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フィールドが含まれています。

ユーザーを取得して出力からカスタム データを除外するには、 showCustomDatafalseに設定して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
}

戻る

updateUser