revogar privilégios da função
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 auxiliardb.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
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
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" } } )