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.
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"}]})
Code Explicação:
- O primeiro passo é especificar o “nome de usuário” e a “senha” que precisam ser criados.
- 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.
- 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:
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:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code Explicação:
- O primeiro passo é especificar o “nome de usuário” e a “senha” que precisam ser criados.
- 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.
- 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:
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.
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.






