Inicio › Foros › Bases de datos › MySQL › Asignar permisos a un usuario solo a tablas concretas en MySQL › Respuesta a: Asignar permisos a un usuario solo a tablas concretas en MySQL
Te indicamos los pasos para crear un usuario y establecerle permisos a nivel de tabla en MySQL. Puedes hacerlo desde la línea de comandos de tu servidor Linux CentOS con MySQL:
1. Conéctate a MySQL con el comando:
mysql –user=»root» –password=»contraseña»
2. Crea el usuario con el comando:
create user ‘nombre_usuario’@’localhost’ identified by ‘contraseña’;
3. Con esta consulta puedes comprobar que el usuario se ha creado correctamente:
select user, host from mysql.user;
4. Para establecer permisos para una tabla concreta, por ejemplo el permiso de solo lectura (select) e incluso desde un equipo concreto de la red (por ejemplo desde todos los que tengan IP 192.168.1.*):
grant select on nombre_bd.nombre_tabla to ‘nombre_usuario’@’192.168.1.%’;
Donde:
- nombre_usuario: nombre que quieras darle al usuario con el que accederás a MySQL. Si queremos dar acceso para todos los usuarios (no es recomendable) colocaremos un *.
- nombre_bd: nombre de la base de datos (catálogo) que contiene las tablas a las que le darás acceso. Si queremos dar acceso a todas las bases de datos (no es recomendable) colocaremos un *.
- nombre_tabla: nombre de la tabla a la que le darás acceso. Si queremos dar acceso a todas las bases de datos (no es recomendable) colocaremos un *.
- select: indica el tipo de permiso que le darás para la tabla, hay varias opciones y se pueden añadir juntas (separadas por comas): insert, select, update, delete, drop,… Si queremos todos los permisos (no suele ser recomendable) se pone un ALL.
- 192.168.1.%: en este valor estableceremos desde que IP o rango de IP queremos que se acceda a MySQL con el usuario. Si queremos todos (no suele ser recomendable) se pone un %.
Para comprobar que se han asignado correctamente los permisos puedes ejecutar este otro comando:
show grants for ‘nombre_usuario’@’192.168.1.%’;
Por último ejecuta esta otra consulta para hacer efectivos permisos creados:
flush privileges;
A partir de este momento el usuario tendrá acceso de lectura (select) para la tabla indicada en la base de datos MySQL indicada y desde el equipo o equipos indicados.