|
MongoDBはロールベースの認可を通じてデータやコマンドへのアクセスを付与し、データベースシステムで一般的に必要とされる異なるアクセスレベルを提供する組み込みの役割を提供します。 ユーザー定義の役割も作成できます。 ロールは定義されたリソースに対して一連のアクションを実行する権限を与えます。 特定の役割は、その定義されたデータベースに適用され、コレクションの細分度レベルまでアクセスを許可できます。 MongoDBの各組み込みロールは、その役割のデータベース内のすべての非システムコレクションに対してデータベースレベルで、すべてのシステムコレクションに対してコレクションレベルでアクセスを定義しています。 MongoDBは、すべてのデータベースに組み込みのデータベースユーザーおよび管理役割を提供します。 MongoDBは、その他の組み込みロールはすべて管理者データベース上のみ提供しています。 このセクションでは、各組み込みロールの権限について説明します。 また、rolesInfoコマンドを発行し、showPrivilegesとshowBuiltinRolesfieldsの両方をtrueに設定することで、いつでも組み込みロールの権限を確認できます。 データベースユーザーの役割すべてのデータベースには以下のクライアント役割が含まれます: 読むすべての非システムコレクションおよび以下のシステムコレクションのデータ読み取り機能を提供します:system.indexes、system.js、system.namespacesコレクション。 この役割は以下のアクションを付与することで読み取りアクセスを提供します: - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
- リストインデックス
- リストコレクション
readWriteリードロールのすべての権限に加え、システム以外のすべてのコレクションおよびsystem.jsコレクションのデータを変更する機能を提供します。 この役割は、これらのコレクションに対して以下の行動を提供します: - collStats
- コンバート・トゥキャップ
- createCollection
- dbハッシュ
- dbStats
- ドロップコレクション
- createIndex(インデックス作成)
- dropIndex(ドロップインデックス)
- 空のキャップ
- 発見
- 挿入
- キルカーソル
- リストインデックス
- リストコレクション
- 削除
- CollectionSameDBのrename(コレクションSameDB)を改名
- アップデート
データベース管理の役割すべてのデータベースには以下のデータベース管理役割が含まれます: dbAdminデータベースのsystem.indexes、system.namespaces、system.profileコレクションに対して以下の操作を提供します: - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
- リストインデックス
- リストコレクション
- dropCollectionとcreateCollectionはsystem.profileのみに掲載されています
バージョン2.6.4で変更:dbAdminがsystem.profilecollection用のcreateCollectionを追加しました。 以前のバージョンでは、system.profileコレクションにはdropCollectionのみがありました。
すべての非システムコレクションに対して以下のアクションを提供します。 この役割には、システム以外のコレクションに対する完全な読み取りアクセスは含まれません: - バイパスドキュメント検証
- collMod
- collStats
- コンパクト
- コンバート・トゥキャップ
- createCollection
- createIndex(インデックス作成)
- dbStats
- ドロップコレクション
- ドロップデータベース
- dropIndex(ドロップインデックス)
- enableProfiler
- reIndex
- CollectionSameDBのrename(コレクションSameDB)を改名
- 修理データベース
- 保管詳細
- 検証
dbOwnerデータベースの所有者は、データベースに対してあらゆる管理操作を行うことができます。 この役割はreadWrite、dbAdmin、userAdminの役割から付与される権限を組み合わせたものです。 ユーザー管理者現在のデータベース上でロールやユーザーを作成・修正する機能を提供します。 この役割は間接的に、データベースまたは管理者データベースにスコープが割り当てられている場合はクラスターへのスーパーユーザーアクセスを提供します。 TheuserAdminの役割は、ユーザーが自分自身を含む任意のユーザーに権限を付与できるようにします。 userAdminの役割は明示的に以下の操作を提供します: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- grant役割
- リヴォーク役割
- ビュー役割
- viewUser
クラスター管理の役割管理データベースには、単一データベースだけでなくシステム全体を管理する役割が含まれます。 これらの役割には、レプリカセットやシャードクラスタ管理機能が含まれますが、これらに限定されません。 clusterAdmin最高のクラスタ管理アクセスを提供します。 この役割は、theclusterManager、clusterMonitor、hostManagerの役割から与えられる権限を組み合わせたものです。 さらに、この役割はthedropDatabaseアクションを提供します。 clusterManagerクラスタの管理および監視作業を提供します。 この役割を持つユーザーは、それぞれシャーディングとレプリケーションで使用されるconfigおよびローカルデータベースにアクセスできます。 クラスタ全体に対して以下のアクションを提供します: - addShard
- applicationMessage
- クリーンアップオーファンド
- flushRouterConfig
- リストシャード
- removeShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- 再同期
クラスタ内のすべてのデータベースに対して以下のアクションを提供します: - enableSharding
- moveチャンク
- スプリットチャンク
- スプリットベクター
設定データベースでは、設定コレクションに対して以下の操作を提供します: 設定データベース上で、すべての構成コレクションおよびthesystem.indexes、system.js、system.namespacesのコレクションに対して以下の操作を提供します: - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
ローカルデータベースでは、replsetコレクションに対して以下の操作を提供します: - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
clusterMonitorMongoDB Cloud ManagerやOps Managerの監視エージェントなどの監視ツールへの読み取り専用アクセスを提供します。 クラスタ全体に対して以下のアクションを提供します: - connPoolStats
- カーソルインフォ
- getCmdLineOpts
- ゲットログ
- getParameter
- getShardMap
- ホスト情報
- インプログ
- リストデータベース
- リストシャード
- ネットスタット
- replSetGetStatus
- replSetGetConfig
- サーバーステータス
- シャーディングステート
- ページのトップへ
クラスタ内のすべてのデータベースに対して以下のアクションを提供します: - collStats
- dbStats
- getShardVersion
- インデックス統計
クラスタ内のすべてのsystem.profileコレクションに対してfindアクションを提供します。 構成データベースの構成コレクションおよびsystem.indexes、system.js、system.namespacesコレクションに対して以下の操作を提供します。 - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
hostManagerサーバーの監視と管理機能を提供します。 クラスタ全体に対して以下のアクションを提供します: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLoging(診断ログ)
- flushRouterConfig
- fsync(fsync)
- invalidUserCache
- キロップ
- logRotate
- 再同期
- setParameter
- 閉鎖
- 接触
- アンロック
クラスタ内のすべてのデータベースに対して以下のアクションを提供します:
バックアップおよび修復の役割管理データベースには、データのバックアップおよび復元のための以下の役割が含まれます: バックアップデータのバックアップに必要な最小限の権限を提供します。 この役割は、MongoDB Cloud Managerのバックアップエージェント、Ops Managerのバックアップエージェント、またはmongodumpを使ってmongodインスタンス全体をバックアップするための十分な権限を提供します。 管理者データベースのmms.backupコレクションおよび設定データベースの設定コレクションに対する挿入および更新操作を提供します。 クラスタ全体に対してlistDatabasesアクションを提供します。 すべてのデータベースに対してlistCollectionsアクションを提供します。 すべてのコレクションに対してlistIndexesアクションを提供します。 文書検証があるコレクションに対してバイパスDocumentValidationアクションを提供します。 以下の事項で検索アクションを提供します: - クラスタ内のすべての非システムコレクション
- クラスタ内の以下のシステムコレクション:System.indexes、system.namespaces、およびsystem.js
- admin.system.usersおよびadmin.system.rolesのコレクション
- config.settings コレクション
- 2.6以前のMongoDBバージョンからのレガシーSystem.usersコレクション
バージョン3.2.1で変更:バックアップロールは、データベースプロファイリングで動作する際に存在するthesystem.profileコレクションをバックアップするための追加権限を提供します。 以前は、このコレクションに対して追加の閲覧アクセスが必要でした。 リストアsystem.profilecollectionデータを含まないバックアップからデータを復元するために必要な権限を提供します。 この役割は、--oplogReplayオプションなしでmongorestoreでデータを復元する場合に十分です。 バックアップデータにsystem.profileコレクションデータが含まれていて、ターゲットデータベースにsystem.profileコレクションが含まれていない場合、mongostoredはコレクションの作成を試みます。 このプログラムは実際にはsystem.profileドキュメントを復元しません。 そのため、ユーザーはデータベースのsystem.profileコレクションに対してcreateCollectionおよびconvertToCappedアクションを実行するために追加の権限を必要とします。 組み込みの役割dbAdminとdbAdminAnyDatabaseは追加の権限を提供します。 --oplogReplayでmongorestoreを実行する場合、復元ロールだけではoplogを再生するには不十分です。 oplogを再生するには、anyResourceにanyActionを持つユーザー定義ロールを作成し、mongorestoreを--oplogReplayで実行しなければならないユーザーにのみ付与します。
クラスタ内のすべての非システムコレクションおよびsystem.jsコレクションに対して以下のアクションを提供します。 管理者データベース内のAdmin.System.usersおよびAdmin.System.Rolesコレクションに、 および2.6以前のMongoDBバージョンからのレガシーsystem.usersコレクション: - collMod
- createCollection
- createIndex(インデックス作成)
- ドロップコレクション
- 挿入
すべてのデータベースに対してlistCollectionsアクションを提供します。 admin.system.usersおよびレガシーのsystem.userscollectionsに対して、以下の追加アクションを提供します: クラスタ内のすべてのsystem.namespacesコレクションに対してfindアクションを提供します。 復元にはadmin.system.userscollection内の文書を通常の修正操作で変更する機能が含まれていますが、これらのデータはユーザー管理でのみ変更可能です 方法。
オールデータベースの役割管理者データベースは、mongodインスタンス内のすべてのデータベースに適用される以下の役割を提供し、単一データベースの同等物とほぼ同等です。 readAnyDatabase読み取りと同じ読み取り専用権限を提供しますが、クラスタ内のすべてのデータベースに適用されます。 この役割はクラスタ全体に対してlistDatabasesアクションも提供します。 readWriteAnyDatabasereadWriteと同じ読み書き権限を提供しますが、クラスタ内のすべてのデータベースに適用されます。 この役割はクラスタ全体に対してlistDatabasesアクションも提供します。 userAdminAnyDatabaseuserAdminと同じユーザー管理操作へのアクセスを提供しますが、クラスタ内のすべてのデータベースに適用されます。 この役割はクラスタ全体に対して以下のアクションも提供します: - authSchemaUpgrade
- invalidUserCache
- リストデータベース
この役割はまた、管理者データベースのadmin.system.usersおよびadmin.system.rolesコレクション、ならびに以下のバージョンのレガシーsystem.userscollectionsに対して以下のアクションを提供します 2.6以前のMongoDB: - collStats
- dbハッシュ
- dbStats
- 発見
- キルカーソル
- planCacheRead
バージョン2.6.4で変更:userAdminAnyDatabaseがtheadmin.system.usersおよびadmin.system.rolesコレクションに以下の権限を追加しました: - createIndex(インデックス作成)
- dropIndex(ドロップインデックス)
userAdminAnyDatabaseの役割は、ユーザーが付与できる権限を制限しません。 その結果、userAdminAnyDatabaseユーザーは現在の権限を超える権限を自分に付与でき、役割自体がそうでなくてもすべての権限を自分に付与することもあります ユーザー管理以外の権限を明示的に許可します。 この役割は実質的にMongoDBシステムのスーパーユーザーです。 dbAdminAnyDatabasedbAdminと同じデータベース管理操作へのアクセスを提供しますが、クラスタ内のすべてのデータベースに適用されます。 この役割はクラスタ全体に対してlistDatabasesアクションも提供します。
スーパーユーザーの役割いくつかの役割は、間接的または直接的なシステム全体のスーパーユーザーアクセスを提供します。 以下の役割は、任意のデータベースに対して任意の権限を割り当てる機能を提供しており、これらの役割を持つユーザーは任意のデータベースに対して任意の権限を割り当てることができます。 - 管理者データベースにスコープが割り当てられた場合のdbOwner役割
- userAdminロール、管理者データベースにスコープが割り当てられた場合
- userAdminAnyDatabase role
以下の役割はすべてのリソースに対して完全な権限を提供します: 根readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、Restore ロールの操作およびすべてのリソースへのアクセスを提供します。 バージョン3.0.7で変更:ルートにシステムに対する検証アクションがあります。 コレクション。 以前は、rootはシステムで始まるコレクションへのアクセスを含みませんでした。 system.indexesやsystem.namespaces以外の接頭辞。 ルートロールには復元ロールの権限が含まれます。
内部の役割__systemMongoDBは、レプリカセットメンバーやMongosインスタンスなど、クラスタメンバーを表すユーザーオブジェクトにこの役割を割り当てます。 この役割は、その保持者がデータベース内の任意のオブジェクトに対してあらゆる行動を取る権利を与えます。 この役割は、例外的な状況を除き、アプリケーションや人間管理者を表すユーザーオブジェクトに割り当てないでください。 すべてのリソースのアクションにアクセスする必要がある場合、例えばapplyOpsコマンドを実行する場合など、この役割を割り当てないでください。 代わりに、anyResourceに対してanyActionを付与するユーザー定義ロールを作成し、これらの操作へのアクセスを必要とするユーザーだけがこのアクセス権を持てるようにしてください。 オリジナル:https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|