MySQL 🐬 : 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>'
1. Crear un usuario con contraseña caducada
En este ejemplo, creamos una cuenta de usuario con el complemento de autenticación predeterminado y la contraseña proporcionada la marcamos como caducada, para que el usuario deba 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 usarSET 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');
Otorgar Permisos a Usuarios
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 conGRANT
.
Algunas tareas sobre las que se pueden conceder o denegar permisos son las siguientes: CONNECT
, SELECT
, INSERT
, UPDATE
, DELETE
, USAGE
, etc.
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;
Asignar Permisos a un Usuario
Para asignar permisos a una cuenta, debemos utilizar el comando dcl GRANT
.
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.
Mi lema es