🎯 Objetivo:
Aprender a crear usuarios, asignar permisos y usar roles para administrar el acceso a una base de datos de forma segura, siguiendo el principio del mínimo privilegio.
🧠 ¿Qué son los usuarios y roles?
-
Un usuario es una cuenta que se conecta a la base de datos.
-
Un rol es un grupo de permisos (como lectura, escritura, eliminación) que se puede asignar a uno o más usuarios.
-
Esto permite que cada persona tenga solo el acceso que necesita.
🔐 Principio de mínimo privilegio
👉 Solo dar acceso a lo que realmente necesita un usuario.
Ejemplo:
-
Un cajero solo necesita insertar y consultar ventas.
-
Un analista solo necesita consultar.
-
Un administrador puede modificar estructuras y usuarios.
🛠️ Comandos básicos en MySQL (válido también en MariaDB)
🧾 Crear un usuario:
🔹 Esto crea un usuario local llamado analista con contraseña segura123.
🧾 Dar permisos específicos:
🔹 El usuario puede consultar cualquier tabla en la base de datos tienda, pero no modificar nada.
🧾 Crear un rol (MySQL 8+):
🧾 Asignar un rol a un usuario:
🔹 juan hereda los permisos del rol editor.
🧾 Ver permisos de un usuario:
🧾 Revocar permisos:
🧩 Ejemplo real: Roles en una tienda
| Usuario | Rol asignado | Permisos |
|---|---|---|
camila |
lector |
SELECT |
juan |
editor |
SELECT, INSERT, UPDATE |
admin |
admin |
ALL PRIVILEGES |
🧼 Buenas prácticas de seguridad
✅ No uses root para operar en producción
✅ Crea roles según funciones reales (lector, editor, admin)
✅ Revoca permisos cuando alguien ya no los necesita
✅ Usa contraseñas seguras para todos los usuarios
📝 Desafío práctico
-
Crea un usuario
consultorcon solo permiso de lectura sobre la baseventas. -
Crea un rol
vendedorcon permisos para insertar y consultar. -
Asigna el rol
vendedora dos usuarios. -
Luego revoca el permiso
INSERTdel rolvendedor.
✅ Revisión rápida
-
¿Qué hace un
GRANT? -
¿Qué diferencia hay entre un usuario y un rol?
-
¿Cómo aplicarías el principio de mínimo privilegio en tu base de datos?