conceder privilégios à função
Definição
grantPrivilegesToRole
Atribuiprivilégios adicionais a um role definido pelo usuário definido no banco de banco de dados no qual o comando é executado.
Dica
Em
mongosh
, esse comando também pode ser executado por meio do método auxiliardb.grantPrivilegesToRole()
.Os métodos auxiliares são práticos 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 praticidade 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> } )
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em clusters M0, M2 e M5 . Para obter mais informações, 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
Campos de comando
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 | 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. |
comment | any | 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). |
Comportamento
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.
Acesso necessário
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
.
Exemplo
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 collections que não sejam do sistema no banco de banco de dados products
. O privilégio não permite queries em collections do sistema, como a collection system.js
. Para conceder acesso a essas collections de sistema, provisione explicitamente o acesso na array privileges
. Consulte o Documento de recursos sobre implementações autogerenciadas.
O segundo privilégio permite explicitamente a ação find
em collection system.js
em todos os reconhecimento de data center.