Si alguna vez has visto una base de datos MySQL y has pensado:
“¿Quién entra aquí?, ¿con qué permisos?, ¿y si alguien borra todo sin querer?”
Entonces este post es para ti.
Hoy vamos a crear un usuario en MySQL con contraseña, le vamos a dar permisos solo a la base de datos que necesita, y antes de todo eso veremos cómo verificar si el usuario ya existe, para no tropezarnos dos veces con la misma piedra.
El objetivo del día
Al terminar este tutorial podrás:
- Ver qué usuarios existen en MySQL
- Crear un usuario con contraseña
- Asignarle permisos a una base de datos específica
- Verificar que todo quedó bien configurado
Paso 1: ¿El usuario ya existe? Verifiquémoslo
Antes de crear cualquier usuario, siempre revisa si ya existe.
MySQL no es fan de los duplicados.
Ejecuta esto:
SELECT User, Host FROM mysql.user;
📌 Esto te mostrará todos los usuarios registrados y desde qué host pueden conectarse (localhost, %, etc.).
Si ves algo como:
juanito | localhost
El usuario ya anda por ahí y no necesitas crearlo de nuevo.
✨ Tip moderno (MySQL 5.7+ / 8.0)
También puedes usar directamente:
CREATE USER IF NOT EXISTS 'juanito'@'localhost';
Pero igual es buena práctica saber qué hay en tu servidor.
🔐 Paso 2: Crear a Juanito con contraseña
Ahora sí, vamos a darle vida oficialmente.
CREATE USER 'juanito'@'localhost' IDENTIFIED BY 'MiPasswordSuperSecreto123';
¿Qué está pasando aquí?
'juanito'→ nombre del usuario'localhost'→ desde dónde puede conectarseIDENTIFIED BY→ su contraseña (usa una fuerte, por favor 🙏)
Paso 3: Darle permisos SOLO a su base de datos
Supongamos que Juanito solo debe trabajar con la base de datos:
tienda_online
Nada de andar tocando lo que no debe.
GRANT ALL PRIVILEGES ON tienda_online.* TO 'juanito'@'localhost';
🔍 Esto significa:
ALL PRIVILEGES→ puede hacer SELECT, INSERT, UPDATE, DELETE, etc.tienda_online.*→ todas las tablas de esa base de datos- No puede tocar otras bases 👮♂️
Paso 4: Aplicar los cambios (por si acaso)
Normalmente MySQL lo hace solo, pero no cuesta nada asegurarnos:
FLUSH PRIVILEGES;
Paso 5: Confirmar que Juanito tiene sus permisos
Nada mejor que revisar que todo quedó bien:
SHOW GRANTS FOR 'juanito'@'localhost';
Si ves algo relacionado con tienda_online, misión cumplida 🎉
Extra: probar el acceso como Juanito
Desde la terminal:
mysql -u juanito -p
Te pedirá la contraseña y, si entras sin errores…
🥳 Juanito está oficialmente en producción.
🚨 Consejos rápidos de seguridad (léelos, por favor)
- ❌ No uses usuarios root para aplicaciones
- ❌ No otorgues permisos globales si no son necesarios
- ✅ Usa contraseñas largas y únicas
- ✅ Un usuario por aplicación es una muy buena idea
🧠 Resumen express (para los que vuelven después)
-- Ver usuarios SELECT User, Host FROM mysql.user; -- Crear usuario CREATE USER 'juanito'@'localhost' IDENTIFIED BY 'password'; -- Dar permisos GRANT ALL PRIVILEGES ON tienda_online.* TO 'juanito'@'localhost'; -- Aplicar cambios FLUSH PRIVILEGES; -- Ver permisos SHOW GRANTS FOR 'juanito'@'localhost';
Para cerrar…
Crear usuarios en MySQL no tiene por qué ser complicado ni aburrido.
Si entiendes quién accede, desde dónde y a qué, ya estás un paso adelante como administrador o desarrollador.
Si este post te sirvió, guárdalo o compártelo