Controle de acesso baseado em funções em sistemas autogerenciados
Nesta página
O MongoDB utiliza o RBAC (Role-Based Access Control, controle de acesso baseado em função) para controlar o acesso a um sistema MongoDB. Um usuário recebe uma ou maisfunções que determinam o acesso do usuário aos recursos e operações do banco de dados. Fora das atribuições de função, o usuário não tem acesso ao sistema.
Habilitar controle de acesso
O MongoDB não habilita o controle de acesso por padrão. Você pode habilitar a autorização utilizando a configuração --auth
ou security.authorization
. Habilitar a autenticação interna também habilita a autorização do cliente .
Depois que o controle de acesso estiver habilitado, os usuários devem autenticar eles mesmos.
Funções
Uma função concede privilégios para executar as ações especificadas em um recurso. Cada privilégio é especificado explicitamente na função ou herdado de outra função ou ambos.
Acesso
As roles nunca limitam privilégios. Se um usuário tiver duas roles, a role com maior acesso terá precedência.
Por exemplo, se você conceder a role read
em um banco de dados a um usuário que já tenha a role readWriteAnyDatabase
, a concessão de read
não revogará o acesso de escritura no banco de dados.
Para revogar uma role de um usuário, utilize o comando revokeRolesFromUser
.
Restrições de autenticação
As funções podem impor restrições de autenticação aos usuários, exigindo que se conectem a partir de intervalos de endereços IP de origem e destino especificados.
Para obter mais informações, consulte Restrições de autenticação.
Privilégios
Um privilégio consiste em um recurso específico e as ações permitidas no recurso.
Um recurso é um banco de dados de dados, collection, conjunto de collections ou cluster. Se o recurso for o cluster, as ações afiliadas afetarão o estado do sistema em vez de um banco de banco de dados ou collection específica. Para obter informações sobre os documentos de recursos, consulte Documento de recursos sobre implantações autogerenciadas.
Uma ação especifica a operação permitida no recurso. Para ações disponíveis, consulte Ações de privilégio para implementações autogerenciadas.
Privilégios herdados
Uma função pode incluir uma ou mais funções existentes em sua definição, caso em que a função herda todos os privilégios das funções incluídas.
Um papel pode herdar privilégios de outros papéis em seu banco de dados. Um papel criado no banco de dados do admin
pode herdar privilégios de papéis em qualquer banco de dados.
Como ver os privilégios da função
Você pode visualizar os privilégios de uma função emitindo o comando rolesInfo
com os campos showPrivileges
e showBuiltinRoles
configurados como true
.
Usuários e roles
Você pode atribuir funções aos usuários durante a criação do usuário. Você também pode atualizar os usuários existentes para conceder ou revogar funções. Para obter uma lista completa dos métodos de gerenciamento de usuários, consulte Gerenciamento de usuários
Um usuário atribuído a uma função recebe todos os privilégios dessa função. Um usuário pode ter diversas funções. Ao atribuir as funções de usuário em vários bancos de dados, um usuário criado em um banco de dados pode ter permissões para agir em outros bancos de dados.
Observação
O primeiro usuário criado no banco de banco de dados deve ser um administrador de usuários que tenha os privilégios para gerenciar outros usuários. Consulte Habilitar controle de acesso em sistemas autogerenciados.
Funções integradas e funções definidas pelo usuário
O MongoDB oferece roles integradas que fornecem um conjunto de privilégios normalmente necessários em um sistema de banco de dados.
Se essas roles incorporadas não puderem fornecer o conjunto desejado de privilégios, o MongoDB fornecerá métodos para criar e modificar roles definidas pelo usuário.
Autorização LDAP
Observação
A partir do MongoDB 8.0, A autenticação e autorização LDAP estão obsoletas. O LDAP está disponível e continuará a operar sem alterações durante a vida útil do MongoDB 8. O LDAP será removido em uma futura versão principal.
Para obter detalhes, consulte Descontinuação do LDAP.
O MongoDB Enterprise é compatível com a consulta a um servidor LDAP para os grupos LDAP dos quais o usuário autenticado é membro. O MongoDB mapeia os nomes diferenciados (DN) de cada grupo retornado para funções no banco de dados admin
. O MongoDB autoriza o usuário baseado nas funções mapeadas e seus respectivos privilégios. Consulte Autorização LDAP para obter mais informações.