Entrada

MySQL 🐬 : Administrar Usuarios

La administración de usuarios es una de las tareas más importantes cuando se trabaja con MySQL, especialmente cuando necesitas controlar quién puede acceder a las bases de datos y qué operaciones pueden realizar. Esto es crucial para mantener la seguridad y la integridad de los datos en un entorno de producción.

Comandos para Administrar Usuarios

Crear Usuarios

Por medio del comando CREATE USER podemos crear y configurar un usuario (siempre y cuando tengamos los privilegios correspondientes), para que el nuevo usuario pueda iniciar sesión y se le puede asignar una contraseña por medio de la cláusula IDENTIFIED BY.

Una vez conectado al servidor estamos en condiciones para crear usuarios, la sintaxis para ello es muy sencila:

1
CREATE USER '<user-name>`'@'<host>' IDENTIFIED BY '<password-user>'
  • <user-name>: El nombre de usuario que crearemos.
  • <host>: El host desde cual el usuario puede conectarse (se puede usar IP o % para cualquier host).
  • <password-user>: La contraseña del usuario.

Ejemplo:

1
CREATE USER 'juan'@'localhost' IDENTIFIED BY 'miContraseña123';

Crear un Usuario con Contraseña Caducada

En el siguiente ejemplo, se crea una cuenta de usuario utilizando el complemento de autenticación predeterminado. Además, la contraseña proporcionada se marca como caducada, lo que obliga al usuario a eligir una nueva cuando se conecte por primera vez al servidor:

1
CREATE USER 'lucas'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE;

El comando ALTER USER se introdujo en versiones de MariaDB 10.4 en adelante y MySQL 5.7 en adelante, por lo que si usas versiones anteriores, se debe usar SET PASSWORD

Si en el caso de que la versión de MySQL o MariaDB son más antiguas, para cambiar la contraseña, lo haríamos de la siguiente manera:

1
SET PASSWORD FOR current_user() = PASSWORD('lucas123');

Administrar Privilegios

En MySQL, los privilegios determinan qué operaciones puede realizar un usuario en una base de datos. Administrar correctamente los privilegios es esencial para la seguridad y el control de acceso a los datos.

DCL (Data Control Language) son comandos SQL que permiten a un usuario administrador controlar el acceso y acciones sobre las bases de datos a otros usuarios. Estos comandos son principalmente dos:

  • GRANT: Usado para otorgar permisos de acceso al usuario para realizar tareas determinadas en las bases de datos permitidas.
  • REVOKE: Elimina permisos que han sido previamente concendido con GRANT.

Algunas tareas sobre las que se pueden conceder o denegar permisos son las siguientes: CONNECT, SELECT, INSERT, UPDATE, DELETE, USAGE, etc.

Asignar Privilegios a Usuarios

Una vez que un usuario es creado, puedes asignarle privilegios sobre una o varias bases de datos. El comando GRANT se usa para otorgar estos privilegios.

Para ver una lista más detallada de todos los permisos que pueden ser asignados a una cuenta de usuario, nos conectamos al servidor y ejecutamos el siguiente comando:

1
SHOW PRIVILEGES;

Para otorgar todos los permisos a un usuario sobre todo el servidor, sería de la siguiente manera:

1
GRANT ALL PRIVILEGES ON *.* TO '<user-name>'@`<host>`;

Los asteriscos indican que los permisos serán asignados a todas las bases de datos y a todas las tablas.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.