对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db.revokeRolesFromRole()(mongosh方法)

db.revokeRolesFromRole(rolename, roles, writeConcern)

从角色中删除指定的继承角色。

重要

mongosh 方法

本页介绍了 mongosh 方法。这不是数据库命令或特定语言驱动程序(例如 Node.js)的文档。

有关数据库命令,请参阅 revokeRolesFromRole 命令。

对于MongoDB API驱动程序,请参阅特定语言的MongoDB驾驶员文档。

db.revokeRolesFromRole() 方法使用以下语法:

db.revokeRolesFromRole( "<rolename>", [ <roles> ], { <writeConcern> } )

db.revokeRolesFromRole() 方法接受以下参数:

Parameter
类型
说明

rolename

字符串

要撤销的角色的名称。

roles

阵列

要删除的继承角色。

writeConcern

文档

可选。操作的写关注级别。请参阅写关注规范。

在 roles 字段中,可以指定内置角色和用户自定义角色。

要指定运行 db.revokeRolesFromRole() 的同一数据库中存在的角色,可以使用角色名称指定该角色:

"readWrite"

或者,可以使用文档指定角色,如下所示:

{ role: "<role>", db: "<database>" }

要指定存在于其他数据库中的角色,请使用文档指定该角色。

此方法可用于以下环境中托管的部署:

重要

MongoDB Atlas集群不支持此命令。有关Atlas支持所有命令的信息,请参阅不支持的命令。

如果在副本集上运行,则默认使用 "majority"写关注(write concern)执行 db.revokeRolesFromRole()。

必须对数据库执行 revokeRole 动作才能撤消该数据库上的角色。

emea数据库中的purchaseAgents角色继承了其他几个角色的权限,如roles数组中所列:

{
"_id" : "emea.purchaseAgents",
"role" : "purchaseAgents",
"db" : "emea",
"privileges" : [],
"roles" : [
{
"role" : "readOrdersCollection",
"db" : "emea"
},
{
"role" : "readAccountsCollection",
"db" : "emea"
},
{
"role" : "writeOrdersCollection",
"db" : "emea"
}
]
}

emea数据库上的以下 db.revokeRolesFromRole() 操作会从 purchaseAgents角色中删除两个角色:

use emea
db.revokeRolesFromRole( "purchaseAgents",
[
"writeOrdersCollection",
"readOrdersCollection"
],
{ w: "majority" , wtimeout: 5000 }
)

purchaseAgents角色现在只包含一个角色:

{
"_id" : "emea.purchaseAgents",
"role" : "purchaseAgents",
"db" : "emea",
"privileges" : [],
"roles" : [
{
"role" : "readAccountsCollection",
"db" : "emea"
}
]
}