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

Esta página documenta um método.mongosh Esta não é a documentação para comandos de banco de dados ou drivers específicos de idioma, como 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.

O método utiliza a seguinte db.grantPrivilegesToRole() sintaxe:

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

O método utiliza os seguintes db.grantPrivilegesToRole() argumentos:

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.

O método pode conceder um ou mais privilégios.db.grantPrivilegesToRole() Cada <privilege> tem a seguinte sintaxe:

{ 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

Se executar em um conjunto de réplicas, db.grantPrivilegesToRole() o será executado usando "majority" o preocupação de gravação de por padrão.

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.

A seguinte operação do concede dois privilégios adicionais para db.grantPrivilegesToRole() a inventoryCntrl01 role, que existe no products banco de dados. A operação é executada neste banco de dados:

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.