APUNTES MYSQL GESTIÓN DE USUARIOS Y PERMISOS
COMANDOS DE MYSQL
CREAR USUARIO
CREATE USER ‘nombre’@’localhost;
CREATE USER ‘nombre’@’%’;
Ejemplos de creación de usuarios con límites de conexiones,
intentos y expiración
Ejemplo 1: Límite de conexiones por hora y conexiones simultáneas, con expiración de
la contraseña a 60 días:
CREATE USER 'conex_hora'@'%' IDENTIFIED BY 'Secr3t!'
WITH MAX_CONNECTIONS_PER_HOUR 20 MAX_USER_CONNECTIONS 5
PASSWORD EXPIRE INTERVAL 60 DAY;
Ejemplo 2: Límite de intentos de inicio de sesión y tiempo de bloqueo, con expiración
en 30 días:
CREATE USER 'login_lock'@'localhost' IDENTIFIED BY
'P4ssw0rd'
FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 2
PASSWORD EXPIRE INTERVAL 30 DAY;
Ejemplo 3: Combinado – límite de consultas, conexiones y control de intentos, con
expiración en 90 días:
CREATE USER 'usuario_avanzado'@'%' IDENTIFIED BY 'Av4nced!'
WITH MAX_QUERIES_PER_HOUR 100 MAX_CONNECTIONS_PER_HOUR 10
MAX_USER_CONNECTIONS 3
FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 1
PASSWORD EXPIRE INTERVAL 90 DAY;
, APUNTES MYSQL GESTIÓN DE USUARIOS Y PERMISOS
Crear usuarios con opciones:
Ejemplos con resource_option
Las opciones de recursos se definen con la cláusula WITH:
-- Usuario con límites de recursos por hora y conexiones
simultáneas
CREATE USER 'usuario_limited'@'%' IDENTIFIED BY 'Secure123!'
WITH
MAX_QUERIES_PER_HOUR 100, -- Máx. 100 consultas
por hora
MAX_UPDATES_PER_HOUR 50, -- Máx. 50
actualizaciones por hora
MAX_CONNECTIONS_PER_HOUR 20, -- Máx. 20 conexiones
por hora
MAX_USER_CONNECTIONS 5; -- Máx. 5 conexiones
simultáneas
Ejemplos con password_option
Las opciones de contraseña permiten políticas de seguridad avanzadas:
-- Usuario con expiración de contraseña a los 30 días y
bloqueo tras 5 intentos fallidos
CREATE USER 'usuario_pwd'@'localhost' IDENTIFIED BY
'Complicad0!'
FAILED_LOGIN_ATTEMPTS 5 -- Se bloquea tras 5
intentos fallidos
PASSWORD_LOCK_TIME 1 -- El bloqueo dura 1
día
PASSWORD EXPIRE INTERVAL 30 DAY; -- La contraseña expira
cada 30 días
Ejemplo combinado: recursos + seguridad
CREATE USER 'usuario_combo'@'%' IDENTIFIED BY 'SuperSegur0!'
WITH
MAX_QUERIES_PER_HOUR 200,
MAX_CONNECTIONS_PER_HOUR 25,
MAX_USER_CONNECTIONS 3
FAILED_LOGIN_ATTEMPTS 4
PASSWORD_LOCK_TIME 2
PASSWORD EXPIRE INTERVAL 60 DAY;
COMANDOS DE MYSQL
CREAR USUARIO
CREATE USER ‘nombre’@’localhost;
CREATE USER ‘nombre’@’%’;
Ejemplos de creación de usuarios con límites de conexiones,
intentos y expiración
Ejemplo 1: Límite de conexiones por hora y conexiones simultáneas, con expiración de
la contraseña a 60 días:
CREATE USER 'conex_hora'@'%' IDENTIFIED BY 'Secr3t!'
WITH MAX_CONNECTIONS_PER_HOUR 20 MAX_USER_CONNECTIONS 5
PASSWORD EXPIRE INTERVAL 60 DAY;
Ejemplo 2: Límite de intentos de inicio de sesión y tiempo de bloqueo, con expiración
en 30 días:
CREATE USER 'login_lock'@'localhost' IDENTIFIED BY
'P4ssw0rd'
FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 2
PASSWORD EXPIRE INTERVAL 30 DAY;
Ejemplo 3: Combinado – límite de consultas, conexiones y control de intentos, con
expiración en 90 días:
CREATE USER 'usuario_avanzado'@'%' IDENTIFIED BY 'Av4nced!'
WITH MAX_QUERIES_PER_HOUR 100 MAX_CONNECTIONS_PER_HOUR 10
MAX_USER_CONNECTIONS 3
FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 1
PASSWORD EXPIRE INTERVAL 90 DAY;
, APUNTES MYSQL GESTIÓN DE USUARIOS Y PERMISOS
Crear usuarios con opciones:
Ejemplos con resource_option
Las opciones de recursos se definen con la cláusula WITH:
-- Usuario con límites de recursos por hora y conexiones
simultáneas
CREATE USER 'usuario_limited'@'%' IDENTIFIED BY 'Secure123!'
WITH
MAX_QUERIES_PER_HOUR 100, -- Máx. 100 consultas
por hora
MAX_UPDATES_PER_HOUR 50, -- Máx. 50
actualizaciones por hora
MAX_CONNECTIONS_PER_HOUR 20, -- Máx. 20 conexiones
por hora
MAX_USER_CONNECTIONS 5; -- Máx. 5 conexiones
simultáneas
Ejemplos con password_option
Las opciones de contraseña permiten políticas de seguridad avanzadas:
-- Usuario con expiración de contraseña a los 30 días y
bloqueo tras 5 intentos fallidos
CREATE USER 'usuario_pwd'@'localhost' IDENTIFIED BY
'Complicad0!'
FAILED_LOGIN_ATTEMPTS 5 -- Se bloquea tras 5
intentos fallidos
PASSWORD_LOCK_TIME 1 -- El bloqueo dura 1
día
PASSWORD EXPIRE INTERVAL 30 DAY; -- La contraseña expira
cada 30 días
Ejemplo combinado: recursos + seguridad
CREATE USER 'usuario_combo'@'%' IDENTIFIED BY 'SuperSegur0!'
WITH
MAX_QUERIES_PER_HOUR 200,
MAX_CONNECTIONS_PER_HOUR 25,
MAX_USER_CONNECTIONS 3
FAILED_LOGIN_ATTEMPTS 4
PASSWORD_LOCK_TIME 2
PASSWORD EXPIRE INTERVAL 60 DAY;