Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

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
字符串
要撤销权限的用户定义角色的名称。
privileges
阵列
要从角色中删除的权限数组。 有关权限格式的更多信息,请参阅privileges
writeConcern
文档

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

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

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

如果在副本集上运行,则默认情况下使用 "majority" 写关注执行 db.revokePrivilegesFromRole()

要撤销权限,资源文档模式必须与该权限的resource字段完全匹配。 actions字段可以是子集,也可以完全匹配。

例如,假设products数据库中的accountRole角色具有将products数据库指定为资源的以下特权:

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

无法仅从products数据库中的一个集合中撤销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"
]
}
]
)

要撤销角色accountRole中的"find"和/或"update"操作,必须与资源文档完全匹配。 例如,以下操作仅撤销现有特权中的"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" }
)

后退

db.grantPrivilegesToRole