ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Menu Docs

db.revokePrivilegesFromRole()

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 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" }
)