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

db.grantPrivilegesToRole()

項目一覧

  • 定義
  • 互換性
  • 動作
  • 必要なアクセス権
db.grantPrivilegesToRole(rolename, privileges, writeConcern)

ユーザー定義 ロールに追加の 権限 を付与します。

重要

mongosh メソッド

このページでは、mongosh メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません

データベースコマンドについては、grantPrivilegesToRole コマンドを参照してください。

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

db.grantPrivilegesToRole()メソッドは次の構文を使用します。

db.grantPrivilegesToRole(
"< rolename >",
[
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
{ < writeConcern > }
)

db.grantPrivilegesToRole()メソッドは次の引数を取ります。

Parameter
タイプ
説明

rolename

string

特権を付与するロールの名前。

privileges

配列

ロールに追加する特権。 権限の形式については、 privilegesを参照してください。

writeConcern

ドキュメント

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

db.grantPrivilegesToRole()メソッドは 1 つ以上の 特権を付与できます。 各<privilege>の構文は次のとおりです。

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

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

重要

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

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

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

レプリカセットで実行する場合、 db.grantPrivilegesToRole()はデフォルトで"majority"書込み保証を使用して実行されます。

adminデータベースで作成されたロールを除き、ロールにはそのデータベースに適用される権限のみを含めることができます

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

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

次のdb.grantPrivilegesToRole()操作では、 productsデータベースに存在するロールinventoryCntrl01に 2 つの追加の特権が付与されます。 操作はそのデータベースに対して実行されます。

use products
db.grantPrivilegesToRole(
"inventoryCntrl01",
[
{
resource: { db: "products", collection: "" },
actions: [ "insert" ]
},
{
resource: { db: "products", collection: "system.js" },
actions: [ "find" ]
}
],
{ w: "majority" }
)

最初の特権は、このロールを持つユーザーが、 システム コレクション を除く、 insertデータベースのすべてのコレクションに対して アクションproducts を実行することを許可します。システム コレクションにアクセスするには、特権が 2 番目の特権のように、リソース ドキュメントでシステム コレクションを明示的に指定する必要があります。

2 番目の特権は、このロールを持つユーザーがfind productという名前の データベースのシステム コレクションに対して アクションsystem.js を実行することを許可します。

戻る

db.getRoles