Definição
grantRolesToUserConcede funções adicionais a um usuário.
Dica
mongoshEm, esse comando também pode ser executado por meio do métododb.grantRolesToUser()assistente.Os métodos auxiliares são convenientes para os
mongoshusuários, 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.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
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
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.
Sintaxe
O comando utiliza a seguinte grantRolesToUser sintaxe:
db.runCommand( { grantRolesToUser: "<user>", roles: [ <roles> ], writeConcern: { <write concern> }, comment: <any> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| string | O nome do usuário para fornecer funções adicionais. |
| array | Uma série de funções adicionais a serem concedidas ao usuário. |
| 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). |
No campo roles, é possível especificar roles incorporadas e roles definidas pelo usuário.
Para especificar uma role que existe no mesmo banco de dados onde o é executado, você pode especificar a role com o nome grantRolesToUser dela:
"readWrite"
Ou você pode especificar a role com um documento, como feito a seguir:
{ role: "<role>", db: "<database>" }
Para especificar uma role existente em outro banco de dados, especifique-a com um documento.
Acesso necessário
Você deve ter grantRole como uma ação em um banco de dados para conceder uma função neste banco de dados.
Exemplo
Dado um usuário accountUser01 no banco de dados do products com os seguintes roles:
"roles" : [ { "role" : "assetsReader", "db" : "assets" } ]
A operação a seguir fornece grantRolesToUser accountUser01 a função read no stock banco de dados e a função readWrite no products banco de dados.
use products db.runCommand( { grantRolesToUser: "accountUser01", roles: [ { role: "read", db: "stock"}, "readWrite" ], writeConcern: { w: "majority" , wtimeout: 2000 } } )
O usuário accountUser01 no banco de dados de products agora tem os seguintes roles:
"roles" : [ { "role" : "assetsReader", "db" : "assets" }, { "role" : "read", "db" : "stock" }, { "role" : "readWrite", "db" : "products" } ]