Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

db.revokePrivilegesFromRole()

Nesta página

  • Definição
  • Comportamento
  • Acesso obrigatório
  • Exemplo
db.revokePrivilegesFromRole(rolename, privileges, writeConcern)

Remove os privilégios especificados do role definido pelo usuário no 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 para comandos de banco de dados ou drivers específicos de idioma, 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 MongoDB específica do idioma.

Para a documentação de shell legada do mongo, consulte a documentação para a versão correspondente do MongoDB Server:

mongo shell v4.4

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
variedade
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.

Se executar em um conjunto de réplicas, o db.revokePrivilegesFromRole() será executado usando o write concern de "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 cluster recurso , você deverá ter a ação revokeRole no admin banco de dados .

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" }
)
← db.grantPrivilegesToRole()