db.getRoles()
定義
db.getRoles()
コマンドが実行されるデータベース内のすべてのロールに関する情報を返します。このメソッドは、引数の有無にかかわらず実行できます。
引数を指定せずに実行すると、
db.getRoles()
はデータベースのユーザー定義ロールの継承情報を返します。詳細情報を返すには、次のフィールドを含むドキュメントを
db.getRoles()
に渡します。フィールドタイプ説明rolesInfo
integerすべてのユーザー定義ロールを検索するには、このフィールドを1
に設定します。showAuthenticationRestrictions
ブール値任意。 出力に認証制限を含めるには、このフィールドを
true
に設定します。 認証制限は、このロールを持つユーザーが接続できる IP アドレスと接続元を示します。デフォルトでは、このフィールドは
false
であり、db.getRoles()
の出力には認証制限が含まれていません。showBuiltinRoles
ブール値任意。このフィールドを true に設定すると、組み込みロールとユーザー定義ロールが表示されます。showPrivileges
ブール値任意。 このフィールドをtrue
に設定すると、他のロールから継承される権限と直接定義された権限の両方を含むロール権限が表示されます。 デフォルトでは、コマンドは、このロールが特権を継承するロールのみを返し、特定の特権は返しません。db.getRoles()
はrolesInfo
コマンドをラップします。
必要なアクセス権
ロールの情報を表示するには、ロールが明示的に付与されているか、ロールのデータベースに対してviewRole
アクションを持っている必要があります。
例
このセクションの例では、 db.getRoles
を使用して次の操作を行う方法を示します。
ロール特権と組み込みロールの表示
次の操作では、ロール特権と組み込みロールを含む products
データベースのすべてのロールが返されます。
use products db.getRoles( { rolesInfo: 1, showPrivileges: true, showBuiltinRoles: true } )
出力例(読みやすくするために短縮しています)
{ roles: [ { role: 'dbOwner', db: 'products', isBuiltin: true, roles: [], inheritedRoles: [], privileges: [ { resource: { db: 'products', collection: '' }, actions: [ 'analyze', 'bypassDocumentValidation', 'changeCustomData', ... ] }, { resource: { db: 'products', collection: 'system.profile' }, actions: [ 'changeStream', 'collStats', 'convertToCapped', ... ] } ], inheritedPrivileges: [ { resource: { db: 'products', collection: '' }, actions: [ 'analyze', 'bypassDocumentValidation', 'changeCustomData', ... ] } ] }, ... ] }
認証制限の表示
次の操作は、product
データベース上のすべてのユーザー定義ロールのロール継承情報と認証制限を返します。
use products db.getRoles( { rolesInfo: 1, showAuthenticationRestrictions: true } )
出力例:
{ roles: [ { _id: 'products.associate', role: 'associate', db: 'products', roles: [ { role: 'readWrite', db: 'products' } ], authenticationRestrictions: [ [ { clientSource: [ '198.51.100.0' ] } ] ], isBuiltin: false, inheritedRoles: [ { role: 'readWrite', db: 'products' } ], inheritedAuthenticationRestrictions: [ [ { clientSource: [ '198.51.100.0' ] } ] ] } ], ok: 1 }