Estoy tratando de BAJAR a los usuarios anónimos de mi base de datos mysql.users. Sin embargo, he estado teniendo un comportamiento extraño. Cuando ingreso el comando:
DROP User ''@'WOPR';
Estaba recibiendo un mensaje de error genérico. Entonces, reinicié mi máquina e intenté de nuevo. Esta vez recibí la respuesta
Query OK, 0 rows affected.
Pero cuando puse
SELECT User, Host, Password FROM mysql.user WHERE User='';
El regreso es:
+------+------+----------+
| User | Host | Password |
+------+------+----------+
| | WOPR | |
+------+------+----------+
(WOPR es mi nombre de host)
Ejecuto el comando
DROP User ''@'WOPR';
y obtener el mismo resultado.
Estoy ejecutando una nueva instalación de MySQL 5.5 en Arch Linux, versión del kernel 2.6.33.
¿Alguien sabe qué puede causar este comportamiento?
Respuestas:
Esto debería hacerlo por ti.
Darle una oportunidad !!!
CONSIDERACIÓN
MySQL tiene ciertos usuarios preinstalados en mysql.user. Además, mysql.db viene con dos usuarios que tienen acceso anónimo y privilegios completos para probar bases de datos.
Solo haz esto
y verá que cualquiera que se conecte a la prueba o cualquier base de datos que comience con test_ puede hacer casi todo en la base de datos de prueba. Esto es malo ya que una persona con acceso completo a cualquier base de datos de prueba puede consumir un disco en cuestión de minutos.
Ejemplo:
OK, gran cosa. Hace una tabla con 4 bytes.
Ahora intenta ejecutar esta instrucción SQL 30 veces:
¡Hola, una tabla instantánea con 1,073,741,824 filas (4GB + archivo)! Imágenes que tienen todos los derechos sobre una base de datos de prueba donde puede causar este tipo de estragos en un disco.
Mi consejo para usted es ejecutar esto para limpiar el acceso del usuario de prueba:
Para más aclaraciones, vea mi publicación MySQL: ¿Por qué hay entradas de "prueba" en mysql.db?
Salud !!!
fuente
drop user
sintaxis en lugar de modificar lamysql.user
tabla subyacente directamente?DROP USER
sintaxis no funciona cuando el campo de usuario está en blanco (cadena vacía). Debe hacerlo de la manera que especifica la respuesta.mysql.user
mesa?mysql.db
la instalación que permitirá a los usuarios anónimos acceder a una base de datos de prueba. Curiosamente, me dijeron que la instalación del servidor Percona elimina esas filas antes de que se complete su instalación ( dba.stackexchange.com/questions/66584/… ). Como está utilizando MySQL, ejecute mysql_secure_installation o elimine esas dos filas usted mismo.