Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

db.grantPrivilegesToRole() (método mongosh)

db.grantPrivilegesToRole(rolename, privileges, writeConcern)

Concede privilégios adicionais para uma role definida pelo usuário.

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 o comando do banco de dados, consulte o comando grantPrivilegesToRole.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

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

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

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

Parâmetro
Tipo
Descrição

rolename

string

O nome da role à qual conceder privilégios.

privileges

array

Os privilégios para adicionar à role. Para saber o formato de um privilégio, consulte privileges.

writeConcern

documento

Opcional. O nível da write concern para a operação. Consulte Especificação de write concern.

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

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

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

Importante

Este comando não é aceito em clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

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

Exceto para roles criadas no banco de dados do admin, uma role pode incluir somente privilégios que se aplicam ao seu banco de dados

Uma role criada no banco de dados admin pode incluir privilégios que se aplicam ao banco de dados admin, a outros bancos de dados ou ao recurso de cluster.

Ao especificar a array privileges, você pode especificar privilégios a serem aplicados a várias collections em um banco de dados ou a um banco de dados inteiro.

A seguinte sintaxe especifica privilégios em múltiplas coleções no banco de dados do products.

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

A seguinte sintaxe especifica privilégios em todas as collections no banco de dados products.

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

Você deve ter a ação grantRole no banco de dados que é alvo do privilégio para conceder o privilégio. Para conceder um privilégio em vários bancos de dados ou no recurso cluster, você deve ter a ação grantRole no banco de dados 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" }
)

O primeiro privilégio permite aos usuários com esta role executar a ação insert em todas as collections do banco de dados products, exceto as collections do sistema. Para acessar uma collection de sistema, um privilégio deve especificá-la explicitamente no documento de recurso, como no segundo privilégio.

O segundo privilégio permite que os usuários com essa função executem a ação find na collection system.js do sistema do banco de dados product.