AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

db.revokePrivilegesFromRole()(mongoshメソッド)

db.revokePrivilegesFromRole(rolename, privileges, writeConcern)

メソッドが実行されるデータベース上のユーザー定義ロールから指定された権限を削除します。

重要

mongosh メソッド

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

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

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

db.revokePrivilegesFromRole()メソッドの構文は次のとおりです。

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

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

Parameter
タイプ
説明

rolename

string

特権を取り消すユーザー定義のロールの名前。

privileges

配列

ロールから削除する特権の配列。 特権の形式の詳細については、 privilegesを参照してください。

writeConcern

ドキュメント

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

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

重要

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

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

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

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

特権を取り消すには、リソース ドキュメントパターンがその特権のresourceフィールドと完全に一致する必要があります。 actionsフィールドはサブセットまたは完全一致にすることができます。

たとえば、 productsデータベースのロールaccountRoleが、 productsデータベースをリソースとして指定する次の特権を持つとします。

{ "resource" : { "db" : "products", "collection" : "" }, "actions" : [ "find", "update" ]}

productsデータベース内の1 つのコレクションのみからfindおよび/またはupdateを取り消すことはできません。 次の操作では、 ロールは変更されません。

use productsdb.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find", "update" ] } ]) db.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "gadgets" }, actions : [ "find" ] } ])

ロール から "find"アクションおよび/または"update"accountRole アクションを取り消すには、リソース ドキュメントと完全に一致する必要があります。たとえば、次の操作は、既存の特権から"find"アクションのみを取り消します。

use productsdb.revokePrivilegesFromRole( "accountRole", [ { resource : { db : "products", collection : "" }, actions : [ "find" ] } ])

privileges 配列を指定すると、データベース内の複数のコレクションまたはデータベース全体に適用する特権を指定できます。

次の構文は、productsデータベース内の複数のコレクションに対する特権を指定します。

privileges: [ { resource: { db: 'products', collection: 'coll1' }, actions: [ 'bypassDocumentValidation' ] }, { resource: { db: 'products', collection: 'coll2' }, actions: [ 'bypassDocumentValidation' ] }]

次の構文は、productsデータベース内のすべてのコレクションに対する特権を指定します。

privileges: [ { resource: { db: 'products', collection: '' }, actions: [ 'bypassDocumentValidation' ] }]

特権を取り消すには、特権ターゲットのデータベースに対してrevokeRoleアクションが必要です。 特権が複数のデータベースまたはclusterリソースを対象としている場合は、 adminデータベースに対してrevokeRoleアクションが必要です。

次の操作により、 associatesロールから複数の特権が削除されます。

db.revokePrivilegesFromRole( "associate", [ { resource: { db: "products", collection: "" }, actions: [ "createCollection", "createIndex", "find" ] }, { resource: { db: "products", collection: "orders" }, actions: [ "insert" ] } ], { w: "majority" })