Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

db.revokePrivilegesFromRole() (método mongosh)

db.revokePrivilegesFromRole(rolename, privileges, writeConcern)

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

Importante

Método mongosh

Esta página documenta a Método mongosh. Esta no es la documentación de comandos de base de datos ni de 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 db.revokePrivilegesFromRole() toma los siguientes argumentos:

Parameter
Tipo
Descripción

rolename

string

El nombre del rol definido por el usuario al que se desea revocar privilegios.

privileges

arreglo

Un arreglo de privilegios para remover del rol. Consulta privileges para obtener más información sobre el formato de los 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 documento de recurso patrón debe coincidir exactamente con el campo resource de ese privilegio. El campo actions 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 el recurso:

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

No puedes revocar find y/o update de solo una colección en la base de datos products. Las siguientes operaciones no cambian 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" y/o "update" del rol accountRole, debes coincidir exactamente con el documento del recurso. Por ejemplo, la siguiente operación revoca solo la acción "find" del privilegio existente.

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

Cuando se especifica el arreglo privileges, se pueden especificar privilegios para aplicar a varias colecciones en una base de datos, o a una base de datos completa.

La siguiente sintaxis especifica privilegios en múltiples colecciones de 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 de la base de datos products.

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

Debe tener la revokeRole acción sobre la base de datos de destino de privilegios para revocar dicho privilegio. Si el privilegio apunta a varias bases de datos o al recurso cluster, debes tener la acción revokeRole en la base de datos admin.

La siguiente operación elimina varios 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.grantPrivilegesToRole

En esta página