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

Roles integradas em implantações autogerenciadas

Nesta página

  • Roles construídas no MongoDB Atlas
  • Roles integradas de implantação auto-hospedada
  • Roles do utilizador de banco de dados
  • Roles de administração do banco de dados
  • Roles de administração de cluster
  • Roles de backup e restauração
  • Roles de todos os bancos de dados
  • Roles de superusuário
  • Role interna

O MongoDB concede acesso a dados e comandos por meiode autorização baseada em role e fornece roles internas que fornecem os diferentes níveis de acesso comumente necessários em um sistema de banco de dados de dados. Você também pode criar roles definidas pelo usuário.

Uma role concede privilégios para executar conjuntos de ações em recursos definidos. Uma determinada role se aplica ao banco de dados no qual está definida e pode conceder acesso até um nível de granularidade da collection.

As collections do sistema incluem aquelas em:

  • <database>.system.* namespace

  • local.replset.* namespace do conjunto de réplicas

Para obter detalhes, consulte Coleções do sistema.

Collections não relacionadas ao sistema são aquelas que não estão nos namespaces na lista anterior.

Cada uma das roles construídas no MongoDB define o acesso no nível do banco de dados de dados para todas as collections nãorelacionadas ao sistema no banco de banco de dados da role e no nível de collection para todas as collections do sistema.

Esta seção descreve os privilégios para cada função incorporada. Você também pode visualizar os privilégios de uma função incorporada a qualquer momento emitindo o comando rolesInfo com os campos showPrivileges e showBuiltinRoles definidos como true.

As implantações do MongoDB Atlas têm roles integradas diferentes das implantações auto-hospedadas. Para saber mais, consulte os seguintes recursos:

  • Roles construídas no MongoDB Atlas

  • Roles integradas de implantação auto-hospedada

Para as funções de usuário de banco de dados de dados integradas para implantações hospedadas no MongoDB Atlas, consulte Funções e privilégios integrados do Altas.

Você pode criar utilizadores de banco de dados de dados e atribuir roles construídas na interface de usuário do MongoDB Atlas . Para saber mais, consulte Adicionar usuários do banco de dados.

O MongoDB fornece as seguintes roles integradas para implantações auto-hospedadas:

Cada banco de dados inclui as seguintes roles de cliente:

read

Fornece a capacidade de ler dados em todas as collections que não são do sistema e na collection system.js.

Observação

A função não oferece privilégios para acessar diretamente a coleção system.namespaces diretamente.

A role fornece acesso de leitura ao conceder as seguintes ações:

Se o usuário não tiver a ação de privilégio listDatabases, poderá executar o comando listDatabases para retornar uma lista de bancos de dados nos quais o usuário tem privilégios (incluindo bancos de dados nos quais o usuário tem privilégios em collections específicas) se o comando for executado com a opção authorizedDatabases não especificada ou definida como true.

readWrite

Fornece todos os privilégios da função read além da capacidade de modificar dados em todas as coleções que não sejam do sistema e na coleção system.js.

A role fornece as seguintes ações nessas collections:

Cada banco de dados inclui as seguintes roles de administração do banco de dados:

dbAdmin

Fornece a capacidade de executar tarefas administrativas, como tarefas relacionadas a esquema, indexação e coleta de estatísticas. Esta role não concede privilégios para gerenciamento de usuários e roles.

Especificamente, a role fornece os seguintes privilégios:

Resource
Ações permitidas
Todas as collections que não são do sistema (ou seja, recurso de banco de dados)
dbOwner

O proprietário do banco de dados pode executar qualquer ação administrativa no banco de dados. Esta função combina os privilégios concedidos pelas funções readWrite, dbAdmin e userAdmin.

userAdmin

Fornece a capacidade de criar e modificar funções e usuários no banco de dados atual. Como a função userAdmin permite que os usuários concedam qualquer privilégio a qualquer usuário, inclusive a si mesmos, a função também fornece indiretamente acesso de superusuário ao banco de dados ou, se o escopo for o banco de dados admin, ao cluster.

A função userAdmin oferece explicitamente as seguintes ações:

Aviso

É importante entender as implicações de segurança da concessão da função userAdmin: um usuário com essa função para um banco de dados pode atribuir a si mesmo qualquer privilégio nesse banco de dados. Conceder a função userAdmin no banco de dados admin tem outras implicações de segurança, pois isso fornece indiretamente acesso de superusuário a um cluster. Com o escopo admin, um usuário com a função userAdmin pode conceder funções ou privilégios em todo o cluster, inclusive userAdminAnyDatabase.

O banco de dados admin inclui as seguintes roles para administrar todo o sistema, em vez de apenas um único banco de dados. Essas roles incluem, mas não estão limitadas a, conjunto de réplicas e roles administrativas de cluster fragmentado.

clusterAdmin

Fornece o melhor acesso ao gerenciamento de clusters. Esta função combina os privilégios concedidos pelas funções clusterManager, clusterMonitor e hostManager. Além disso, a função fornece a ação dropDatabase.

clusterManager

Fornece ações de gerenciamento e monitoramento no cluster. Um usuário com esta role pode acessar os bancos de dados config e local, que são utilizados na fragmentação e replicação, respectivamente.

No banco de dados config, permite as seguintes ações:

No banco de dados local, permite as seguintes ações:

Resource
Ações
Todas as collections que não são do sistema no banco de dados local
system.replset collection
clusterMonitor

Fornece acesso somente leitura a ferramentas de monitoramento, como o agente de monitoramento do MongoDB Cloud Manager e do Ops Manager.

Permite as seguintes ações no cluster como um todo:

Permite as seguintes ações em todos os bancos de dados do cluster:

Permite a ação find em todas as collections system.profile no cluster.

No banco de dados config, permite as seguintes ações:

No banco de dados local, permite as seguintes ações:

enableSharding

Fornece a capacidade de habilitar a fragmentação para uma coleção e modificar chaves de fragmento existentes.

Fornece as seguintes ações em todas as coleções que não são do sistema:

hostManager

Oferece a capacidade de monitorar e gerenciar servidores.

No cluster como um todo, fornece as seguintes ações:

Em todos os bancos de dados do cluster, fornece as seguintes ações:

O banco de dados admin inclui as seguintes roles para backup e restauração de dados:

backup

Fornece os privilégios mínimos necessários para fazer backup dos dados. Essa função fornece privilégios suficientes para usar o agente de backup do MongoDB Cloud Manager, o agente de backup do Ops Manager ou usar mongodump para fazer backup de uma instância mongod inteira.

Fornece as ações insert e update na collection settings no banco de dados config.

Em anyResource, fornece o

No cluster como um todo, fornece

Fornece a ação find no seguinte:

Fornece as ações insert e update na collection config.settings.

A função backup fornece privilégios adicionais para fazer backup da coleção system.profile existente durante a execução da criação de perfil do banco de dados.

restore

Fornece convertToCapped em collections não relacionadas ao sistema.

Fornece os privilégios necessários para restaurar dados de backups se eles não incluírem os dados da coleção system.profile e você executar o mongorestore sem a opção --oplogReplay.

Se o backup de dados incluir dados de coleção do system.profile ou se executar com --oplogReplay, você precisará de privilégios adicionais:

system.profile

Se os dados de backup incluírem dados de coleção system.profile e o banco de dados de destino não contiver a coleção system.profile, mongorestore tentará criar a coleção mesmo que o programa não restaure documentos system.profile. Como tal, o usuário requer privilégios adicionais para executar createCollection e convertToCapped ações na coleção system.profile para um banco de dados.

Ambas as funções integradas dbAdmin e dbAdminAnyDatabase fornecem os privilégios adicionais.

--oplogReplay

Para executar com --oplogReplay, crie uma função definida pelo usuário que tenha anyAction em anyResource.

Conceda somente aos usuários que devem executar mongorestore com --oplogReplay.

Fornece a seguinte ação no cluster como um todo:

Fornece as seguintes ações em todas as collections que não são do sistema:

Fornece as seguintes ações na collection system.js :

Fornece a seguinte ação em anyResource:

Fornece as seguintes ações em todas as collections não relacionadas ao sistema no config e nos bancos de dados local:

Fornece as seguintes ações em admin.system.version

Fornece a seguinte ação em admin.system.roles

Fornece as seguintes ações em collections admin.system.users e system.users herdadas:

Embora restore inclua a capacidade de modificar os documentos da coleção admin.system.users usando operações normais de modificação, modifique esses dados somente usando os métodos de gerenciamento de usuários.

As roles a seguir estão disponíveis no banco de dados admin e fornecem privilégios que se aplicam a todos os bancos de dados, exceto local e config:

readAnyDatabase

Fornece os mesmos privilégios somente leitura que read em todos os bancos de dados, exceto local e config. A função também fornece a ação listDatabases no cluster como um todo.

Consulte também as funções clusterManager e clusterMonitor para obter acesso aos bancos de dados config e local.

readWriteAnyDatabase

Fornece os mesmos privilégios que readWrite em todos os bancos de dados, exceto local e config. A função também fornece a ação listDatabases no cluster como um todo.

Consulte também as funções clusterManager e clusterMonitor para obter acesso aos bancos de dados config e local.

userAdminAnyDatabase

Fornece o mesmo acesso às operações de administração do usuário como userAdmin em todos os bancos de dados, exceto local e config.

userAdminAnyDatabase também fornece as seguintes ações de privilégio no cluster:

A role fornece as seguintes ações de privilégio nas collections system.users e system.roles no banco de dados admin e nas collections system.users herdadas de versões do MongoDB anteriores à 2.6:

A função userAdminAnyDatabase não restringe os privilégios que um usuário pode conceder. Como resultado, os usuários userAdminAnyDatabase podem conceder a si mesmos privilégios além dos atuais e até mesmo conceder a si mesmos todos os privilégios, mesmo que a função não autorize explicitamente privilégios além da administração do usuário. Essa função é efetivamente um superusuário do sistema MongoDB.

Consulte também as funções clusterManager e clusterMonitor para obter acesso aos bancos de dados config e local.

dbAdminAnyDatabase

Fornece os mesmos privilégios que dbAdmin em todos os bancos de dados, exceto local e config. A função também fornece a ação listDatabases no cluster como um todo.

Consulte também as funções clusterManager e clusterMonitor para obter acesso aos bancos de dados config e local.

A partir do MongoDB 5.0, dbAdminAnyDatabase inclui a ação de privilégio applyOps.

Várias roles fornecem acesso indireto ou direto ao superusuário em todo o sistema.

As roles a seguir permitem atribuir a qualquer usuário qualquer privilégio em qualquer banco de dados, o que significa que os usuários com uma dessas roles podem atribuir a si mesmos qualquer privilégio em qualquer banco de dados:

A seguinte role fornece privilégios totais em todos os recursos:

root

Fornece acesso às operações e a todos os recursos das seguintes roles combinadas:

Também fornece a ação de privilégio validate em collections system..

__system

O MongoDB atribui essa role a objetos de usuário que representam nós do cluster, como nós do conjunto de réplicas e instâncias mongos. A role garante ao seu titular o direito de tomar qualquer ação contra qualquer objeto do banco de dados.

Não atribua essa role a objetos de usuário que representam aplicativos ou administradores humanos, exceto em circunstâncias excepcionais.

Se você precisar de acesso a todas as ações em todos os recursos, por exemplo, para executar comandos applyOps, não atribua essa role. Em vez disso, crie uma role definida pelo usuário que conceda anyAction em anyResource e garanta que somente os usuários que precisam de acesso a essas operações tenham esse acesso.

Voltar

Controle de acesso baseado em funções