ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

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 を実行することを許可します。