Puede deshabilitar el control de acceso del cliente en MySQL diciéndole al servidor que no lea las tablas de concesión y deshabilite el control de acceso. Usa las –skip-grant-tables opción para hacerlo. La opción –skip-grant-tables tiene los siguientes efectos:
- Cuando está conectado, el usuario tiene todos los privilegios para hacer cualquier cosa.
- Esta opción deshabilita declaraciones de administración de cuentas como CREAR USUARIO, OTORGAR, REVOCAR y ESTABLECER CONTRASEÑA.
Deshabilitar el control de acceso es conveniente si olvida la contraseña de root y necesita restablecerla porque cualquier usuario puede conectarse con todos los privilegios sin proporcionar una contraseña. Esto es claramente peligroso. Para evitar que los clientes remotos se conecten a través de TCP/IP, utilice la opción –skip- networking. Luego, los clientes solo pueden conectarse desde el host local utilizando un archivo de socket en UNIX, o una canalización con nombre o memoria compartida en Windows. Para evitar conexiones casuales desde el host local, use un nombre de socket no estándar en el símbolo del sistema.
Los extractos de gestión de cuentas requieren las copias en memoria de las tablas de concesión, que no están disponibles cuando desactiva el control de acceso. Para cambiar los privilegios o establecer una contraseña, modifique las tablas de permisos directamente. Alternativamente, emita una declaración FLUSH PRIVILEGES después de conectarse al servidor, lo que hace que el servidor lea las tablas y también habilita las declaraciones de administración de cuentas.
Conclusión
Cuando desactiva el control de acceso del cliente en MySQL,
1. Cada conexión tiene éxito:
- Puede proporcionar cualquier nombre de usuario y cualquier contraseña, y puede conectarse desde cualquier host.
- La opción desactiva el sistema de privilegios por completo.
- Los usuarios conectados tienen efectivamente todos los privilegios.
2. Evite que los clientes se conecten:
- Use –skip-networking opción para evitar el acceso a la red y permitir el acceso solo en el socket local, canalización con nombre o memoria compartida.
- Utilice el –socket opción para iniciar el servidor en un socket no estándar para evitar el acceso casual de aplicaciones o usuarios locales.