Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

db.revokePrivilegesFromRole()

Nesta página

  • Definição
  • Compatibilidade
  • Comportamento
  • Acesso necessário
  • Exemplo
db.revokePrivilegesFromRole(rolename, privileges, writeConcern)

Remove os privilégios especificados do roledefinido pelo usuário no banco de banco de dados onde o método é executado.

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.

Para o comando do banco de dados, consulte o comando revokePrivilegesFromRole.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

O método db.revokePrivilegesFromRole() tem a seguinte sintaxe:

db.revokePrivilegesFromRole(
"<rolename>",
[
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
{ <writeConcern> }
)

O método db.revokePrivilegesFromRole() utiliza os seguintes argumentos:

Parâmetro
Tipo
Descrição
rolename
string
O nome da role definida pelo usuário a partir da qual revogar privilégios.
privileges
array
Uma série de privilégios para remover da função. Consulte privileges para mais informações sobre o formato dos privilégios.
writeConcern
documento

Opcional. O nível da write concern para a operação. Consulte Especificação de write concern.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

Importante

Este comando não é suportado em clusters MongoDB Atlas . Para obter informações sobre o suporte do Atlas para todos os comandos, 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

Se executado em um conjunto de réplicas, db.revokePrivilegesFromRole() é executado usando a preocupação de gravação "majority" por padrão.

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, dado o role accountRole no banco de dados products com o seguinte privilégio que especifica o banco de dados 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.revokePrivilegesFromRole(
"accountRole",
[
{
resource : {
db : "products",
collection : "gadgets"
},
actions : [
"find",
"update"
]
}
]
)
db.revokePrivilegesFromRole(
"accountRole",
[
{
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.revokePrivilegesFromRole(
"accountRole",
[
{
resource : {
db : "products",
collection : ""
},
actions : [
"find"
]
}
]
)

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 .

A seguinte operação remove vários privilégios do role associates :

db.revokePrivilegesFromRole(
"associate",
[
{
resource: { db: "products", collection: "" },
actions: [ "createCollection", "createIndex", "find" ]
},
{
resource: { db: "products", collection: "orders" },
actions: [ "insert" ]
}
],
{ w: "majority" }
)

Voltar

db.grantPrivilegesToRole