Conceder funções à funções
Definição
grantRolesToRole
Concede roles para umrole definido pelo usuário .
Dica
Em
mongosh
, esse comando também pode ser executado por meio do método auxiliardb.grantRolesToRole()
.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
grantRolesToRole
afeta roles no banco de dados onde o comando é executado.grantRolesToRole
tem a seguinte sintaxe:{ grantRolesToRole: "<role>", roles: [ { role: "<role>", db: "<database>" }, ... ], writeConcern: { <write concern> }, comment: <any> } O comando
grantRolesToRole
tem os seguintes campos:CampoTipoDescriçãograntRolesToRole
stringO nome de um role para adicionar roles secundários.roles
arrayUma série de funções das quais herdar.writeConcern
documentoOpcional. O nível da write concern para a operação. Consulte Especificação de write concern.
comment
anyOpcional. 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:
mensagens de log do mongod, no campo
attr.command.cursor.comment
.Saída do perfil do banco de dados, no campo
command.comment
.Saída de
currentOp
, no campocommand.comment
.
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 função que existe no mesmo banco de dados onde o
grantRolesToRole
é executado, você pode especificar a função com o próprio nome 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.
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
Comportamento
Um papel pode herdar privilégios de outros papéis em seu banco de dados. Um papel criado no banco de dados do admin
pode herdar privilégios de papéis em qualquer banco de dados.
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
O seguinte comando grantRolesToRole
atualiza a role productsReaderWriter
no banco de dados products
para herdar os privilégios da role productsReader
no banco de dados products
:
use products db.runCommand( { grantRolesToRole: "productsReaderWriter", roles: [ "productsReader" ], writeConcern: { w: "majority" , wtimeout: 5000 } } )