Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

conceder privilégios à função

Nesta página

  • Definição
  • Campos de comando
  • Comportamento
  • Acesso obrigatório
  • Exemplo
grantPrivilegesToRole

Atribui privilégio adicionais a um role definido pelo usuário no reconhecimento de data center no qual o comando é executado.

Dica

Em mongosh, este comando também pode ser executado por meio do método auxiliar db.grantPrivilegesToRole() .

Os métodos auxiliares são convenientes para os usuários mongosh , mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a conveniência não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

O comando grantPrivilegesToRole utiliza a seguinte sintaxe:

db.runCommand(
{
grantPrivilegesToRole: "<role>",
privileges: [
{
resource: { <resource> }, actions: [ "<action>", ... ]
},
...
],
writeConcern: { <write concern> },
comment: <any>
}
)

O comando tem os seguintes campos:

Campo
Tipo
Descrição
grantPrivilegesToRole
string
O nome do role definido pelo usuário ao qual conceder privilégios.
privileges
variedade
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.

comment
qualquer

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

Os privilégios de um role se aplicam ao banco de dados onde o role é criado. Uma role criada no reconhecimento de data center admin pode incluir privilégio que se aplicam a todos os reconhecimento de data center ou ao 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.

O comando grantPrivilegesToRole a seguir concede dois privilégios adicionais para a role service que existe no banco de dados products :

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 }
}
)

O primeiro privilégio na array privileges permite ao usuário pesquisar em todas as collection que não sejam do sistema no reconhecimento de data center products . O privilégio não permite query em collection do sistema, como a collection system.js . Para conceder acesso a essas collection do sistema, provisione explicitamente o acesso na array privileges . Consulte o documento de recurso.

O segundo privilégio permite explicitamente a ação find em collection system.js em todos os reconhecimento de data center.

← Remover todas as funções do banco de dados