Skip to content

Gestión de Usuarios y Seguridad en MariaDB

1. Ejemplo de Escalado de Privilegios Mal Configurado

Supón que tienes un usuario llamado usuario_inseguro al que sin querer le diste permisos como este:

sql
GRANT SELECT, INSERT, UPDATE ON base_datos.* TO 'usuario_inseguro'@'localhost' WITH GRANT OPTION;

Con ese WITH GRANT OPTION, el usuario puede dar permisos a otros usuarios o incluso a sí mismo.

El usuario se da más permisos

sql
GRANT ALL PRIVILEGES ON base_datos.* TO 'usuario_inseguro'@'localhost';

También podría crear otro usuario con más privilegios

sql
CREATE USER 'nuevo_jefe'@'localhost' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'nuevo_jefe'@'localhost' WITH GRANT OPTION;

2. Cómo evitar esto (Buenas Prácticas)

Nunca uses WITH GRANT OPTION salvo que sea necesario

Crea usuarios con permisos específicos

sql
GRANT SELECT, INSERT ON base_datos.ventas TO 'usuario_ventas'@'localhost';

Revisa qué privilegios tiene un usuario

sql
SHOW GRANTS FOR 'usuario_inseguro'@'localhost';

Revoca privilegios si hay algo raro

sql
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'usuario_inseguro'@'localhost';

Verificar si un usuario tiene GRANT OPTION

sql
SELECT user, host, Grant_priv FROM mysql.user WHERE user = 'usuario_inseguro';

3. Ver Usuarios Conectados

Ver conexiones activas (usuarios conectados y lo que hacen)

sql
SHOW PROCESSLIST;

Ver conexiones activas de forma más limpia

sql
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE 
FROM information_schema.PROCESSLIST;

Ver solo conexiones activas distintas

sql
SELECT DISTINCT user, host 
FROM information_schema.PROCESSLIST;

Ver usuarios creados (no necesariamente conectados)

sql
SELECT user, host FROM mysql.user;

Requiere permiso PROCESS para ver conexiones ajenas

sql
GRANT PROCESS ON *.* TO 'usuario'@'localhost';

4. Resumen

SituaciónRiesgoSolución
Usuario con WITH GRANT OPTIONEscala fácilEvita este privilegio
Usuario con privilegios en *.*Control totalLimita a bases/tables específicas
Revisión de permisosNecesariaSHOW GRANTS, mysql.user

Publicado bajo la licencia MIT.