自己管理型配置に関するリソース ドキュメント
リソース ドキュメントでは、権限により actions
が許可されるリソースを指定します。
データベースおよび/またはコレクション リソース
データベースやコレクションを指定するには、次の構文を使用します。
{ db: <database>, collection: <collection> }
リソースとしてデータベースのコレクションを指定
リソースdb
collection
ドキュメントで、 フィールドと フィールドの両方が空でない文字列として指定されている場合、リソースは指定されたデータベース内の指定されたコレクションです。たとえば、次のドキュメントでは、 products
データベース内のinventory
コレクションのリソースを指定しています。
{ db: "products", collection: "inventory" }
admin
以外のデータベースをスコープとするユーザー定義ロールの場合、その権限のリソース仕様でロールと同じデータベースを指定する必要があります。 admin
データベースをスコープとするユーザー定義のロールは、他のデータベースを指定できます。
リソースとしてのデータベースを指定
collection
フィールドのみが空のstring (""
)の場合、リソースは指定されたデータベースで、システム コレクションを除きます。 たとえば、次のリソース ドキュメントでは、システム コレクションを除くtest
データベースのリソースを指定します。
{ db: "test", collection: "" }
admin
以外のデータベースをスコープとするユーザー定義ロールの場合、その権限のリソース仕様でロールと同じデータベースを指定する必要があります。 admin
データベースをスコープとするユーザー定義のロールは、他のデータベースを指定できます。
注意
リソースとしてデータベースを指定すると、次のように名前を明示的に指定しない限り、システム コレクションは除外されます。
{ db: "test", collection: "system.js" }
システム コレクションには以下が含まれますが、これらに限定されません。
system.users
データベースの 自己管理型配置のadmin
コレクションsystem.roles
データベースの 自己管理型配置のadmin
コレクション
リソースとしてデータベース全体でコレクションを指定
db
フィールドのみが空のstring (""
)の場合、リソースはすべてのデータベースにわたる指定された名前を持つすべてのコレクションです。 たとえば、次のドキュメントでは、すべてのデータベースにわたるすべてのaccounts
コレクションのリソースを指定します。
{ db: "", collection: "accounts" }
ユーザー定義ロールの場合、 admin
データベースにスコープが設定されたロールのみが、特権のこのリソース仕様を持つことができます。
すべてのデータベースのすべての非システム コレクションを指定
db
フィールドとcollection
フィールドの両方が空の文字列( ""
)の場合、リソースはすべてのデータベース内のすべてのコレクション(システム コレクションを除く)です。
{ db: "", collection: "" }
ユーザー定義ロールの場合、 admin
データベースにスコープが設定されたロールのみが、特権のこのリソース仕様を持つことができます。
クラスター リソース
クラスターをリソースとして指定するには、次の構文を使用します。
{ cluster : true }
特定のデータベースセットやコレクションに対して実行されるのではなく、システムの状態に影響を与えるアクションには、 cluster
リソースを使用します。 このようなアクションの例には、 shutdown
、 replSetReconfig
、 addShard
などがあります。 たとえば、次のドキュメントでは、 cluster
でアクションshutdown
が付与されます。
{ resource: { cluster : true }, actions: [ "shutdown" ] }
ユーザー定義ロールの場合、 admin
データベースにスコープが設定されたロールのみが、特権のこのリソース仕様を持つことができます。
anyResource
内部リソースanyResource
はシステム内のすべてのリソースへのアクセスを許可し、内部での使用を目的としています。 Do not use this resource, other than in exceptional circumstances. このリソースの構文は{ anyResource: true }
です。