Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.grantPrivilegesToRole() (método mongosh)

db.grantPrivilegesToRole(rolename, privileges, writeConcern)

Otorga privilegios adicionales a un rol definido por el usuario.

Importante

Método mongosh

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

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

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

The db.grantPrivilegesToRole() method uses the following syntax:

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

The db.grantPrivilegesToRole() method takes the following arguments:

Parameter
Tipo
Descripción

rolename

string

El nombre del rol al que se le otorgarán privilegios.

privileges

arreglo

Los privilegios para añadir al rol. Para conocer el formato de un privilegio, consulta privileges.

writeConcern

Documento

The db.grantPrivilegesToRole() method can grant one or more privileges. Each <privilege> has the following syntax:

{ resource: { <resource> }, actions: [ "<action>", ... ] }

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.

If run on a replica set, db.grantPrivilegesToRole() is executed using "majority" write concern by default.

Excepto para los roles creados en la base de datos admin, un rol solo puede incluir privilegios que se apliquen a su base de datos.

Un rol creado en la base de datos admin puede incluir privilegios que se aplican a la base de datos admin, a otras bases de datos o al recurso clúster.

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 grantRole acción en la base de datos de destino de privilegios para conceder el privilegio. Para conceder un privilegio en varias bases de datos o en el recurso cluster, debes tener la acción grantRole en la base de datos admin.

The following db.grantPrivilegesToRole() operation grants two additional privileges to the role inventoryCntrl01, which exists on the products database. The operation is run on that database:

use products
db.grantPrivilegesToRole(
"inventoryCntrl01",
[
{
resource: { db: "products", collection: "" },
actions: [ "insert" ]
},
{
resource: { db: "products", collection: "system.js" },
actions: [ "find" ]
}
],
{ w: "majority" }
)

El primer privilegio permite a los usuarios con este rol realizar la insert acción en todas las colecciones de la base de datos products, excepto en las colecciones del sistema. Para acceder a una colección del sistema, un privilegio debe especificar explícitamente la colección del sistema en el documento del recurso, como en el segundo privilegio.

El segundo privilegio permite a los usuarios con este rol realizar la find acción en la colección del sistema de la base de datos product llamada system.js.