Definición
grantPrivilegesToRoleAsigna adicional privilegios a un rol definido por el usuario en la base de datos en la que se ejecuta el comando.
Tip
En
mongosh, este comando también se puede ejecutar a través del métododb.grantPrivilegesToRole()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.El comando utiliza la siguiente
grantPrivilegesToRolesintaxis:
db.runCommand( { grantPrivilegesToRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: { <write concern> }, comment: <any> } )
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.
Campos de comandos
El comando tiene los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| string | El nombre del rol definido por el usuario al que se le otorgarán privilegios. |
| arreglo | Los privilegios que se agregan al rol. Para conocer el formato de un privilegio, |
| 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
Los privilegios de un rol se aplican a la base de datos donde se creó. Un rol creado en la admin base de datos puede incluir privilegios que se aplican a todas las bases de datos o al clúster.
Acceso requerido
Debe tener la grantRole acción en la base de datos a la que se dirige un privilegio para otorgar el privilegio. Para otorgar un privilegio en varias bases de datos o en el cluster recurso, debe tener la acción en grantRole la admin base de datos.
Ejemplo
El siguiente comando otorga dos privilegios adicionales grantPrivilegesToRole al service rol que existe en la products base de datos:
use products db.runCommand( { grantPrivilegesToRole: "service", privileges: [ { resource: { db: "products", collection: "" }, actions: [ "find" ] }, { resource: { db: "products", collection: "system.js" }, actions: [ "find" ] } ], writeConcern: { w: "majority" , wtimeout: 5000 } } )
El primer privilegio de la privileges matriz permite al usuario buscar en todas las colecciones que no son del sistema en la products base de datos. Este privilegio no permite realizar consultas en colecciones del sistema, como la system.js colección. Para conceder acceso a estas colecciones del sistema, aprovéchelo explícitamente en la matriz. Consulte el privileges documento de recursos sobre implementaciones autogestionadas.
El segundo privilegio permite explícitamente la find acción en colecciones en todas las bases de system.js datos.