定義
db.getUser(username, args)指定されたユーザーのユーザー情報を返します。 ユーザーのデータベースでこのメソッドを実行します。 ユーザーがデータベースに存在しない場合、
db.getUser()はnullを返します。db.getUser()メソッドには次のパラメータがあります。db.getUser( "<username>", { showCredentials: <Boolean>, showCustomData: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document> } ) Parameterタイプ説明usernamestring
情報を検索するユーザーの名前。
argsドキュメント
任意。 追加の引数を指定するドキュメント。
argsドキュメントは、次のフィールドをサポートします。フィールドタイプ説明showCredentialsブール値
任意。 ユーザーのパスワード ハッシュを表示するには、 を
trueに設定します。デフォルトでは、このフィールドは
falseです。showCustomDataブール値
任意。 Set to
falseto omit the user'scustomDatafrom the output.デフォルトでは、このフィールドは
trueです。バージョン 5.2 で追加。
showPrivilegesブール値
任意。 を
trueに設定すると、継承されたロールの展開情報を含むユーザーの完全な権限セットが表示されます。デフォルトでは、このフィールドは
falseです。すべてのユーザーを表示する場合は、このフィールドを指定できません。
showAuthenticationRestrictionsブール値
任意。 ユーザーの認証制限を表示するには、
trueに設定します。デフォルトでは、このフィールドは
falseです。すべてのユーザーを表示する場合は、このフィールドを指定できません。
filterドキュメント
任意。フィルター条件に一致するユーザーの情報を返すために
$matchステージ条件を指定するドキュメント。db.getUser()はusersInfo: <username>コマンドをラップします。出力の詳細については、
usersInfoを参照してください。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
重要
このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
必要なアクセス権
他のユーザーの情報を表示するには、他のユーザーのデータベースに対してviewUserアクションが必要です。
ユーザーは自分の情報を表示できます。
例
次の操作は、 accounts データベース内のサンプルappClient ユーザーに関する情報を返します。
use accounts db.getUser("appClient")
出力例:
{ _id: 'accounts.appClient', userId: UUID("1c2fc1bf-c4dc-4a22-8b04-3971349ce0dc"), user: 'appClient', db: 'accounts', roles: [], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] }
出力からカスタム データを省略する
バージョン 5.2 の新機能: db.getUser() の出力からユーザーのカスタム データを除外するには、 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に設定してdb.getUser()を実行します。
db.getSiblingDB("products").getUser( "accountAdmin01", { showCustomData: false } )
出力例:
{ _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' ] }