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>", ... ] }

レプリカセットで実行する場合、 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