¿Qué usuarios de MySQL son necesarios?


13

Mi servidor MySQL tiene una cantidad de usuarios extraños que no agregué. ¿Son todos estos necesarios?

'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'

Si elimino todos los root excepto root @ localhost, ¿podría terminar bloqueándome de la base de datos? ¿Y para qué sirven los nombres de usuario vacíos? ¿Parecen tener el "USO DE LA SUBVENCIÓN"?

¿Hay alguna diferencia entre 127.0.0.1 como host y localhost? Si solo tengo localhost y no 127.0.0.1, ¿eso significa que los clientes mysqlclient que usan TCP / IP en lugar de sockets Unix no podrán conectarse?

Respuestas:


16
  1. Estos usuarios parecen ser los usuarios predeterminados que se agregaron cuando se instaló MySQL. Se recomienda que ejecute mysql_secure_installation después de instalar MySQL.

  2. Los nombres de usuario vacíos ('' @ 'SERVERNAME') representan usuarios anónimos. Si no ejecutó mysql_secure_installationo configuró la contraseña, cualquiera puede acceder. Si el usuario anónimo tiene GRANT USAGEprivilegios, básicamente significa que no tiene privilegios, pero sigue siendo una buena idea eliminar completamente el inicio de sesión anónimo.

  3. No, no hay una gran diferencia entre localhost y 127.0.0.1. Cualquier dirección IP desde la que el usuario intenta iniciar sesión debe coincidir con la @[IP Address]parte del nombre de usuario. Si su registro desde la misma máquina que el servidor MySQL está activada, @localhosty @127.0.0.1se correspondería. Como IVlint67 señaló, en algunas instalaciones @localhostno funcionaría, por lo que es mejor hacerlo @127.0.0.1.


13

Por lo general, instalo con el script mysql_secure_installation que MySQL está enviando ahora ...


root@127.0.0.1 es la dirección @ IP. root @ localhost es @ hostname. Lo mismo para el nombre del servidor. Y la última raíz es la dirección @ IPv6 para localhost.


Desde el sitio MySQL:

Un intento de conectarse al host 127.0.0.1 normalmente se resuelve en la cuenta localhost. Sin embargo, esto falla si el servidor se ejecuta con la opción --skip-name-resolve, por lo que la cuenta 127.0.0.1 es útil en ese caso.

Los nombres de usuario vacíos:

Algunas cuentas son para usuarios anónimos. Estos tienen un nombre de usuario vacío. Las cuentas anónimas no tienen contraseña, por lo que cualquiera puede usarlas para conectarse al servidor MySQL

http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html


Y finalmente:

Si elimino todos los root excepto root @ localhost, ¿podría terminar bloqueándome de la base de datos?

Sí, pero puedes volver a entrar

Ver --skip-grant-tables: https://help.ubuntu.com/community/MysqlPasswordReset

¿Debería?

No me importa, es tu servidor. Si fuera mío, protegería las cuentas raíz como están con las contraseñas y eliminaría las cuentas anónimas a menos que las necesite.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.