Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

db.grantPrivilegesToRole()

Nesta página

  • Definição
  • Compatibilidade
  • Comportamento
  • Acesso necessário
  • Exemplo
db.grantPrivilegesToRole(rolename, privileges, writeConcern)

Concedeprivilégios adicionais para um role definido pelo usuário .

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, 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 db.grantPrivilegesToRole() utiliza a seguinte sintaxe:

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

O método db.grantPrivilegesToRole() utiliza os seguintes 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 db.grantPrivilegesToRole() pode conceder um ou mais privilégios. 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 é suportado em clusters MongoDB Atlas . Para obter informações sobre o suporte do Atlas para 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 executado em um conjunto de réplicas, db.grantPrivilegesToRole() é executado usando a preocupação de gravação "majority" 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.

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 db.grantPrivilegesToRole() concede dois privilégios adicionais para a função inventoryCntrl01, que existe no banco de dados products. 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.

Voltar

db.getRoles