Configurar papéis personalizados do banco de dados
Nesta página
Você pode criar funções personalizadas no Atlas quando as funções internas não incluírem o conjunto de privilégios desejado. O Atlas aplica as funções personalizadas de cada usuário do banco de dados junto com:
Qualquer role integrada que você atribuir ao adicionar um usuário do banco de dados ou modificar um usuário do banco de dados.
Quaisquer privilégios específicos que você atribuir ao adicionar um usuário do banco de dados ou modificar um usuário do banco de dados.
Você pode atribuir múltiplos roles personalizados para cada usuário do banco de dados.
Observação
Limitação de cluster gratuito, cluster compartilhado e instância sem servidor
Alterações em funções personalizadas podem levar até 30 segundos para serem implantados em M0
clusters gratuitos, M2/M5
clusters compartilhados e instâncias sem servidor.
As ações de privilégio disponíveis para funções personalizadas e a API de funções personalizadas representam um subconjunto das ações de privilégio disponíveis para funções integradas.
Para revisar a lista de privilégios de papel personalizados, consulte a referência API.
Considerações
Importante
Você deve usar o Atlas CLI, API de Administração do Atlas, IU do Atlas ou uma integração compatível para adicionar, modificar ou excluir funções de banco de dados de dados nos clusters do Atlas . Caso contrário, o Atlas reverte todas as modificações de função.
Você pode atribuir até 20 funções personalizadas para um único usuário do banco de dados e pode criar até 100 funções personalizadas por projeto. Se você exigir mais funções personalizadas por usuário do banco de dados ou por projeto, entre em contato com o suporte do Atlas.
O Atlas audita a criação, a exclusão e as atualizações de funções personalizadas do MongoDB no lista de atividadesdo projeto.
Se você atribuir vários roles a um usuário e essas funções concederem permissões conflitantes para um objeto, o Atlas honrará as permissões mais altas em qualquer role.
Exemplo
Você cria duas funções personalizadas e atribui ambas ao usuário A:
A primeira função personalizada concede apenas privilégios de
read
em seu banco de dados. Ela também concede bypassDocumentValidation em seu banco de dados.A segunda função concede privilégios do
dbAdmin
no seu banco de dados. Ela não concede bypassDocumentValidation, que é uma negação implícita de permissões de bypass.
O usuário A teria todos os privilégios
dbAdmin
para seu banco de dados, já quedbAdmin
é a permissão de acesso ao banco de dados mais alta. O usuário A também teria bypassDocumentValidation, já que bypassDocumentValidation é a permissão de bypass mais alta.
Acesso necessário
Para configurar roles de banco de dados personalizados, você deve ter acesso do Organization Owner
ou Project Owner
ao Atlas.
Adicionar funções personalizadas
Para criar um papel de banco de dados personalizado para seu projeto utilizando o Atlas CLI, execute o seguinte comando:
atlas customDbRoles create <roleName> [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para criar Atlas customDbRoles.
Para criar funções personalizadas através da API de Administração do Atlas, consulte Criar uma.
Siga estas etapas para criar uma função personalizada por meio da interface do usuário do Atlas:
No Atlas, VáGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Insira as informações da função.
Campo | Descrição |
---|---|
Custom Role Name | Nome da sua função personalizada. IMPORTANTE: o nome da função especificado só pode conter letras, números, sublinhados ou hífens. Além disso, você não pode especificar um nome de função que apresente qualquer um dos seguintes aspectos:
|
Action or Role | Privilégios concedidos pela função. Clique no menu suspenso para exibir a lista de ações e funções.de privilégio disponíveis. O Atlas agrupa as ações e funções nas seguintes categorias:
Selecione a ação ou função em uma única categoria. Depois de selecionar uma ação ou função, o Atlas desabilita as outras categorias com a seguinte exceção. Se você selecionar uma ação/função no Global Actions and Roles, ainda poderá selecionar ações/funções Custom Roles. Para atribuir ações e funções de uma categoria diferente, clique em Add an action or role para adicionar uma nova linha. O Atlas desabilita ações não disponíveis para qualquer versão de cluster em seu projeto. As funções personalizadas são definidas no nível do projeto e devem ser compatíveis com todas as versões do MongoDB utilizadas pelos clusters do seu projeto. |
Database | Banco de dados no qual são concedidas as ações e funções selecionadas, se aplicável. Este campo é obrigatório para todas as funções e ações nas categorias Collection Actions e Database Actions and Roles. |
Collection | Coleção dentro do banco de dados especificado no qual as ações e funções são concedidas, se aplicável. Este campo é obrigatório para todas as funções e ações em Collection Actions. |
Para conceder o mesmo conjunto de privilégios em vários bancos de dados e coleções, clique em Add a database or collection.
Visualizar funções personalizadas
Para listar todo s os papéis de banco de dados personalizados para seu projeto utilizando o Atlas CLI, execute o seguinte comando:
atlas customDbRoles list [options]
Para retornar os detalhes de uma única função de banco de dados personalizado no projeto que você especifica utilizando o Atlas CLI, execute o seguinte comando:
atlas customDbRoles describe <roleName> [options]
Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação do Atlas CLI para ver a lista de customDbRoles do Atlas e descrição de customDbRoles do Atlas.
Para visualizar funções personalizadas através da API de Administração do Atlas, consulte Obter todas.
Para visualizar suas funções personalizadas por meio da IU do Atlas:
No Atlas, váGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Modificar funções personalizadas
Para atualizar um role de banco de dados personalizado para seu projeto utilizando a Atlas CLI, execute o seguinte comando:
atlas customDbRoles update <roleName> [options]
Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para atlas customDbRoles update.
Para modificar funções personalizadas através da API de Administração do Atlas, consulte Atualizar uma.
Siga estas etapas para alterar uma função personalizada por meio da IU do Atlas:
No Atlas, váGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Modificar a função personalizada.
Clique na aba Custom Roles.
Clique em Edit ao lado da função que você deseja modificar. Você pode modificar os seguintes componentes da função:
As ações ou funções que a função personalizada herda.
Os bancos de dados e coleções aos quais esses privilégios se aplicam.
Clique em Update Custom Role para salvar as alterações.
Excluir funções personalizadas
Para excluir um role de banco de dados personalizado do seu projeto utilizando o Atlas CLI, execute o seguinte comando:
atlas customDbRoles delete <roleName> [options]
Para saber mais sobre a sintaxe do comando e parâmetros, consulte a documentação do Atlas CLI para atlas customDbRoles delete.
Para excluir funções personalizadas através da API de Administração do Atlas, consulte Remover uma.
Siga estas etapas para excluir uma função personalizada por meio da interface do usuário do Atlas:
No Atlas, váGo para a Database Access página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database Access sob o título Security.
A página Acesso ao banco de dados é exibida.
Você não pode excluir um roles personalizado nos seguintes cenários:
Quando excluir o role puder deixar uma ou mais funções filhas sem funções ou ações pai.
Quando excluir o role puder deixar um ou mais usuários do banco de dados sem roles.
Atribuir funções personalizadas
Você pode atribuir funções personalizadas na interface do usuário do Atlas ao adicionar um usuário de banco de dados ou modificar um usuário de banco de dados. Para atribuir funções personalizadas por meio da API de administração do Atlas, consulte Criar um usuário de banco de dados ou atualizar um usuário de banco de dados.