13 votos

Que los usuarios de MySQL son necesarios?

Mi servidor MySQL tiene una serie de extraños a los usuarios que no he añadido. Son estos todos los necesarios?

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

Si puedo eliminar todo el root, excepto root@localhost, he podido terminar de encerrarme de la base de datos? Y ¿cuál es el propósito del vacío nombres de usuario? Ellos parecen tener a la "CONCESIÓN de USO'??

Hay una diferencia entre 127.0.0.1 como anfitrión y localhost? Si sólo tengo localhost y no 127.0.0.1, ¿eso significa que mysqlclient que utilizan TCP/IP en lugar de Unix sockets no será capaz de conectarse?

16voto

ub3rst4r Puntos 366
  1. Estos usuarios parecen ser los predeterminados de los usuarios que se han agregado cuando MySQL se ha instalado. Se recomienda que ejecute mysql_secure_installation después de la instalación de MySQL.

  2. El vacío de los nombres de usuario ("@'NOMBRE') representar a los usuarios anónimos. Si no se ejecutó mysql_secure_installation o establecer la contraseña, a continuación, cualquier persona puede tener acceso. Si el usuario anónimo ha GRANT USAGE privilegios, entonces, básicamente, significa que no tiene privilegios, pero aún así es una buena idea para quitar el anónimo de inicio de sesión completamente.

  3. No, no hay una gran diferencia entre localhost y 127.0.0.1. Cualquiera que sea la dirección IP que el usuario está tratando de inicio de sesión debe coincidir con el @[IP Address] parte del nombre de usuario. Si el inicio de sesión desde la misma máquina que el servidor MySQL está en, a continuación, @localhost y @127.0.0.1 podrían coincidir. Como IVlint67 señalado, en algunas instalaciones, habiendo @localhost no funcionaría, así que es mejor ir con @127.0.0.1.

13voto

lVlint67 Puntos 2162

Yo suelo instalar con el mysql_secure_installation secuencia de comandos de MySQL es el transporte con el ahora...


root@127.0.0.1 es el @ dirección IP. root@localhost es @ nombre de host. Lo mismo para el nombre del servidor. Y la última root es @ dirección IPv6 para localhost.


Desde el sitio de MySQL:

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

El vacío de nombres de usuario:

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 utilizar para conectarse al servidor MySQL

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


Y por último:

Si puedo eliminar todo el root, excepto root@localhost, he podido terminar de encerrarme de la base de datos?

Sí, pero se puede volver a

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

Debo?

No me importa, es tu servidor. Si fuera mío, yo aseguraría la root de las cuentas con contraseñas y eliminar las cuentas anónimas, a menos que usted los necesita.

3voto

peterh Puntos 3060

Ninguno de ellos es necesario, especialmente los usuarios root. Usted necesita un simple usuario root de mysql para la conexión que se utilice. Todos los demás pueden (de hecho, las necesidades a) serán eliminados.

Debian tiene una root especial de usuario para las tareas de mantenimiento, es mejor si se puede vivir más.

Simplemente no puedo entender, ¿por qué es un ejemplo braindamaged de instalación predeterminada tan necesario.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: