Definição
- revokePrivilegesFromRole
- Remove os privilégios especificados do roledefinido pelo usuário no banco de banco de dados onde o comando é executado. - Dica- Em - mongosh, esse comando também pode ser executado por meio do método auxiliar- db.revokePrivilegesFromRole().- 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(    {      revokePrivilegesFromRole: "<role>",      privileges: [        { resource: { <resource> }, actions: [ "<action>", ... ] },        ...      ],      writeConcern: <write concern document>,      comment: <any>    } ) 
Campos de comando
O comando utiliza os seguintes campos:
| Campo | Tipo | Descrição | 
|---|---|---|
| 
 | string | O role definido pelo usuário do qual revogar privilégios. | 
| 
 | array | Uma série de privilégios para remover da função. 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
Para revogar um privilégio, o padrão do documento do recurso deve corresponder exatamente ao campo resource desse privilégio. O campo actions pode ser um subconjunto ou corresponder exatamente.
Por exemplo, considere o role accountRole no reconhecimento de data center products com o seguinte privilégio que especifica o reconhecimento de data center products como o recurso:
{   "resource" : {       "db" : "products",       "collection" : ""   },   "actions" : [       "find",       "update"   ] } 
Você não pode revogar find e/ou update de apenas uma collection no banco de dados products . As seguintes operações resultam em nenhuma alteração na role:
use products db.runCommand(     {       revokePrivilegesFromRole: "accountRole",       privileges:         [           {             resource : {                 db : "products",                 collection : "gadgets"             },             actions : [                 "find",                 "update"             ]           }         ]     } ) db.runCommand(     {       revokePrivilegesFromRole: "accountRole",       privileges:         [           {             resource : {                 db : "products",                 collection : "gadgets"             },             actions : [                 "find"             ]           }         ]     } ) 
Para revogar a ação "find" e/ou "update" da função accountRole, você deve corresponder exatamente ao documento de recurso. Por exemplo, a seguinte operação revoga apenas a ação "find" do privilégio existente.
use products db.runCommand(     {       revokePrivilegesFromRole: "accountRole",       privileges:         [           {             resource : {                 db : "products",                 collection : ""             },             actions : [                 "find"             ]           }         ]     } ) 
Acesso necessário
Você deve ter a revokeRole ação no banco de dados que é alvo do privilégio para revogar esse privilégio. Se o privilégio tiver como alvo vários bancos de dados ou o recurso cluster , você deverá ter a ação revokeRole no banco de dados admin .
Exemplo
A seguinte operação remove vários privilégio da role associates no reconhecimento de data center products :
use products db.runCommand(    {      revokePrivilegesFromRole: "associate",      privileges:       [         {           resource: { db: "products", collection: "" },           actions: [ "createCollection", "createIndex", "find" ]         },         {           resource: { db: "products", collection: "orders" },           actions: [ "insert" ]         }       ],      writeConcern: { w: "majority" }    } )