Cómo crear un usuario de base de datos MySQL y asignarle privilegios en Plesk
¿Qué es un usuario de base de datos MySQL y por qué necesitas uno?
Cuando creas una base de datos en Plesk, esta se genera con un único usuario "dueño" que tiene todos los privilegios. Sin embargo, para aplicaciones web, tiendas online, WordPress u otros CMS, es una muy mala práctica usar ese usuario principal para todo.
¿Por qué? Imagina que tu aplicación solo necesita leer datos (por ejemplo, mostrar productos en una tienda). Si usas un usuario con permisos totales y alguien explota una vulnerabilidad en tu web, tendrá acceso completo para borrar tablas, modificar datos o incluso eliminar la base de datos entera.
Crear un usuario MySQL específico con privilegios limitados es como darle a cada empleado de tu empresa solo la llave de la puerta que necesita, y no la llave del almacén principal. Es más seguro y más ordenado.
En este artículo te explicaré paso a paso cómo crear un usuario mysql en Plesk, asignarle los privilegios adecuados y gestionar los permisos mysql de forma sencilla, sin necesidad de tocar código ni usar líneas de comandos.
Requisitos previos
Antes de comenzar, asegúrate de tener:
- Acceso al panel de control de Plesk como administrador o como cliente con permisos suficientes.
- Una base de datos MySQL ya creada (si no la tienes, puedes crearla desde el mismo panel).
- Ganas de aprender un proceso que te ahorrará muchos dolores de cabeza.
[INFO] Si tienes una base de datos en otro panel como Syspanel (antes conocido como HestiaCP), el proceso es similar pero la interfaz cambia. Para acceder a Syspanel, recuerda que el puerto es el 2106 (por ejemplo,
https://tudominio.com:2106).
Paso 1: Acceder a la sección de Bases de Datos en Plesk
Lo primero que debes hacer es iniciar sesión en tu panel de Plesk. Una vez dentro, sigue estos pasos:
- Busca en el menú lateral izquierdo la sección "Bases de Datos" (o "Databases" si tienes Plesk en inglés).
- Haz clic sobre ella para ver el listado de todas las bases de datos que tienes creadas.
- Localiza la base de datos a la que quieres añadir un nuevo usuario y haz clic sobre su nombre.
[TIP] Si tienes muchas bases de datos, puedes usar el buscador de la parte superior para filtrar por nombre.
Paso 2: Crear un nuevo usuario MySQL
Dentro de la página de gestión de tu base de datos, verás varias pestañas o secciones. Busca la que dice "Usuarios" o "Usuarios de la base de datos". Haz clic en el botón "Agregar usuario" (o "Add User").
Se abrirá un formulario con los siguientes campos:
- Nombre de usuario: Elige un nombre descriptivo, por ejemplo
usuario_web_lectura. - Contraseña: Introduce una contraseña segura. Plesk suele tener un botón para generar una automáticamente.
- Confirmar contraseña: Repite la contraseña.
[WARNING] No uses nombres de usuario genéricos como "admin", "root" o "test". Son los primeros que intentarán los atacantes. Usa combinaciones con prefijos relacionados con tu proyecto.
Una vez rellenes los campos, haz clic en "Aceptar" o "Crear".
¡Importante! En este momento el usuario se crea, pero aún no tiene acceso a ninguna base de datos. Es como crear un empleado pero sin darle una llave. El siguiente paso es asignarle los permisos.
Paso 3: Asignar privilegios al usuario MySQL
Ahora que has creado el usuario mysql en Plesk, debes asignarle los privilegios sobre la base de datos. Para ello:
- Vuelve a la página de gestión de tu base de datos.
- En la sección de usuarios, verás listado el nuevo usuario que acabas de crear.
- Haz clic en el icono de "Editar" (normalmente un lápiz) o directamente en el nombre del usuario.
Se abrirá una pantalla con las opciones de privilegios. Verás una lista de permisos que puedes marcar o desmarcar. Los más comunes son:
- SELECT: Permite leer datos (consultas).
- INSERT: Permite añadir nuevos registros.
- UPDATE: Permite modificar registros existentes.
- DELETE: Permite eliminar registros.
- CREATE: Permite crear nuevas tablas dentro de la base de datos.
- ALTER: Permite modificar la estructura de las tablas.
- DROP: Permite eliminar tablas completas.
- INDEX: Permite crear y eliminar índices.
- REFERENCES: Permite crear claves foráneas.
También verás opciones más avanzadas como GRANT OPTION (permite dar permisos a otros usuarios) o LOCK TABLES (bloquear tablas).
¿Qué privilegios deberías asignar?
Depende del uso que le vayas a dar al usuario:
- Solo lectura (por ejemplo, para un reporte o una web estática): Marca únicamente
SELECT. - Aplicación web básica (WordPress, PrestaShop, etc.): Marca
SELECT,INSERT,UPDATE,DELETEy quizásINDEX. No necesitasCREATE,ALTERoDROPa menos que la aplicación gestione su propia instalación. - Desarrollador / pruebas: Puedes marcar casi todos los privilegios, pero evita
GRANT OPTIONpara no crear problemas de seguridad.
[TIP] Si no estás seguro de qué permisos necesita tu aplicación, comienza con los mínimos (SELECT, INSERT, UPDATE, DELETE) y ve ampliándolos si ves que algo falla. Es más seguro empezar restrictivo que abierto.
Paso 4: Confirmar los cambios
Una vez hayas marcado los privilegios deseados, haz clic en "Aceptar" o "Guardar". Plesk aplicará los cambios automáticamente y el usuario ya podrá conectarse a la base de datos con esos permisos.
[INFO] Si necesitas que el usuario acceda desde una IP específica o desde cualquier host, Plesk suele gestionar esto automáticamente. En algunos casos, verás un campo para indicar el host. Deja
%olocalhostsegún el caso. Para aplicaciones web alojadas en el mismo servidor,localhostes suficiente.
Cómo comprobar que el usuario funciona
Para verificar que todo está correcto, puedes hacer lo siguiente:
- Usa un cliente MySQL como phpMyAdmin (disponible en Plesk desde la sección de bases de datos).
- Inicia sesión con el nuevo usuario y la contraseña que configuraste.
- Intenta ejecutar una consulta sencilla, por ejemplo
SELECT * FROM alguna_tabla;.
Si el usuario no tiene permisos de lectura, verás un error. Si los tiene, verás los datos.
[WARNING] Si usas Syspanel (el antiguo HestiaCP) y necesitas gestionar usuarios MySQL, recuerda que el acceso es a través del puerto 2106. La interfaz es diferente, pero el concepto de usuarios y privilegios es el mismo.
Errores comunes y cómo solucionarlos
Error "Access denied for user"
Este es el error más típico. Significa que el usuario no tiene permisos para acceder a la base de datos. Revisa:
- Que el nombre de usuario y contraseña sean correctos.
- Que el usuario esté asignado a la base de datos correcta.
- Que el host desde el que te conectas sea el permitido.
Error "Table doesn't exist"
Puede que el usuario tenga permisos sobre la base de datos, pero no sobre la tabla específica. Revisa los privilegios a nivel de tabla (aunque en Plesk esto es poco común, ya que normalmente se asignan a nivel de base de datos).
El usuario no aparece en la lista
Asegúrate de haber guardado correctamente el usuario al crearlo. Si no aparece, crea otro usuario nuevo.
Preguntas frecuentes (FAQ)
¿Puedo usar el mismo usuario para varias bases de datos?
Sí. En Plesk puedes asignar un mismo usuario a varias bases de datos. Solo tienes que repetir el proceso de asignación de privilegios en cada base de datos.
¿Cómo elimino un usuario MySQL?
En la sección de usuarios de la base de datos, haz clic en el icono de papelera junto al usuario que quieras eliminar. Ten cuidado: si la aplicación usa ese usuario, dejará de funcionar.
¿Puedo cambiar la contraseña de un usuario existente?
Sí. Entra en la edición del usuario y verás un campo para cambiar la contraseña. No olvides actualizar también la configuración de tu aplicación.
¿Qué pasa si doy demasiados privilegios?
Si das permisos de DROP o ALTER a un usuario de una aplicación web, y esa aplicación es comprometida, el atacante podría eliminar tablas completas. Siempre es mejor pecar de restrictivo y ampliar después.
¿Puedo crear un usuario desde la línea de comandos?
Sí, pero no es necesario. Plesk te lo pone muy fácil desde la interfaz gráfica. Si prefieres la línea de comandos, necesitarías acceder por SSH y usar comandos MySQL, pero eso ya es un nivel más avanzado.
Conclusión: la gestión de usuarios MySQL es clave para la seguridad
Crear un usuario de base de datos MySQL y asignarle los privilegios adecuados en Plesk es una tarea sencilla pero fundamental para mantener la seguridad de tus aplicaciones. No te limites a usar siempre el usuario principal: dedica unos minutos a crear usuarios específicos con los permisos mysql mínimos necesarios.
Recuerda:
- Usa contraseñas seguras y cámbialas periódicamente.
- No compartas usuarios entre aplicaciones si no es necesario.
- Revisa periódicamente los usuarios que tienes creados y elimina los que no uses.
- Si migras a Syspanel, recuerda que el acceso es por el puerto 2106 y que el proceso es similar aunque con otra interfaz.
Con estos pasos, tendrás tus bases de datos más seguras y organizadas. Si tienes alguna duda, deja un comentario o consulta la documentación oficial de Plesk. ¡Buena suerte con tus proyectos!
