Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

revokePrivilegesFromRole (comando de base de datos)

revokePrivilegesFromRole

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

Tip

En mongosh, este comando también puede ejecutarse a través del método asistente db.revokePrivilegesFromRole().

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, 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.

El comando tiene la siguiente sintaxis:

db.runCommand(
{
revokePrivilegesFromRole: "<role>",
privileges: [
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
writeConcern: <write concern document>,
comment: <any>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

revokePrivilegesFromRole

string

El rol definido por el usuario del que se revocarán 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

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

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, considera 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.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
resource : {
db : "products",
collection : "gadgets"
},
actions : [
"find",
"update"
]
}
]
}
)
db.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
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.runCommand(
{
revokePrivilegesFromRole: "accountRole",
privileges:
[
{
resource : {
db : "products",
collection : ""
},
actions : [
"find"
]
}
]
}
)

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 en la base de datos products:

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" }
}
)

Volver

invalidateUserCache

En esta página