Fixar ou definir permissões no MySQL é um processo crucial de segurança, realizado principalmente através dos comandos GRANT (conceder) e REVOKE (remover). A melhor prática é seguir o princípio do privilégio mínimo, dando aos usuários apenas o acesso necessário para realizar suas tarefas.
Aqui está um guia passo a passo para gerenciar permissões:
1. Criar um Usuário (Se ainda não existir)
Antes de fixar permissões, é ideal ter um usuário específico, evitando usar o root.
SQL
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'senha_forte';'localhost' restringe o acesso ao servidor local. Use '%' para acesso remoto (menos seguro).
2. Conceder Permissões (GRANT)
Use o comando GRANT para fixar as ações permitidas em bancos de dados ou tabelas.
Permissões de Leitura e Escrita (Mais comum – Recomendado):
SQL
GRANT SELECT, INSERT, UPDATE, DELETE ON nome_do_banco.* TO 'usuario'@'localhost';Isso permite ao usuário ler, inserir, atualizar e apagar dados no banco especificado.
Permissões Administrativas (Apenas se necessário):
SQL
GRANT ALL PRIVILEGES ON nome_do_banco.* TO 'usuario'@'localhost';Isso dá controle total sobre o banco de dados específico.
3. Aplicar as Alterações (FLUSH PRIVILEGES)
Após alterar as permissões, execute este comando para garantir que o MySQL atualize as tabelas de privilégios:
SQL
FLUSH PRIVILEGES;4. Verificar as Permissões
Para confirmar se as permissões foram fixadas corretamente, use:
SQL
SHOW GRANTS FOR 'usuario'@'localhost';5. Remover Permissões (REVOKE)
Se precisar retirar uma permissão específica:
SQL
REVOKE INSERT ON nome_do_banco.* FROM 'usuario'@'localhost';
FLUSH PRIVILEGES;Melhores Práticas de Segurança
- Evite GRANT ALL no
*.*: Nunca dê permissões globais (todos os bancos e todas as tabelas) para aplicações web, a menos que seja estritamente necessário. - Use
localhost: Sempre que possível, restrinja o usuário ao host local, especialmente para aplicações web. - Revoke no Root: Garanta que o usuário root não tenha acesso remoto (com a cláusula
%).
Resumo dos Comandos
| Ação | Comando SQL |
|---|---|
| Conceder tudo | GRANT ALL PRIVILEGES ON db.* TO 'user'@'host'; |
| Conceder leitura | GRANT SELECT ON db.* TO 'user'@'host'; |
| Aplicar | FLUSH PRIVILEGES; |
| Verificar | SHOW GRANTS FOR 'user'@'host'; |
| Remover tudo | REVOKE ALL PRIVILEGES ON db.* FROM 'user'@'host'; |
Deseja saber mais Sobre Banco de Dados Clique Aqui!
Site Oficial MySQL
https://www.mysql.com/

Perito em Computação Forense e Crimes Cibernéticos
Investigação Digital | Laudos Técnicos | Resposta a Incidentes
Bacharel em Sistemas da Informação, Certificado Microsoft Azure IA e MOS. Trabalho como Administrador de Redes, Firewall e Servidores Windows e Linux!
Minhas atividades favoritas são: Caminhar, Fazer Trilhas, Natureza, Insetos e claro ler sobre Tecnologia.

