On this page本页内容
revokePrivilegesFromRole Removes the specified privileges from the user-defined role on the database where the command is run. 从运行命令的数据库上的用户定义角色中删除指定的权限。The revokePrivilegesFromRole command has the following syntax:revokePrivilegesFromRole命令具有以下语法:
{
revokePrivilegesFromRole: "<role>",
privileges:
[
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
writeConcern: <write concern document>,
comment: <any>
}
The revokePrivilegesFromRole command has the following fields:revokePrivilegesFromRole命令具有以下字段:
revokePrivilegesFromRole | string | |
privileges | array | privileges for more information on the format of the privileges.privileges。 |
writeConcern | document |
|
comment | any |
|
To revoke a privilege, the resource document pattern must match exactly the 要撤销权限,资源文档模式必须与该权限的资源字段完全匹配。resource field of that privilege. The actions field can be a subset or match exactly.actions字段可以是子集或完全匹配。
For example, consider the role 例如,考虑accountRole in the products database with the following privilege that specifies the products database as the resource:products数据库中具有以下权限的角色accountRole,该权限将产品数据库指定为资源:
{
"resource" : {
"db" : "products",
"collection" : ""
},
"actions" : [
"find",
"update"
]
}
You cannot revoke 您不能仅从find and/or update from just one collection in the products database. products数据库中的一个集合撤消find和/或update。The following operations result in no change to the role:以下操作不会更改角色:
use products
db.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
resource : {
db : "products",
collection : "gadgets"
},
actions : [
"find",
"update"
]
}
]
}
)
db.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
resource : {
db : "products",
collection : "gadgets"
},
actions : [
"find"
]
}
]
}
)
To revoke the 要撤消角色"find" and/or the "update" action from the role accountRole, you must match the resource document exactly. accountRole的"find"和/或"update"操作,必须与资源文档完全匹配。For example, the following operation revokes just the 例如,以下操作仅从现有权限中撤销"find" action from the existing privilege."find"操作。
use products
db.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
resource : {
db : "products",
collection : ""
},
actions : [
"find"
]
}
]
}
)
You must have the 您必须对数据库具有权限目标的revokeRole action on the database a privilege targets in order to revoke that privilege. revokeRole操作,才能撤消该权限。If the privilege targets multiple databases or the 如果权限针对多个数据库或cluster resource, you must have the revokeRole action on the admin database.cluster资源,则必须对admin数据库执行revokeRole操作。
The following operation removes multiple privileges from the 以下操作将从associates role in the products database:products数据库中的associates角色中删除多个权限:
use products
db.runCommand(
{
revokePrivilegesFromRole: "associate",
privileges:
[
{
resource: { db: "products", collection: "" },
actions: [ "createCollection", "createIndex", "find" ]
},
{
resource: { db: "products", collection: "orders" },
actions: [ "insert" ]
}
],
writeConcern: { w: "majority" }
}
)