Definição
- revokeRolesFromRole
- Remove os roles herdados especificados de um role. - Dica- No - mongosh, este comando também pode ser executado pelo método assistente do- db.revokeRolesFromRole().- 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.
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
Esse comando não é suportado em clusters M0 e Flex. 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 
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand(    {      revokeRolesFromRole: "<role>",      roles: [        { role: "<role>", db: "<database>" } | "<role>",        ...      ],      writeConcern: { <write concern> },      comment: <any>    } ) 
Campos de comando
O comando tem os seguintes campos:
| Campo | Tipo | Descrição | 
|---|---|---|
| 
 | string | O role do qual remover os roles herdados. | 
| 
 | array | As funções herdadas a serem removidas. | 
| 
 | 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 função que existe no mesmo banco de dados onde o revokeRolesFromRole é 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.
Acesso necessário
É necessário ter a revokeRole ação em um banco de dados para revogar um role nesse banco de dados.
Exemplo
O role purchaseAgents no reconhecimento de data center emea herda privilégio de vários outros roles, conforme listado na array roles :
{    "_id" : "emea.purchaseAgents",    "role" : "purchaseAgents",    "db" : "emea",    "privileges" : [],    "roles" : [       {          "role" : "readOrdersCollection",          "db" : "emea"       },       {          "role" : "readAccountsCollection",          "db" : "emea"       },       {          "role" : "writeOrdersCollection",          "db" : "emea"       }    ] } 
A seguinte operação revokeRolesFromRole no banco de dados emea remove duas roles da role purchaseAgents :
use emea db.runCommand( { revokeRolesFromRole: "purchaseAgents",                  roles: [                           "writeOrdersCollection",                           "readOrdersCollection"                         ],                   writeConcern: { w: "majority" , wtimeout: 5000 }              } ) 
A role purchaseAgents agora contém apenas uma role:
{    "_id" : "emea.purchaseAgents",    "role" : "purchaseAgents",    "db" : "emea",    "privileges" : [],    "roles" : [       {          "role" : "readAccountsCollection",          "db" : "emea"       }    ] }