24 Jul 2011
MySQL usuario de lectura
Resulta que crear un usuario de mysql con acceso desde hosts remotos no es tan intuitivo como podrÃa pensarse. Durante la creación de un usuario en mysql, ya sea con el comando apropiado o mediante utilidades como “mysql_setpermission”, se debe indicar si el usuario mysql podrá conectar con el motor SQL únicamente desde el localhost, o si por el contrario, tendrá acceso desde un host remoto especÃfico o desde cualquier host (%).
Sin embargo, para que el acceso remoto funcione, deberá crearse primero el usuario localhost y posteriormente el mismo usuario para %:
mysql> create user ‘readonly’@'localhost’ identified by ‘mipassword’;
Query OK, 0 rows affected (0.00 sec)mysql> grant select on *.* to ‘readonly’@'localhost’ with grant option;
Query OK, 0 rows affected (0.00 sec)mysql> create user ‘readonly’@'%’ identified by ‘mipassword’;
Query OK, 0 rows affected (0.00 sec)mysql> grant select on *.* to ‘readonly’@'%’ with grant option;
Query OK, 0 rows affected (0.00 sec)
Esto se puede leer en la documentación oficial de MySQL:
“It is necessary to have both accounts for monty to be able to connect from anywhere as monty.”
Con estas instrucciones se habrá creado un usuario llamado “readonly” con únicamente permisos de lectura (selects) contra todas las bases de datos existentes, tanto desde el host local como desde cualquier otro host remoto.

Si además queremos que este usuario pueda realizar backups de las bases de datos, debemos agregarle LOCK TABLES a sus privilegios (sobre las bases que queramos, o todas *.*)
Como medida de seguridad (sobre todo para scripts de backup) es bueno tener un usuario de sólo lectura, pero que pueda hacer estas funciones.
Buen post.
Salu2!
Sergio
Octubre 8th, 2011 at 13:22permalink
Gracias Sergio.
Tengo pendiente un post que explica un poco el funcionamiento de mysqlhotcopy (algo asà como un mysqldump para tablas myisam), el cual requiere precisamente, como dices, agregar al usuario de backup el LOCK TABLES además del RELOAD.
En cuanto pueda lo subo.
¡Un saludo!
Adri
Octubre 10th, 2011 at 8:36permalink
[...] donde se ha hablado un poco de la administración de usuarios y permisos en MySQL como éste o  éste otro. Sin embargo, voy a resumir en un breve post la administración de usuarios y permisos de [...]
Administración básica de usuarios y permisos MySQL | Hello, IT.
Noviembre 16th, 2011 at 10:07permalink