AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

system.roles 自己管理型配置のコレクション

adminデータベースのsystem.rolesコレクションにはユーザー定義ロールが保存されています。 To create and manage these user-defined roles, MongoDB provides role management commands.

system.rolesコレクション内のドキュメントには次のスキーマがあります。

{ _id: <system-defined id>, role: "<role name>", db: "<database>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], roles: [ { role: "<role name>", db: "<database>" }, ... ]}

system.rolesドキュメントには次のフィールドがあります:

admin.system.roles.role

roleフィールドは、ロールの名前を指定するstringです。

admin.system.roles.db

dbフィールドは、ロールが属するデータベースを指定する string です。 MongoDB は、各ロールを名前の組み合わせ(つまり、 role )とそのデータベース。

admin.system.roles.privileges

privileges配列には、ロールの特権を定義する特権ドキュメントが含まれています。

特権ドキュメントの構文は次のとおりです。

{ resource: { <resource> }, actions: [ "<action>", ... ]}

各特権ドキュメントには、次のフィールドがあります。

admin.system.roles.privileges[n].resource

特権actionsが適用されるリソースを指定するドキュメント。 ドキュメントには、次のいずれかの形式があります。

{ db: <database>, collection: <collection> }

or

{ cluster : true }

詳細については、 自己管理型配置に関するリソース ドキュメント を参照してください。

admin.system.roles.privileges[n].actions

リソースで許可されるアクションの配列。アクションのリストについては、特権アクションを参照してください。

admin.system.roles.roles

roles配列には、このロールが特権を継承するロールを指定する ロール ドキュメント が含まれています。

ロール ドキュメントの構文は次のとおりです。

{ role: "<role name>", db: "<database>" }

ロール ドキュメントには、次のフィールドがあります。

admin.system.roles.roles[n].role

ロールの名前。 ロールは、MongoDB によって提供される組み込みロールまたはユーザー定義のロールにすることができます。

admin.system.roles.roles[n].db

ロールが定義されているデータベースの名前。

adminデータベースのsystem.rolesコレクションにある次のサンプル ドキュメントを検討してみましょう。

以下は、 myAppデータベースに定義されたユーザー定義ロールappUserのサンプル ドキュメントです。

{ _id: "myApp.appUser", role: "appUser", db: "myApp", privileges: [ { resource: { db: "myApp" , collection: "" }, actions: [ "find", "createCollection", "dbStats", "collStats" ] }, { resource: { db: "myApp", collection: "logs" }, actions: [ "insert" ] }, { resource: { db: "myApp", collection: "data" }, actions: [ "insert", "update", "remove", "compact" ] }, { resource: { db: "myApp", collection: "system.js" }, actions: [ "find" ] }, ], roles: []}

privileges配列には、 appUserロールが指定する 5 つの特権が列挙されています。

空のroles配列が示すように、 appUserは他のロールから追加の特権を継承しません。

以下は、 myAppデータベースに対して定義されたユーザー定義ロールappAdminのサンプル ドキュメントです。このドキュメントでは、 appAdminロールが特権を指定し、他のロールから特権を継承することを示しています。

{ _id: "myApp.appAdmin", role: "appAdmin", db: "myApp", privileges: [ { resource: { db: "myApp", collection: "" }, actions: [ "insert", "dbStats", "collStats", "compact" ] } ], roles: [ { role: "appUser", db: "myApp" } ]}

privileges配列には、 appAdminロールが指定する権限が一覧表示されます。 このロールには、システム コレクションを除くmyAppデータベース内のすべてのコレクションに対してそのアクション( "insert" 、 "dbStats" 、 "collStats" 、 "compact" )を許可する単一の特権があります。 「リソースとしてデータベースを指定する 」を参照してください。

roles配列には、ロール名とデータベースで識別されるロールが一覧表示されています。ここからロールappAdminは特権を継承します。

このページを評価