Definición
revokePrivilegesFromRoleElimina 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 se puede ejecutar a través del métododb.revokePrivilegesFromRole()auxiliar.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.
Compatibilidad
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { revokePrivilegesFromRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: <write concern document>, comment: <any> } )
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| string | El rol definido por el usuario al que se le van a revocar privilegios. |
| arreglo | Una matriz de privilegios que se eliminarán del rol. Consulte para obtener más información sobre el formato de los |
| Documento | Opcional. El nivel de confirmación de escritura (write concern) de la operación. Consulte Especificación de nivel de confirmación de escritura (write concern). |
| 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.). |
Comportamiento
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, considere 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.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" 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.runCommand( { revokePrivilegesFromRole: "accountRole", privileges: [ { resource : { db : "products", collection : "" }, actions : [ "find" ] } ] } )
Acceso requerido
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.
Ejemplo
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" } } )