Como criar usuário e adicionar função em MongoDB

⚡ Resumo Inteligente

Criar um usuário e adicionar uma função em MongoDB Depende do método db.createUser() para definir credenciais, atribuir funções internas e delimitar privilégios a bancos de dados específicos, reforçando o controle de acesso em contas administrativas e de banco de dados único.

  • 🔑 Método principal: O comando db.createUser() provisiona uma conta especificando o usuário, a senha e uma matriz de funções em uma única instrução.
  • 🛡️ Escopo do administrador: A função userAdminAnyDatabase concede direitos de gerenciamento em todos os bancos de dados, enquanto a função userAdmin limita o controle a um banco de dados específico.
  • 🎯 Atribuição de função: Funções integradas, como leitura e leitura/gravação, correspondem precisamente às ações que um usuário pode executar em uma coleção.
  • 👥 Vários bancos de dados: Uma única conta pode ter funções diferentes em vários bancos de dados dentro de uma mesma matriz de funções.
  • Verificação: O método db.getUsers() e o resultado retornado confirmam que as contas e os privilégios foram provisionados corretamente.

Como criar um usuário e adicionar uma função em MongoDB

O que são funções integradas em MongoDB?

Antes de criar uma conta, é útil entender as funções integradas que MongoDB Uma função é um conjunto nomeado de privilégios, e cada privilégio associa um recurso (um banco de dados ou coleção) às ações permitidas sobre ele. Portanto, atribuir uma função durante a criação do usuário define exatamente o que essa conta pode fazer.

MongoDB O sistema agrupa suas funções integradas em funções de usuário do banco de dados, funções de administração do banco de dados, funções de administração de cluster, funções de backup e restauração e funções de superusuário. A tabela abaixo resume as funções mais usadas no gerenciamento de usuários:

Tipo Categoria Privilégios Concedidos
ler Usuário do banco de dados Acesso somente leitura a todas as coleções não pertencentes ao sistema em um banco de dados.
lerEscrever Usuário do banco de dados Acesso de leitura, além de permissões para inserir, atualizar e excluir coleções.
dbAdmin Administrador de banco de dados Gerenciamento de esquema, indexação e estatísticas para um banco de dados.
administrador de usuário Administrador de banco de dados Crie e modifique usuários e funções em um único banco de dados.
userAdminQualquerBancoDeDados Superusuário Administração de usuários em todos os bancos de dados da instância.
raiz Superusuário Acesso total a todos os recursos e operações.

MongoDB Criar usuário administrador

Criando um usuário administrador em MongoDB é feito usando o método createUser. O exemplo a seguir mostra como isso pode ser feito.

db.createUser(
{	user: "Guru99",
	pwd: "password",

	roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})

MongoDB Criar usuário administrador

Code Explicação:

  1. O primeiro passo é especificar o “nome de usuário” e a “senha” que precisam ser criados.
  2. O segundo passo é atribuir uma função ao usuário. Como ele precisa ser um administrador de banco de dados, atribuímos a função “userAdminAnyDatabase”. Essa função permite que o usuário tenha privilégios administrativos em todos os bancos de dados do banco. MongoDB.
  3. O parâmetro db especifica o banco de dados administrativo, que é um banco de dados Meta especial dentro do sistema. MongoDB que contém as informações deste usuário.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Saída:

MongoDB Criar usuário administrador

O resultado mostra que um usuário chamado “GuruO usuário “99” foi criado e possui privilégios sobre todos os bancos de dados em MongoDB.

MongoDB Criar usuário para banco de dados único

Para criar um usuário que irá gerenciar um único banco de dados, podemos usar o mesmo comando mencionado acima, mas precisamos usar apenas a opção “userAdmin”.

O exemplo a seguir mostra como isso pode ser feito:

MongoDB Criar usuário para banco de dados único

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

	roles:[{role: "userAdmin" , db:"Employee"}]})

Code Explicação:

  1. O primeiro passo é especificar o “nome de usuário” e a “senha” que precisam ser criados.
  2. O segundo passo é atribuir uma função ao usuário, que neste caso, como precisa ser um administrador de banco de dados, é atribuída à função “userAdmin”. Essa função permite que o usuário tenha privilégios administrativos apenas para o banco de dados especificado na opção db.
  3. O parâmetro db especifica o banco de dados no qual o usuário deve ter privilégios administrativos.

Se o comando for executado com sucesso, a seguinte saída será mostrada:

Saída:

MongoDB Criar usuário para banco de dados único

A saída mostra que um usuário chamado “Employeeadmin” foi criado e esse usuário tem privilégios apenas no banco de dados “Employee”.

Gerenciando usuários

Primeiro, entenda as funções que você precisa definir. Existe uma lista completa de funções disponíveis em MongoDBPor exemplo, existe a função "leitura", que permite apenas acesso de leitura aos bancos de dados, e existe a função "leitura/gravação", que fornece acesso de leitura e gravação ao banco de dados. Isso significa que o usuário pode executar os comandos de inserção, exclusão e atualização em coleções nesse banco de dados.

Gerenciando usuários

db.createUser(
{
	user: "Mohan",

	pwd: "password",

	roles:[
	{ role: "read" , db:"Marketing" },
	{ role: "readWrite" , db:"Sales" }
	]
})

O trecho de código acima mostra que um usuário chamado Mohan foi criado e que foram atribuídas a ele várias funções em vários bancos de dados. No exemplo acima, ele recebeu permissão de somente leitura para o banco de dados "Marketing" e permissão de leitura e gravação para o banco de dados "Sales".

Como visualizar e gerenciar MongoDB Utilizadores

Após a existência das contas, MongoDB Fornece um conjunto de comandos para inspecionar, atualizar e remover arquivos sem descartá-los.ping e recriando cada usuário. Esses comandos são executados no banco de dados onde o usuário foi criado, portanto, alterne para o banco de dados correto com a instrução `use` antes de executá-los.

Os comandos mais comuns para gerenciamento de usuários são:

  • db.getUsers() — lista todos os usuários definidos no banco de dados atual, juntamente com as funções que cada um possui.
  • db.getUser(“nome de usuário”) — retorna os detalhes de uma única conta, o que é útil para auditar privilégios.
  • db.grantRolesToUser() — adiciona uma ou mais funções a um usuário existente sem afetar as funções atuais.
  • db.revokeRolesFromUser() — remove funções específicas, restringindo o acesso quando as responsabilidades mudam.
  • db.changeUserPassword() — redefine a senha de uma conta enquanto keeping seus papéis intactos.
  • db.dropUser() — exclui permanentemente um usuário do banco de dados.

O exemplo abaixo concede uma função adicional, revoga outra, redefine uma senha e, por fim, exclui a conta:

// List all users in the current database
db.getUsers()

// Grant an additional role to an existing user
db.grantRolesToUser("Employeeadmin", [{ role: "readWrite", db: "Employee" }])

// Remove a role from a user
db.revokeRolesFromUser("Employeeadmin", [{ role: "userAdmin", db: "Employee" }])

// Change a user's password
db.changeUserPassword("Employeeadmin", "newPassword")

// Delete a user
db.dropUser("Employeeadmin")

Executar db.getUsers() novamente após essas operações confirma que as alterações foram aplicadas e que apenas as contas e funções desejadas permanecem.

Melhores Práticas para MongoDB Gestão de Usuários

Contas de usuário bem planejadas mantêm um MongoDB Implantação segura e fácil de auditar. As seguintes práticas reduzem o risco de exposição acidental de dados e uso indevido de privilégios:

  • Aplicar o menor privilégio: Atribua apenas as funções que uma conta realmente precisa, priorizando permissões de leitura e gravação em um único banco de dados em vez de funções administrativas amplas.
  • Evite o uso de root em produção: Reserve as funções de root e userAdminAnyDatabase para configuração e tarefas de emergência, em vez de operações diárias.
  • Ativar autenticação: Inicie o servidor com a opção –auth para que as credenciais sejam efetivamente exigidas.
  • Use senhas fortes: Combine comprimento e complexidade e alterne as senhas com db.changeUserPassword() em um cronograma.
  • Audite regularmente: RevVisualize periodicamente a saída de db.getUsers() e remova as contas que não são mais necessárias.

Em conjunto, esses hábitos garantem que cada conta corresponda a uma necessidade real e que o acesso possa ser traced sempre que uma revisão de segurança é realizada.

Perguntas Frequentes

Sim. Os assistentes de IA podem transformar uma descrição simples em um comando db.createUser() válido, atribuir o array de funções correto e definir o escopo para um banco de dados específico. Sempre teste o comando gerado em um banco de dados de não produção antes de executá-lo.

Sim. Ferramentas de auditoria baseadas em IA podem ler a saída de db.getUsers(), sinalizar contas com privilégios de root ou userAdminAnyDatabase e sugerir funções com privilégios mínimos. Os administradores ainda devem revisar cada recomendação antes de revogar o acesso em um sistema em produção.

A função userAdmin gerencia usuários e funções em um banco de dados específico, enquanto userAdminAnyDatabase concede privilégios de administração de usuários em todos os bancos de dados da instância. Use userAdmin para controle com escopo definido e userAdminAnyDatabase somente para administradores confiáveis.

Alterne para o banco de dados onde o usuário existe com o comando use e, em seguida, execute db.dropUser(“username”). MongoDB Remove a conta e suas funções nesse banco de dados. Confirme a remoção executando db.getUsers() em seguida.

Resuma esta postagem com: