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

db.revokePrivilegesFromRole()

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 products
db.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 products
db.revokePrivilegesFromRole(
"accountRole",
[
{
resource : {
db : "products",
collection : ""
},
actions : [
"find"
]
}
]
)

特権を取り消すには、特権ターゲットのデータベースに対して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" }
)