Docs Menu
Docs Home
/ /

db.revokePrivilegesFromRole() (método mongosh)

db.revokePrivilegesFromRole(rolename, privileges, writeConcern)

Elimina los privilegios especificados de Rol definido por el usuario en la base de datos donde se ejecuta el método.

Importante

Método mongosh

Esta página documenta una mongosh Método. Esta no es la documentación para comandos de base de datos ni para controladores específicos del lenguaje, como Node.js.

Para el comando de base de datos, consulta el comando revokePrivilegesFromRole.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

El método db.revokePrivilegesFromRole() tiene la siguiente sintaxis:

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

El método toma los siguientes db.revokePrivilegesFromRole() argumentos:

Parameter
Tipo
Descripción

rolename

string

El nombre del rol definido por el usuario desde el cual se revocarán privilegios.

privileges

arreglo

Una matriz de privilegios que se eliminarán del rol. Consulte para obtener más información sobre el formato de los privileges privilegios.

writeConcern

Documento

Este método está disponible en implementaciones alojadas en los siguientes entornos:

Importante

Este comando no es compatible con los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Si se ejecuta en un set de réplicas, db.revokePrivilegesFromRole() se ejecuta utilizando el nivel de confirmación de escritura "majority" por defecto.

Para revocar un privilegio, el patrón del documento de recurso debe coincidir exactamente con el resource campo de dicho privilegio. El actions campo puede ser un subconjunto o coincidir exactamente.

Por ejemplo, dado el rol accountRole en la base de datos products con el siguiente privilegio que especifica la base de datos products como recurso:

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

No se puede revocar ni find update de una sola colección en la products base de datos. Las siguientes operaciones no modifican el rol:

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

Para revocar la acción "find" o "update" del rol accountRole, debe coincidir exactamente con el documento de recurso. Por ejemplo, la siguiente operación revoca únicamente la acción "find" del privilegio existente.

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

Cuando especifica la privileges matriz, puede especificar privilegios para aplicar a múltiples colecciones en una base de datos o a una base de datos completa.

La siguiente sintaxis especifica privilegios en múltiples colecciones en la base de datos products.

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

La siguiente sintaxis especifica privilegios en todas las colecciones en la base de datos products.

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

Debe tener la revokeRole acción en la base de datos a la que se dirige un privilegio para revocarlo. Si el privilegio se dirige a varias bases de datos o al cluster recurso, debe tener la acción en revokeRole la admin base de datos.

La siguiente operación elimina múltiples privilegios del rol associates:

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

Volver

db.conceder privilegios al rol

En esta página