Cómo gestionar usuarios y permisos de una base de datos MySQL en Plesk
Introducción: Por qué es importante gestionar bien usuarios y permisos en MySQL
Cuando tienes una web, es muy probable que uses una base de datos para guardar tu contenido, los usuarios de tu tienda online, los comentarios de tu blog o los pedidos de tu negocio. En el panel de control Plesk, una de las tareas más habituales —y también de las que más quebraderos de cabeza dan— es la gestión de las bases de datos MySQL y, sobre todo, el control de quién puede acceder a ellas y con qué nivel de permisos.
Imagina que tu base de datos es como un edificio con varias plantas. El usuario administrador sería el dueño del edificio, con llaves para todo. Pero no todo el mundo que trabaja en el edificio necesita acceso a la sala de máquinas o a la caja fuerte. Por eso, crear usuarios específicos con permisos limitados es una de las mejores prácticas de seguridad Plesk que puedes aplicar.
En este artículo, te voy a explicar paso a paso, y sin tecnicismos innecesarios, cómo crear, modificar y eliminar usuarios base de datos en Plesk, cómo asignarles los permisos correctos y qué errores comunes debes evitar. Al final, tendrás un control total sobre quién entra en tu base de datos y qué puede hacer dentro de ella.
¿Qué es un usuario de base de datos y qué son los permisos?
Antes de ponernos manos a la obra, vamos a aclarar dos conceptos básicos.
Un usuario de base de datos es una cuenta que se crea dentro de MySQL para conectarse a una base de datos concreta. Esta cuenta tiene un nombre y una contraseña. Cuando una aplicación web (por ejemplo, WordPress o PrestaShop) necesita leer o escribir información, lo hace usando ese usuario.
Los permisos son los "poderes" que le das a ese usuario. Puedes permitirle que solo lea datos (SELECT), que también los modifique (INSERT, UPDATE), que borre registros (DELETE), o incluso que altere la estructura de las tablas (ALTER, CREATE, DROP). Si le das demasiados permisos a un usuario que no los necesita, corres el riesgo de que un error en tu web o un atacante pueda causar daños graves.
En Plesk, la gestión de estos usuarios se hace desde la sección de Bases de datos del dominio o suscripción. Es un proceso muy visual y guiado, pero hay que entender bien qué significa cada opción.
Paso 1: Acceder a la gestión de bases de datos en Plesk
Lo primero es entrar en tu panel de Plesk. Normalmente, la URL de acceso es algo como https://tu-dominio.com:8443 o https://tuservidor:8443. Una vez dentro, sigue estos pasos:
- En el menú lateral izquierdo, busca la sección Bases de datos.
- Se te mostrará un listado con todas las bases de datos que tienes en ese dominio o suscripción.
- Junto a cada base de datos, verás una serie de iconos. Busca el que dice "Usuarios" o haz clic directamente sobre el nombre de la base de datos para ver sus opciones.
Dentro de la página de la base de datos, encontrarás una pestaña o subsección llamada "Usuarios". Aquí es donde trabajaremos.
Paso 2: Crear un nuevo usuario para tu base de datos MySQL
Crear un usuario es muy sencillo. Vamos a ello.
- En la pestaña "Usuarios", haz clic en el botón "Agregar usuario" o "Crear nuevo usuario".
- Se abrirá un formulario con los siguientes campos:
- Nombre de usuario: Elige un nombre descriptivo. Por ejemplo,
wp_usuario_blog. Evita nombres genéricos comoadminoroot, ya que son los primeros que intentan los atacantes. - Contraseña: Es importante que sea robusta. Mezcla mayúsculas, minúsculas, números y símbolos. Plesk suele tener un indicador de fuerza de la contraseña que te ayuda a saber si es segura.
- Confirmar contraseña: Repite la misma contraseña para evitar errores.
- Nombre de usuario: Elige un nombre descriptivo. Por ejemplo,
- Haz clic en "Aceptar" o "OK".
[TIP] No uses la misma contraseña para el usuario de la base de datos que para el acceso a tu panel de Plesk o a tu correo electrónico. Si una se ve comprometida, las demás estarán a salvo.
Al crear el usuario, Plesk no le asigna permisos automáticamente sobre la base de datos. De hecho, te preguntará si quieres asignarlo a una base de datos existente y con qué privilegios. Si no lo hizo, no te preocupes, ahora te enseño a configurarlos.
Paso 3: Asignar permisos al usuario (el corazón de la gestión)
Aquí es donde tienes que pensar qué va a hacer ese usuario. No es lo mismo un usuario que solo necesita leer datos para mostrar un listado público, que uno que va a instalar una aplicación y necesita crear tablas.
En Plesk, al editar un usuario o al asignarlo a una base de datos, verás una lista de casillas con los diferentes permisos de MySQL. Estos son los más comunes y su significado:
- SELECT (Consultar): Permite leer datos. Es el permiso más básico y seguro.
- INSERT (Insertar): Permite añadir nuevas filas o registros.
- UPDATE (Actualizar): Permite modificar filas existentes.
- DELETE (Borrar): Permite eliminar filas.
- CREATE (Crear): Permite crear nuevas tablas o bases de datos.
- ALTER (Modificar estructura): Permite cambiar la estructura de una tabla existente (añadir columnas, etc.).
- DROP (Eliminar tablas): Permite borrar tablas completas. Este es muy peligroso.
- INDEX (Índices): Permite crear o eliminar índices para acelerar las búsquedas.
- REFERENCES (Referencias): Permite crear claves foráneas.
- CREATE TEMPORARY TABLES: Permite crear tablas temporales.
- LOCK TABLES (Bloquear tablas): Permite bloquear tablas para evitar que otros usuarios las modifiquen mientras se hace una operación.
- GRANT OPTION (Opción de concesión): Permite al usuario dar sus permisos a otros usuarios. Evita este permiso a toda costa para usuarios no administradores.
¿Qué permisos elijo según el caso?
Para que te hagas una idea clara, te doy algunas recomendaciones:
- Aplicación web típica (WordPress, Joomla, PrestaShop): Esta aplicación necesita hacer de todo: leer, escribir, borrar, crear tablas... En este caso, lo más práctico es darle todos los permisos excepto
GRANT OPTION. Es lo que suele hacer el instalador automático de Plesk. - Usuario de solo lectura (por ejemplo, para un informe o un usuario secundario): Marca únicamente
SELECT. Así, si alguien roba esa contraseña, no podrá modificar ni borrar nada. - Usuario para una aplicación de terceros que solo muestra datos: Igual que el anterior, solo
SELECTy quizásINDEXsi hace consultas complejas.
[WARNING] Si tu web da errores de tipo "Permiso denegado" al intentar instalar un plugin o al guardar contenido, es muy probable que el usuario no tenga suficientes permisos. Revisa que tenga, como mínimo, SELECT, INSERT, UPDATE y DELETE. Si el error persiste, añade CREATE y ALTER.
Paso 4: Modificar o eliminar usuarios existentes
Con el tiempo, es posible que necesites cambiar la contraseña de un usuario o revocarle el acceso. En Plesk es igual de fácil.
Para cambiar la contraseña o los permisos:
- Ve a la lista de usuarios de la base de datos.
- Haz clic en el nombre del usuario que quieras modificar.
- Verás la opción de "Cambiar contraseña" y la sección de "Permisos" con todas las casillas.
- Modifica lo que necesites y guarda los cambios.
Para eliminar un usuario:
- En la lista de usuarios, marca la casilla junto al usuario que quieras borrar.
- Haz clic en el botón "Eliminar".
- Confirma la acción.
[INFO] Si eliminas un usuario que una aplicación está utilizando, la aplicación dejará de funcionar inmediatamente, ya que no podrá conectarse a la base de datos. Asegúrate de actualizar la configuración de la aplicación con un nuevo usuario antes de eliminar el antiguo.
Seguridad Plesk: Buenas prácticas con usuarios y permisos
La gestión de usuarios no es solo un trámite administrativo; es una parte fundamental de la seguridad Plesk. Aquí tienes una lista de buenas prácticas que deberías seguir siempre:
- Principio de mínimo privilegio: Esta es la regla de oro. Dale a cada usuario solo los permisos que necesita para funcionar. Si una tarea se puede hacer con
SELECT, no le desDELETE. - Usuarios separados: No uses el mismo usuario para todo. Si tienes dos aplicaciones (por ejemplo, un blog y una tienda), crea dos bases de datos y dos usuarios diferentes. Así, si una aplicación es hackeada, el atacante no tendrá acceso a los datos de la otra.
- Contraseñas robustas y únicas: Ya lo he mencionado, pero es tan importante que lo repito. Usa el generador de contraseñas de Plesk si es posible.
- Revisa periódicamente los permisos: Haz una auditoría cada pocos meses. Elimina usuarios que ya no se usen y revisa si algún usuario tiene más permisos de los necesarios.
- Cuidado con los permisos globales: En Plesk, cuando creas un usuario, puedes asignarlo a una base de datos concreta, pero también existe la opción de darle acceso a todas las bases de datos del dominio. Evita esto a menos que sea estrictamente necesario.
- No uses el usuario
rootde MySQL: Este usuario tiene control total sobre todas las bases de datos del servidor. Nunca lo uses para una aplicación web. Plesk no te lo permite fácilmente, pero es importante que lo sepas para no intentar configurarlo a mano.
Errores comunes y cómo solucionarlos
Aquí tienes una pequeña sección tipo FAQ para resolver las dudas más habituales:
"Mi aplicación dice 'Access denied for user'..."
Esto significa que el usuario no tiene permisos para conectarse a la base de datos. Revisa que el nombre de usuario y la contraseña en el archivo de configuración de tu aplicación coincidan con los que has creado en Plesk y que el usuario esté asignado a la base de datos correcta.
"He creado un usuario con todos los permisos, pero no puede instalar un plugin..."
Asegúrate de que has marcado también los permisos CREATE, ALTER y DROP. Algunas aplicaciones necesitan crear tablas nuevas durante la instalación de complementos. Si aun así falla, revisa que el usuario tenga el permiso REFERENCES.
"¿Puedo usar el mismo usuario para dos bases de datos diferentes?"
Sí, en Plesk puedes asignar un usuario a varias bases de datos. Sin embargo, es más seguro crear un usuario por base de datos. Si lo haces, recuerda que los permisos se configuran por base de datos, así que tendrás que asignarlos en cada una.
"He cambiado la contraseña del usuario y ahora mi web no funciona."
Es normal. Al cambiar la contraseña, debes actualizar el archivo de configuración de tu aplicación (por ejemplo, wp-config.php en WordPress) con la nueva contraseña. Si no sabes cómo, puedes usar el administrador de archivos de Plesk para editarlo.
"¿Qué es eso de 'GRANT OPTION'?"
Es un permiso especial que permite al usuario otorgar sus propios permisos a otros usuarios. Es muy útil para un administrador, pero muy peligroso para una aplicación normal. Si un atacante obtiene acceso a un usuario con GRANT OPTION, podría crear otros usuarios maliciosos. Déjalo siempre sin marcar para usuarios de aplicaciones.
Alternativas: Syspanel y otros paneles
Aunque este artículo se centra en Plesk, es bueno saber que otros paneles de control como Syspanel (anteriormente conocido como HestiaCP) ofrecen funcionalidades similares. En Syspanel, que se accede a través del puerto 2106, la gestión de bases de datos se realiza desde la sección "Bases de datos" y el proceso es bastante parecido: se crea la base de datos, luego el usuario y se le asignan los privilegios mediante casillas. La lógica de los permisos de MySQL es universal, así que todo lo explicado aquí sobre qué permisos son necesarios te servirá también si algún día trabajas con Syspanel.
[INFO] Recuerda que Syspanel es el nuevo nombre de HestiaCP y su panel de administración se encuentra en https://tu-servidor:2106. La filosofía de gestión de usuarios y permisos es la misma que en Plesk, aunque la interfaz cambia un poco.
Conclusión: Toma el control de tu base de datos
Gestionar los usuarios base de datos y sus permisos en Plesk no tiene por qué ser complicado. Es una tarea que, bien hecha, te ahorrará muchos dolores de cabeza en el futuro y aumentará la seguridad Plesk de tus aplicaciones.
Recuerda la regla de oro: menos es más. No le des a un usuario más permisos de los que necesita. Crea usuarios separados para cada aplicación y utiliza contraseñas robustas. Con estos sencillos pasos, tendrás tu base de datos MySQL perfectamente protegida y bajo control.
Si tienes alguna duda sobre algún permiso concreto, no dudes en consultar la documentación oficial de Plesk o preguntar a tu proveedor de hosting. Y si algún día ves un error de permisos, ya sabes: revisa la configuración del usuario y los permisos que le has asignado. ¡Suele ser la solución!
