Skip to content

Category Archives: mysql

Instalação segura do MySQL Server

09-Jan-08

A instalação default do MySQL no linux (debian-based) configura a conta do root no banco de dados para ser acessada sem precisar de senha, dessa forma qualquer usuário conectado no servidor consegue obter uma shell do MySQL através do comando:


$ mysql -u root

Não é difícil perceber o quanto essa configuração é ruim e devido à isto, antigamente eu alterava a senha do root via SQL mesmo, como segue abaixo:


$ mysql -u root
mysql> set password for root@localhost = password('NOVA-SENHA');
Query OK, 0 rows affected (0.00 sec)

E isso realmente funciona, pois força que o usuário root tenha que passar a senha NOVA-SENHA para se logar, mas descobri há pouco tempo atrás um comando mais apropriado para isso e que além de definir a senha altera várias outras configurações de segurança:

* Obs1: Eu removi a maioria dos comentários exibidos durante a execução, mas a cada passo são exibidos textos explicando os efeitos das alterações sugeridas pelo utilitário.

* Obs2: Eu já havia executado esse comando antes (quando instalei o meu servidor) portanto a execução exibida abaixo pode
ser um pouco diferente da sua, caso esta seja a primeira vez que você está executando o comando.


# mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on...

You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] n
 ... skipping.

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

E como o próprio utilitário diz: Sua instalação do MySQL agora deve estar segura