Curso de MySQL

Configurar contraseñas y permisos en MySQL Workbench

Por Víctor Peña · Publicado el

Configuración de contraseñas y permisos en MySQL Workbench

Hola, ¿cómo están? Continuando con el curso de MySQL, hoy hacemos la administración de usuarios desde MySQL Workbench, que es la herramienta oficial y la que vamos a usar durante el resto del curso.

¡Empecemos!

Dónde está el panel de administración

Con la conexión abierta, en el panel izquierdo verás la sección Administration. Dentro está Users and Privileges.

Al entrar aparece la lista de cuentas existentes. En una instalación nueva verás root y algunas cuentas internas de MySQL —mysql.session, mysql.sys— que no debes tocar: las usa el propio motor.

Cambiar la contraseña de root

  1. Selecciona root en la lista.
  2. En la pestaña Login, pulsa el botón junto a Password.
  3. Escribe la nueva contraseña y confírmala.
  4. Pulsa Apply.

Después de esto, la conexión guardada en Workbench seguirá intentando entrar con la anterior. Para actualizarla:

Database → Manage Connections, selecciona tu conexión, borra la contraseña almacenada y guarda. La próxima vez te la pedirá.

Crear un usuario para la aplicación

  1. En Users and Privileges, pulsa Add Account.
  2. En la pestaña Login:
    • Login Name: app_tienda
    • Authentication Type: déjalo en el valor por defecto.
    • Limit to Hosts Matching: escribe localhost.
    • Password y Confirm Password: una clave larga y aleatoria.
  3. Pulsa Apply.

Sobre el campo de host: si escribes %, el usuario podrá conectarse desde cualquier equipo de la red o de internet. Usa localhost salvo que tengas una necesidad concreta.

Asignar permisos por esquema

Aquí está la parte importante, y donde Workbench se explica mejor que phpMyAdmin.

  1. Con el usuario seleccionado, ve a la pestaña Schema Privileges.
  2. Pulsa Add Entry.
  3. Elige Selected schema y selecciona la base de datos. Evita la opción de todos los esquemas.
  4. Pulsa OK.
  5. Ahora aparece la lista de privilegios. Marca solo:
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
  6. Apply.

Workbench agrupa los permisos en tres bloques, y entender la agrupación ayuda a decidir:

Bloque Qué contiene Para la aplicación
Object Rights SELECT, INSERT, UPDATE, DELETE, EXECUTE , los cuatro primeros
DDL Rights CREATE, ALTER, DROP, INDEX No
Other Rights GRANT OPTION, CREATE USER Nunca

Los DDL Rights modifican la estructura de la base. Tu aplicación no crea ni borra tablas mientras funciona: eso corresponde al usuario de despliegue.

Y GRANT OPTION permite que ese usuario conceda permisos a otros. Dárselo a una aplicación es entregar la administración entera.

La pestaña Administrative Roles

Workbench trae roles predefinidos, y conviene saber qué hacen antes de tocarlos:

  • DBA es equivalente a root. Todo, sobre todo.
  • BackupAdmin, SecurityAdmin, MonitorAdmin y similares agrupan permisos globales para tareas concretas.

Para el usuario de una aplicación web, no marques ninguno. Los roles administrativos son globales: afectan a todas las bases de datos del servidor, no solo a la tuya.

Verificar lo que quedó

Workbench tiene su propio editor SQL, y comprobar siempre es buena idea. Abre una pestaña de consulta y ejecuta:

SHOW GRANTS FOR 'app_tienda'@'localhost';

Resultado esperado:

GRANT USAGE ON *.* TO `app_tienda`@`localhost`
GRANT SELECT, INSERT, UPDATE, DELETE ON `tienda`.* TO `app_tienda`@`localhost`

Si en la primera línea aparece algo distinto de USAGE, tienes permisos globales asignados sin querer. USAGE significa «puede conectarse y nada más», que es lo correcto a nivel global.

Crear los tres usuarios del proyecto

Repitiendo el esquema de la lección de seguridad, en un proyecto real conviene tener:

Usuario Permisos Para qué
app SELECT, INSERT, UPDATE, DELETE La aplicación en funcionamiento
deploy Lo anterior + CREATE, ALTER, DROP, INDEX Migraciones y despliegues
reportes SELECT Consultas y tableros

Crearlos toma cinco minutos con Workbench, y el beneficio es que una inyección SQL en la aplicación no puede borrar tablas, porque ese usuario simplemente no tiene el permiso.

Revisar usuarios periódicamente

En sistemas con años suelen acumularse cuentas de gente que ya no está o de pruebas olvidadas. Desde el editor SQL:

SELECT user, host FROM mysql.user ORDER BY user;

Y para eliminar una:

DROP USER 'antiguo'@'localhost';

También puedes hacerlo desde la interfaz con el botón Delete, pero conviene conocer la sentencia: en un servidor remoto sin interfaz gráfica es lo único que tendrás.

Workbench o phpMyAdmin

Ahora que viste ambas:

Workbench phpMyAdmin
Permisos con detalle Mejor Suficiente
Diseño de diagramas No
Funciona sin instalar No
Disponible en hostings No
Bases muy grandes Mejor Se ralentiza

En tu computadora, Workbench. En el panel de tu hosting, phpMyAdmin porque será lo único que haya.

Copias de seguridad desde Workbench

Aprovechando que estamos en administración: en Administration → Data Export puedes generar un respaldo con interfaz, eligiendo qué esquemas y tablas incluir.

Y en Data Import/Restore, restaurarlo.

Es cómodo para respaldos puntuales. Para los automáticos, mysqldump desde una tarea programada sigue siendo la opción, como vimos en la lección de seguridad.

Errores comunes

  • Poner % en el host sin necesitarlo.
  • Marcar un rol administrativo para el usuario de la aplicación.
  • Conceder DDL Rights a la aplicación.
  • Olvidar pulsar Apply, y creer que los cambios se guardaron.
  • No actualizar la conexión guardada tras cambiar la contraseña de root.

Para cerrar

Workbench hace visible algo que en la consola pasa desapercibido: cuántos permisos estás concediendo realmente. Ver las casillas de DDL sin marcar es una buena forma de recordar que la aplicación no necesita poder borrar tablas.

Con la seguridad resuelta, ya podemos empezar a construir. En la siguiente lección creamos nuestra primera base de datos.

Saludos y éxitos.

Norvic Software

Desarrollamos el software que tu empresa necesita

Somos una fábrica de software en Bolivia. Construimos sistemas a medida y aplicaciones móviles, y llevamos Inteligencia Artificial a las empresas que ya tienen un sistema funcionando.

Solicitar cotizaciónVer todos los servicios

Cotización sin costo · Respuesta directa por WhatsApp