- 1 Introdução
- 2 Criando Usuários no MariaDB
- 3 Gerenciando Privilégios no MariaDB
- 4 Excluindo Usuários no MariaDB
- 5 Erros Comuns e Soluções (FAQ)
- 6 Conclusão
Introdução
1.1 Você Quer Aprender a Criar Usuários no MariaDB?
Já quis criar um novo usuário no MariaDB e configurar os privilégios adequados?
Por exemplo, você pode ter se deparado com as seguintes situações:
- Executou
CREATE USERmas não consegue fazer login - Concedeu privilégios usando
GRANT, mas eles não foram aplicados - Não tem certeza de como configurar permissões corretas em um ambiente de produção
- Quer excluir com segurança usuários desnecessários
Se você está enfrentando esses problemas, este artigo ajudará você a entender completamente todo o processo, desde a criação de usuários até o gerenciamento de privilégios e a exclusão de usuários no MariaDB.
1.2 O Que Você Vai Aprender Neste Artigo
Este artigo fornece uma explicação detalhada dos seguintes aspectos do gerenciamento de usuários no MariaDB:
- Como criar e excluir usuários no MariaDB
- Como conceder e gerenciar privilégios (melhores práticas para configurações corretas de permissão)
- Erros comuns e como resolvê‑los
- Melhores práticas operacionais para ambientes de desenvolvimento e produção
Todos os tópicos são explicados com exemplos de SQL amigáveis para iniciantes, permitindo que você aprenda e pratique ao mesmo tempo.
1.3 Público‑Alvo
Este artigo destina‑se a:
- Iniciantes: quem está aprendendo a gerenciar usuários no MariaDB pela primeira vez
- Engenheiros: quem deseja configurar permissões corretas em ambientes de desenvolvimento
- Administradores de Banco de Dados: quem busca reforçar a segurança em ambientes de produção
Mesmo que você seja novo no MariaDB, este guia fornece informações práticas que você pode aplicar com confiança em operações reais.
Criando Usuários no MariaDB
2.1 Comando Básico de Criação de Usuário
No MariaDB, você cria um novo usuário usando o comando CREATE USER.
É possível especificar nome de usuário e senha com a seguinte sintaxe:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Por exemplo, para criar um usuário chamado yamada em localhost com a senha password123:
CREATE USER 'yamada'@'localhost' IDENTIFIED BY 'password123';
Após executar este comando, o usuário yamada será criado e poderá fazer login apenas a partir do localhost (login permitido somente no próprio servidor).
2.2 Exemplos de Criação de Usuário por Caso de Uso
Ao criar usuários no MariaDB, você pode especificar de onde as conexões são permitidas usando o campo hostname.
É importante configurar as definições adequadamente de acordo com o seu caso de uso.
| Case | Command Example | Description |
|---|---|---|
| Local Environment (Development) | CREATE USER 'dev_user'@'localhost' IDENTIFIED BY 'password'; | User dedicated to development environment |
| Allow Remote Connections | CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; | Allow connections from any host (security caution required) |
| Allow Connection from Specific IP | CREATE USER 'admin'@'192.168.1.100' IDENTIFIED BY 'password'; | Restrict access to a specific IP address only |
| Allow Connection from Specific Subnet | CREATE USER 'network_user'@'192.168.1.%' IDENTIFIED BY 'password'; | Allow only machines with IP addresses in the 192.168.1.x range |
Usar '%' permite conexões de todos os hosts, mas
isso representa riscos de segurança significativos e não é recomendado para ambientes de produção.
Em produção, o ideal é especificar endereços IP ou configurar o acesso por meio de uma VPN.
2.3 Observações Importantes ao Criar Usuários
Existem várias considerações importantes ao criar usuários.
(1) Verificar Usuários Existentes
Antes de criar um usuário, é importante confirmar que o mesmo usuário ainda não existe.
Você pode listar os usuários registrados atualmente com o seguinte comando:
SELECT user, host FROM mysql.user;
Saída de exemplo:
+---------+-----------+
| user | host |
+---------+-----------+
| root | localhost |
| yamada | localhost |
+---------+-----------+
Se já existir um usuário com o mesmo username@hostname, a execução de CREATE USER resultará em erro.
(2) O Que Fazer se o Usuário Já Existir
No MariaDB, não é possível sobrescrever um usuário existente recriando‑o.
Se o mesmo usuário já existir, use uma das abordagens a seguir:
- Alterar a senha do usuário existente
ALTER USER 'yamada'@'localhost' IDENTIFIED BY 'newpassword123';
- Excluir o usuário desnecessário e criar um novo
DROP USER 'yamada'@'localhost'; CREATE USER 'yamada'@'localhost' IDENTIFIED BY 'password123';
Gerenciando Privilégios no MariaDB
3.1 Conceder Privilégios
Sintaxe Básica
No MariaDB, você pode conceder privilégios a um usuário usando o comando GRANT.
GRANT privilege ON database_name.table_name TO 'username'@'hostname';
Por exemplo, para conceder todos os privilégios no test_db ao usuário yamada:
GRANT ALL PRIVILEGES ON test_db.* TO 'yamada'@'localhost';
Significado deste comando:
ALL PRIVILEGES: Concede todos os privilégiostest_db.*: Aplica-se a todas as tabelas no banco de dadostest_db'yamada'@'localhost': Aplica-se ao usuárioyamadaque se conecta a partir do localhost
3.2 Privilégios Mais Usados
No MariaDB, você pode conceder privilégios como os seguintes:
| Privilege | Description |
|---|---|
ALL PRIVILEGES | Grant all privileges |
SELECT | Read data |
INSERT | Insert data |
UPDATE | Update data |
DELETE | Delete data |
CREATE | Create new tables or databases |
DROP | Drop databases or tables |
GRANT OPTION | Grant privileges to other users |
ALTER | Modify table structure |
EXECUTE | Execute stored procedures or functions |
RELOAD | Reload server settings |
Se você deseja permitir apenas operações específicas, é recomendado conceder privilégios individualmente em vez de conceder tudo.
3.3 Configurações de Privilégios por Caso de Uso
É importante atribuir os privilégios corretos para cada situação.
| Situation | Recommended Privileges | Command Example |
|---|---|---|
| WordPress Operator | SELECT, INSERT, UPDATE, DELETE | GRANT SELECT, INSERT, UPDATE, DELETE ON wp_db.* TO 'wp_user'@'localhost'; |
| Developer (Development Environment) | ALL PRIVILEGES | GRANT ALL PRIVILEGES ON dev_db.* TO 'dev_user'@'%'; |
| Read-Only User | SELECT only | GRANT SELECT ON analytics_db.* TO 'readonly'@'localhost'; |
| Database Administrator (Production Environment) | ALL PRIVILEGES (restricted) | GRANT ALL PRIVILEGES ON production_db.* TO 'admin'@'localhost'; |
Em ambientes de produção, evite conceder ALL PRIVILEGES com muita facilidade.
3.4 Verificar Privilégios Concedidos
Para verificar os privilégios concedidos, use o comando SHOW GRANTS.
SHOW GRANTS FOR 'username'@'hostname';
Por exemplo, para verificar os privilégios do usuário yamada:
SHOW GRANTS FOR 'yamada'@'localhost';
Exemplo de saída:
+-----------------------------------------------------------------------------------+
| Grants for yamada@localhost |
+-----------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE ON test_db.* TO 'yamada'@'localhost' |
+-----------------------------------------------------------------------------------+
Isto mostra os privilégios atualmente concedidos ao usuário.
3.5 Revogar Privilégios (Remover Permissões)
Para revogar privilégios específicos de um usuário, use o comando REVOKE.
Sintaxe Básica
REVOKE privilege ON database_name.table_name FROM 'username'@'hostname';
Por exemplo, para revogar o privilégio UPDATE do usuário yamada:
REVOKE UPDATE ON test_db.* FROM 'yamada'@'localhost';
Revogar Todos os Privilégios
REVOKE ALL PRIVILEGES ON *.* FROM 'yamada'@'localhost';
3.6 O que Fazer Quando Alterações de Privilégios Não Têm Efeito
No MariaDB, alterações de privilégios podem não ser aplicadas imediatamente. Se isso acontecer, execute o seguinte comando:
FLUSH PRIVILEGES;
Executar este comando força o MariaDB a recarregar as tabelas de privilégios para que suas alterações tenham efeito imediatamente.

Excluindo Usuários no MariaDB
4.1 Excluir um Usuário
Para excluir um usuário do MariaDB, use o comando DROP USER.
Sintaxe Básica
DROP USER 'username'@'hostname';
Por exemplo, para excluir o usuário yamada do localhost:
DROP USER 'yamada'@'localhost';
Após executar este comando, o usuário yamada será completamente removido do sistema MariaDB.
4.2 O Que Verificar Antes de Excluir um Usuário
Antes de excluir um usuário, há algumas verificações importantes que você deve realizar.
Tenha cuidado para não excluir usuários necessários por engano.
(1) Verificar se o Usuário Alvo Existe
No MariaDB, tentar excluir um usuário inexistente causará um erro.
Execute o comando a seguir para confirmar que o usuário alvo existe:
SELECT user, host FROM mysql.user;
Exemplo de saída:
+---------+-----------+
| user | host |
+---------+-----------+
| root | localhost |
| yamada | localhost |
| admin | 192.168.1.100 |
+---------+-----------+
Se o usuário yamada aparecer nesta lista, o usuário pode ser excluído.
(2) Verificar se o Usuário Está Conectado no Momento
No MariaDB, se o usuário que você está excluindo possui uma sessão ativa,
a exclusão pode não ter efeito imediatamente para essa sessão.
Verifique se o usuário está ativo usando o comando a seguir:
SELECT user, host FROM information_schema.processlist;
Exemplo de saída:
+---------+-----------+
| user | host |
+---------+-----------+
| yamada | localhost |
| root | localhost |
+---------+-----------+
Neste exemplo, o usuário yamada está atualmente ativo, portanto você deve encerrar a sessão antes da exclusão.
(3) Encerrar Forçadamente uma Sessão
Você pode encerrar forçadamente uma sessão específica usando o comando KILL.
- Primeiro, verifique o ID do processo (a coluna
ID):SELECT id, user, host FROM information_schema.processlist;
Exemplo de saída:
+----+---------+-----------+
| id | user | host |
+----+---------+-----------+
| 10 | yamada | localhost |
| 11 | root | localhost |
+----+---------+-----------+
- Se
yamadatem o ID de processo10, encerre-a com:KILL 10;
4.3 Limpeza Pós-Exclusão
Após excluir um usuário, informações residuais de privilégios podem permanecer no banco de dados.
Nesses casos, execute FLUSH PRIVILEGES para atualizar as tabelas de privilégios.
FLUSH PRIVILEGES;
Executar isso garante que as informações do usuário excluído sejam totalmente removidas do sistema de banco de dados.
4.4 Notas Importantes ao Excluir Usuários
Mantenha os seguintes pontos em mente ao excluir usuários:
- Usuários excluídos não podem ser restaurados
- Uma vez que você execute
DROP USER, o usuário excluído não pode ser recuperado . - Se for excluído por engano, você deve recriar o usuário usando
CREATE USER.
- Privilégios podem precisar ser transferidos
- Se o usuário excluído era responsável por operações críticas do banco de dados, você deve transferir os privilégios necessários para outro usuário adequado antecipadamente.
- Tenha cuidado em ambientes de produção
- Em ambientes de produção, a exclusão repentina pode causar indisponibilidade do sistema ou erros.
- É altamente recomendado analisar o impacto com antecedência e criar um backup .
Erros Comuns e Soluções (FAQ)
Ao gerenciar usuários no MariaDB, você pode encontrar vários erros.
Esta seção explica os erros mais comuns, suas causas e como resolvê-los.
5.1 FAQ para Iniciantes
Q1: Qual é a diferença entre o gerenciamento de usuários do MariaDB e do MySQL?
MariaDB e MySQL geralmente usam a mesma sintaxe, mas há algumas diferenças de recursos.
| Comparison Item | MySQL | MariaDB |
|---|---|---|
CREATE USER | Supported | Supported |
SHOW GRANTS FOR | Supported | Supported |
DROP USER | Supported | Supported |
CREATE ROLE | MySQL 8.0 and later | MariaDB 10.0 and later |
MariaDB suporta CREATE ROLE, permitindo o gerenciamento de usuários baseado em papéis.
Q2: Qual é a diferença entre localhost e %?
No gerenciamento de usuários do MariaDB, especificar o nome do host é crítico.
localhost: Permite conexões apenas da máquina local%: Permite conexões de qualquer host (risco de segurança)192.168.1.100: Permite conexões apenas de um endereço IP específico192.168.1.%: Permite conexões apenas de uma sub-rede específica (192.168.1.*)
5.2 Solução de Problemas
Q3: Como corrigir “ERROR 1396 (HY000): Operação CREATE USER falhou”
Causa: O usuário especificado já existe, portanto um novo usuário não pode ser criado.
Solução: Verifique se o usuário existe e exclua ou modifique-o se necessário.
- Verificar usuários existentes
SELECT user, host FROM mysql.user WHERE user='yamada';
- Excluir se desnecessário
DROP USER 'yamada'@'localhost';
- Alterar a senha em vez disso
ALTER USER 'yamada'@'localhost' IDENTIFIED BY 'newpassword123';
Q4: Privilégios concedidos com GRANT não são aplicados
Causa: O cache de privilégios do MariaDB não foi atualizado.
Solução: Execute FLUSH PRIVILEGES para recarregar os privilégios.
FLUSH PRIVILEGES;
Q5: Não é possível conectar remotamente mesmo usando %
Causa: Conexões remotas podem estar restritas no arquivo de configuração do MariaDB.
Solução:
- Edite o arquivo de configuração
/etc/mysql/my.cnf(ou/etc/mysql/mariadb.conf.d/50-server.cnf) e altere o valor debind-addresspara0.0.0.0.bind-address = 0.0.0.0
- Reinicie o MariaDB
sudo systemctl restart mariadb
- Use
%no comandoGRANTpara permitir conexõesGRANT ALL PRIVILEGES ON test_db.* TO 'remote_user'@'%' IDENTIFIED BY 'password';
Q6: Obtendo o Erro “Access denied for user ‘user’@’host’”
Causa: O usuário não tem privilégios adequados, ou a senha está incorreta.
Solução:
- Verificar privilégios atuais
SHOW GRANTS FOR 'user'@'host';
- Conceder privilégios apropriados
GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'host';
- Verificar se você está fazendo login com a senha correta
mysql -u user -p
Conclusão
A gestão de usuários do MariaDB é essencial para melhorar a segurança do banco de dados e a eficiência operacional. Neste artigo, abordamos em detalhes criação de usuários, gerenciamento de privilégios, exclusão de usuários e erros comuns com suas soluções.
6.1 Recapitulação
① Criando Usuários no MariaDB
- Crie novos usuários usando o comando
CREATE USER - Restrinja o acesso usando
@'hostname' - Sempre verifique os usuários existentes antes de criar novos
② Gerenciando Privilégios no MariaDB
- Use
GRANTpara atribuir os privilégios mínimos necessários - Use
SHOW GRANTSpara verificar os privilégios atuais - Use
REVOKEpara remover privilégios desnecessários - Aplique as mudanças com
FLUSH PRIVILEGES
③ Excluindo Usuários no MariaDB
- Exclua usuários usando o comando
DROP USER - Verifique sessões ativas antes da exclusão
- Limpe o cache de privilégios usando
FLUSH PRIVILEGES
④ Erros Comuns e Soluções
ERROR 1396 (HY000)→ Verifique usuários existentes e exclua se necessário- Alterações de privilégios não aplicadas → Execute
FLUSH PRIVILEGES Access denied for user→ Verifique privilégios e senha- Não é possível conectar remotamente com
%→ Ajuste a configuraçãobind-address
6.2 Melhores Práticas para Gerenciamento de Usuários do MariaDB
- Conceda apenas os privilégios mínimos necessários
- Evite conceder
ALL PRIVILEGESde forma casual - Restrinja usuários de produção a
SELECT, INSERT, UPDATE, DELETEsempre que possível - Sempre verifique as mudanças de privilégios
- Use
SHOW GRANTSpara confirmar que as configurações estão corretas - Analise o impacto antes de excluir usuários
- Seja cauteloso em produção e crie backups
- Implemente práticas de segurança robustas
- Aplique restrições de IP para conexões remotas
- Defina uma senha forte para o usuário root
- Remova regularmente usuários e privilégios desnecessários
6.3 Considerações Finais
Por meio deste guia, você aprendeu tudo, desde o básico até técnicas avançadas de gerenciamento de usuários do MariaDB. Use esse conhecimento para alcançar uma administração de banco de dados segura e eficiente.
Continuaremos a compartilhar insights úteis sobre MariaDB, então fique atento! 🚀


