Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

grantPrivilegesToRole

項目一覧

  • 定義
  • 互換性
  • コマンドフィールド
  • 動作
  • 必要なアクセス権
grantPrivilegesToRole

コマンドが実行されるデータベースで定義された ユーザー定義 ロールに追加の 権限 を割り当てます。

Tip

mongoshでは、このコマンドはdb.grantPrivilegesToRole()ヘルパー メソッドを通じて実行することもできます。

ヘルパー メソッドはmongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。

grantPrivilegesToRoleコマンドは、次の構文を使用します。

{
grantPrivilegesToRole: "<role>",
privileges: [
{
resource: { <resource> }, actions: [ "<action>", ... ]
},
...
],
writeConcern: { <write concern> },
comment: <any>
}

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

コマンドには次のフィールドがあります:

フィールド
タイプ
説明
grantPrivilegesToRole
string
特権を付与するユーザー定義ロールの名前。
privileges
配列
ロールに追加する特権。 権限の形式については、 privilegesを参照してください。
writeConcern
ドキュメント

任意。 操作の 書込み保証( write concern ) のレベル。 詳しくは、 書込み保証(write concern) の仕様を参照してください。

comment
any

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

ロールの特権は、ロールが作成されたデータベースに適用されます。 adminデータベースで作成されたロールには、すべてのデータベースまたはクラスターに適用する特権を含めることができます。

特権を付与するには、特権ターゲットのデータベースに対してgrantRoleアクションが必要です。 複数のデータベースまたはclusterリソースに特権を付与するには、 adminデータベースに対してgrantRoleアクションが必要です。

次のgrantPrivilegesToRoleコマンドは、 productsデータベースに存在するserviceロールに 2 つの追加の特権を付与します。

use products
db.runCommand(
{
grantPrivilegesToRole: "service",
privileges: [
{
resource: { db: "products", collection: "" }, actions: [ "find" ]
},
{
resource: { db: "products", collection: "system.js" }, actions: [ "find" ]
}
],
writeConcern: { w: "majority" , wtimeout: 5000 }
}
)

privileges配列の最初の特権により、ユーザーはproductsデータベース内のすべての非システム コレクションを検索できます。 特権では、 コレクションなどのsystem.js システム コレクション に対するクエリは許可されません。これらのシステム コレクションへのアクセスを許可するには、 privileges配列でアクセスを明示的にプロビジョニングします。 自己管理型配置に関するリソース ドキュメントを参照してください。

2find system.js番目の特権は、すべてのデータベース上の コレクションに対する アクションを明示的に許可します。

戻る

dropAllRolesFromDatabase