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 tudoGRANT ALL PRIVILEGES ON db.* TO 'user'@'host';
Conceder leituraGRANT SELECT ON db.* TO 'user'@'host';
AplicarFLUSH PRIVILEGES;
VerificarSHOW GRANTS FOR 'user'@'host';
Remover tudoREVOKE ALL PRIVILEGES ON db.* FROM 'user'@'host';

Deseja saber mais Sobre Banco de Dados Clique Aqui!

Site Oficial MySQL
https://www.mysql.com/

Deixe um comentário

Translate »