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

conceder privilégios à função

grantPrivilegesToRole

Assigns additional privileges to a user-defined role defined on the database on which the command is run.

Dica

Em mongosh, esse comando também pode ser executado por meio do método auxiliar db.grantPrivilegesToRole().

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.

O comando grantPrivilegesToRole utiliza a seguinte sintaxe:

db.runCommand(
{
grantPrivilegesToRole: "<role>",
privileges: [
{
resource: { <resource> }, actions: [ "<action>", ... ]
},
...
],
writeConcern: { <write concern> },
comment: <any>
}
)

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, M2, M5 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

O comando tem os seguintes campos:

Campo
Tipo
Descrição

grantPrivilegesToRole

string

The name of the user-defined role to grant privileges to.

privileges

array

Os privilégios para adicionar à role. Para saber o formato de um privilégio, consulte privileges.

writeConcern

documento

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

comment

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

A role's privileges apply to the database where the role is created. A role created on the admin database can include privileges that apply to all databases or to the cluster.

Você deve ter a ação grantRole no banco de dados que é alvo do privilégio para conceder o privilégio. Para conceder um privilégio em vários bancos de dados ou no recurso cluster, você deve ter a ação grantRole no banco de dados admin.

The following grantPrivilegesToRole command grants two additional privileges to the service role that exists in the products database:

use products
db.runCommand(
{
grantPrivilegesToRole: "service",
privileges: [
{
resource: { db: "products", collection: "" }, actions: [ "find" ]
},
{
resource: { db: "products", collection: "system.js" }, actions: [ "find" ]
}
],
writeConcern: { w: "majority" , wtimeout: 5000 }
}
)

The first privilege in the privileges array allows the user to search on all non-system collections in the products database. The privilege does not allow queries on system collections, such as the system.js collection. To grant access to these system collections, explicitly provision access in the privileges array. See Documento de recurso sobre sistemas autogerenciados.

The second privilege explicitly allows the find action on system.js collections on all databases.