Definição
grantPrivilegesToRoleAtribui privilégio adicionais a um role definido pelo usuário no reconhecimento de data center no qual o comando é executado.
Dica
In
mongosh, this command can also be run through thedb.grantPrivilegesToRole()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.The
grantPrivilegesToRolecommand uses the following syntax:
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: The fully managed service for MongoDB deployments in the cloud
Importante
This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.
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 |
|---|---|---|
| string | O nome do role definido pelo usuário ao qual conceder privilégios. |
| array | Os privilégios para adicionar à role. Para saber o formato de um privilégio, consulte |
| documento | Opcional. O nÃvel da write concern para a operação. Consulte Especificação de write concern. |
| 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
The following grantPrivilegesToRole command grants two additional privileges to the service role that exists in the products database:
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.