Proteger MySQL

Después de haber instalado MySQL hace falta crear contraseñas para todos los usuarios (creados por defecto), ya que ninguno tiene. MySQL está desprotegido al inicio. Es recomendable hacer lo siguiente:

  • Si quieres prevenir que clientes anónimos se conecten sin password, deberías crear los password o borrar las cuentas
  • Asignar un password a root

Asignar password a las cuentas anónimas

Primero empezaremos por las cuentas anónimas. Para eso, conéctate al servidor como root y usa alguno de estos comandos: SET PASSWORD o UPDATE. En cualquier caso, asegúrate de encriptar el password con PASSWORD().

Para Windows

mysql -u root

SET PASSWORD FOR ”@’localhost’ = PASSWORD(‘nuevo_password’);

SET PASSWORD FOR ”@’%’ = PASSWORD(‘nuevo_password’);

Para Unix

mysql -u root

SET PASSWORD FOR ”@’localhost’ = PASSWORD(‘anonimo’);

SET PASSWORD FOR ”@’aura-laptop’ = PASSWORD(‘anonimo’);

Para saber el nombre del servidor, usa

select host, user from mysql.user;

Como se habrá notado, se usa dos veces SET PASSWORD, debido a que MySQL crea dos cuentas anónimas, una para localhost y otra para ‘aura-laptop’

Remover las cuentas anónimas

Esto aplica tanto para Windows como para Unix

mysql –user root

DROP USER ”;

En Windows, si quieres remover sólo las cuentas anónimas que tienen los mismos privilegios de root:

mysql -u root

DROP USER ”@’localhost’;

Esa cuenta permite acceso anónimo, pero tiene privilegios completos.

Asignar password a root

Para hacer esto hay varias maneras, por ejemplo:

  • Usar SET PASSWORD
  • Usar mysqladmin
  • Usar UPDATE

Si se usa SET PASSWORD, no hay diferencia de las cuentas anónimas, excepto que se debe usar una tercera vez para 127.0.0.1

Para UNIX

mysql -u root

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘pass’);

SET PASSWORD FOR ‘root’@’aura-laptop’ = PASSWORD(‘pass’);

SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘pass’);

Con mysqladmin

mysqladmin -u root password “pass”

myslqadmin -u root -h nombre_host password “pass”

Las comillas sólo son necesarias para los espacios. La diferencia de este método al anterior es que con mysqladmin no se asigna password para 127.0.0.1

Por último, se puede modificar la tabla directamente con UPDATE

mysql -u root

UPDATE mysql.user SET Password = PASSWORD(‘nueva_password’) WHERE User = ‘root’;

FLUSH PRIVILEGES;

La próxima vez que inicies el monitor MySQL usa

mysql –user=root –password=tu_pass

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s