MySQL: Crear, eliminar y gestionar permisos de usuarios

En esta entrada voy a explicaros como podeis crear y eliminar usuarios así como asignarles o quitarles permisos en MySQL.

Creación de usuarios

Para crear un usuario en MySQL simplemente tendremos que conectarnos a nuestro servidor y ejecutar uno de los siguientes comandos en función desde donde se realice la conexión.

Creación usuario con acceso local

CREATE USER 'nombre de usuario'@'localhost' IDENTIFIED BY 'contraseña';

Creación usuario con acceso desde una IP concreta

CREATE USER 'nombre de usuario'@'dirección IP' IDENTIFIED BY 'contraseña';

Creación usuario con acceso desde cualquier ubicación

CREATE USER 'nombre de usuario'@'%' IDENTIFIED BY 'contraseña';

Asignación de permisos

Una vez creado el usuario tenemos que aplicar los permisos según nuestras necesidades.

Los permisos que podemos aplicar a los usuarios son los siguientes:

  • ALL PRIVILEGES: Este permiso permite a un usuario acceso completo a la/s base/s de dato/s a las que le hayamos dado permisos.
  • CREATE: Permiso de creación de nueva tablas o bases de datos.
  • DROP: Permiso de eliminación de tablas o bases de datos.
  • DELETE: Permiso de eliminación de registros en tablas.
  • INSERT: Permiso de inserción de registros en tablas.
  • SELECT: Permiso de lectura de los registros de las tablas.
  • UPDATE: Permiso de actualización de los registros de las tablas.
  • GRANT OPTION: Permiso para remover privilegios de usuarios.

Para proporcionar un permiso a un usuario específico utilizaremos la siguiente estructura:

GRANT [permiso] ON [nombre de base de dato].[nombre de tabla] TO '[nombre usuario]' @ 'origen acceso';

Siguiendo esta estructura si por ejemplo queremos aplicar el permiso sobre cualquier base de datos o tabla insertaremos un asterisco en lugar del nombre de la base de datos o tabla.

Por último refrescaremos los privilegios para aplicarlos ejecutando la siguiente sentencia:

FLUSH PRIVILEGES;

Revocación de permisos

Si queremos revocar un permiso a un usuario la estructura que seguiremos será la misma que la que hemos utilizado para asignar permisos pero sustituyendo la palabra clave GRANT por REVOKE.

REVOKE [permiso] ON [nombre de base de dato].[nombre de tabla] TO '[nombre usuario]' @ 'origen acceso';

Refrescamos los privilegios para que se apliquen.

FLUSH PRIVILEGES;

Eliminación Usuario

Por ultimo para eliminar un usuario ejecutaremos la siguiente sentencia:

DROP USER 'nombre usuario'@'origen acceso';

Espero os haya servido de utilidad.

Deja un comentario