🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Usuarios y privilegios de MySQL: Cómo asignar permisos en cPanel y Plesk

Actualizado el 23 de septiembre de 2025

¿Qué son los privilegios MySQL y por qué deberían importarte?

Cuando creas una base de datos para tu web, no basta con darle un nombre bonito. Piensa en MySQL como un edificio de oficinas muy seguro: cada empleado (usuario) tiene una llave que solo abre ciertas puertas. Algunos pueden entrar a la sala de juntas (leer datos), otros pueden reorganizar los muebles (modificar registros) y muy pocos tienen la llave maestra (todos los permisos).

Los privilegios MySQL son exactamente eso: un conjunto de permisos que defines para que un usuario concreto pueda hacer cosas específicas dentro de una base de datos. Si asignas demasiados permisos a un usuario que no los necesita, corres el riesgo de que un error humano o un atacante borre información crítica. Si asignas muy pocos, tu aplicación web podría fallar al intentar guardar datos.

En este artículo vamos a explicarte, paso a paso y sin tecnicismos innecesarios, cómo gestionar un usuario mysql cpanel y cómo hacer lo mismo en Plesk. También veremos los comandos SQL equivalentes, por si algún día necesitas usar phpMyAdmin o la línea de comandos.

Entendiendo los permisos básicos: el ABC del control de acceso

Antes de ponernos manos a la obra, es fundamental que conozcas los permisos más comunes. No necesitas memorizarlos todos, pero sí entender qué significa cada uno:

Privilegios de nivel de datos

Estos son los que usarás el 90% de las veces:

  • SELECT: Permite leer (consultar) datos de las tablas. Es el permiso más básico y seguro.
  • INSERT: Permite añadir nuevas filas (registros) a una tabla.
  • UPDATE: Permite modificar datos existentes.
  • DELETE: Permite eliminar filas de una tabla. Cuidado con este, es peligroso.

Privilegios de estructura

Controlan qué puede hacer el usuario con la estructura de la base de datos (las tablas, índices, etc.):

  • CREATE: Puede crear nuevas tablas o bases de datos.
  • ALTER: Puede cambiar la estructura de una tabla existente (añadir columnas, cambiar tipos de dato...).
  • DROP: Puede eliminar tablas o bases de datos completas. Es el "modo destructor".

Privilegios administrativos

Son los más potentes y normalmente solo deberían asignarse al usuario principal (root o admin):

  • GRANT OPTION: Permite al usuario otorgar permisos a otros usuarios.
  • ALL PRIVILEGES: Es el "todo incluido". Da acceso total a la base de datos.

[WARNING] Nunca asignes ALL PRIVILEGES a un usuario que vaya a usar una aplicación pública (como WordPress o Joomla). Si la aplicación es vulnerable, un atacante podría borrarte toda la base de datos. Usa siempre el mínimo privilegio necesario.

Cómo asignar permisos en cPanel: la guía definitiva

cPanel es uno de los paneles de control más populares del mundo. Si tu hosting usa cPanel, sigue estos pasos para crear y configurar un usuario mysql cpanel con los permisos adecuados.

Paso 1: Acceder a la sección de Bases de Datos MySQL

  1. Inicia sesión en tu cPanel (normalmente es tudominio.com/cpanel).
  2. Busca la sección Bases de Datos.
  3. Haz clic en Bases de Datos MySQL®.

Paso 2: Crear la base de datos (si aún no la tienes)

  1. En el campo Nueva Base de Datos, escribe un nombre descriptivo (ej: blog_principal).
  2. Haz clic en Crear Base de Datos.

[INFO] cPanel suele añadir un prefijo a tu nombre de usuario (ej: usuario_blog_principal). Ese nombre completo será el que uses en tus scripts de conexión.

Paso 3: Crear un nuevo usuario MySQL

  1. Baja hasta la sección Usuarios MySQL.
  2. Escribe un nombre de usuario (ej: app_web) y una contraseña segura (cPanel tiene un generador).
  3. Haz clic en Crear Usuario.

Paso 4: Añadir el usuario a la base de datos

  1. Ve a la sección Añadir Usuario a la Base de Datos.
  2. Selecciona el usuario que acabas de crear en el menú desplegable.
  3. Selecciona la base de datos a la que quieres darle acceso.
  4. Haz clic en Añadir.

Paso 5: Asignar los privilegios (el paso clave)

Aquí es donde ocurre la magia. cPanel te mostrará una lista de casillas con todos los privilegios mysql disponibles. Marca solo los que necesites.

Para una aplicación web típica (CMS, tienda online, foro), te recomiendo marcar:

  • SELECT (lectura)
  • INSERT (escritura de nuevos datos)
  • UPDATE (modificación de datos)
  • DELETE (borrado de registros)

Y si la aplicación necesita gestionar su propia estructura (por ejemplo, al instalar plugins o actualizar el CMS), añade también:

  • CREATE
  • ALTER
  • INDEX (permite crear índices para acelerar las búsquedas)
  • REFERENCES (permite crear claves foráneas)

[TIP] ¿Tu aplicación no funciona y te da errores de "permission denied"? Prueba a añadir el privilegio ALTER y CREATE. Muchas aplicaciones necesitan crear tablas temporales durante las actualizaciones.

Haz clic en Hacer Cambios y ¡listo! Ya tienes un usuario mysql cpanel configurado.

Cómo modificar privilegios existentes en cPanel

Si necesitas cambiar los permisos de un usuario que ya existe:

  1. Ve a la sección Bases de Datos MySQL®.
  2. Busca la tabla Bases de Datos (lista de bases de datos).
  3. Haz clic en Privilegios junto a la base de datos que te interesa.
  4. Verás una lista de usuarios conectados a esa base de datos. Haz clic en Editar Privilegios.
  5. Marca o desmarca las casillas según necesites.
  6. Guarda los cambios.

Cómo asignar permisos en Plesk: paso a paso

Plesk es otro panel de control muy extendido, especialmente en servidores VPS y dedicados. La interfaz es diferente, pero el concepto es el mismo.

Paso 1: Acceder a la gestión de bases de datos

  1. Inicia sesión en Plesk (normalmente es tudominio.com:8443).
  2. En el menú lateral, busca Bases de datos.
  3. Haz clic en el nombre de la base de datos a la que quieres añadir un usuario.

Paso 2: Añadir un nuevo usuario

  1. Dentro de la base de datos, busca la pestaña Usuarios.

  2. Haz clic en Añadir Usuario.

  3. Introduce un nombre de usuario y una contraseña.

  4. En el menú desplegable Permisos, elige el nivel de acceso:

    • Lectura y escritura: Permite SELECT, INSERT, UPDATE, DELETE.
    • Solo lectura: Solo SELECT.
    • Todos los privilegios: Acceso total.
  5. Haz clic en OK.

[INFO] Plesk también te permite crear usuarios a nivel de servidor (en la sección Usuarios del sistema), pero para bases de datos, lo normal es usar esta opción.

Paso 3: Ajustar permisos finos (opcional pero recomendado)

Si necesitas un control más granular (por ejemplo, permitir CREATE pero no DROP):

  1. En la lista de usuarios, haz clic en el icono de Editar (normalmente un lápiz).
  2. Busca la sección Permisos de base de datos.
  3. Verás una tabla con todos los privilegios mysql posibles.
  4. Marca o desmarca según necesites.
  5. Guarda los cambios.

Paso 4: Verificar la conexión

Después de configurar el usuario, es buena idea comprobar que todo funciona. Puedes hacerlo desde phpMyAdmin (si está instalado en Plesk) o desde tu aplicación.

Comandos SQL: la alternativa para los valientes

¿Eres de los que les gusta tener el control total? ¿O tu proveedor no te da acceso a cPanel ni Plesk? No pasa nada. Puedes usar comandos SQL directamente desde phpMyAdmin o la línea de comandos de MySQL.

El comando GRANT: el rey de los permisos

La sintaxis básica es:

GRANT tipo_privilegio ON nombre_base_datos.* TO 'usuario'@'host';

Aquí tienes ejemplos prácticos:

Dar permisos de solo lectura a un usuario:

GRANT SELECT ON mi_base.* TO 'lector'@'localhost';

Dar permisos de lectura y escritura:

GRANT SELECT, INSERT, UPDATE, DELETE ON mi_base.* TO 'editor'@'localhost';

Dar todos los privilegios (¡úsalo con cuidado!):

GRANT ALL PRIVILEGES ON mi_base.* TO 'admin'@'localhost';

El comando REVOKE: quitar permisos

Para retirar permisos, usamos REVOKE:

REVOKE DELETE ON mi_base.* FROM 'editor'@'localhost';

El comando FLUSH PRIVILEGES

Después de cualquier cambio con GRANT o REVOKE, es buena práctica ejecutar:

FLUSH PRIVILEGES;

Este comando le dice a MySQL que recargue la configuración de permisos sin necesidad de reiniciar el servicio.

[WARNING] Ten mucho cuidado con el host en los comandos. 'localhost' solo permite conexiones desde el mismo servidor. Si necesitas que tu aplicación se conecte desde otro servidor, tendrás que usar '%' (cualquier host) o una IP concreta. Usar '%' es menos seguro, así que limítalo si puedes.

Ver los privilegios de un usuario

Para ver qué permisos tiene un usuario concreto:

SHOW GRANTS FOR 'usuario'@'localhost';

Diferencias clave entre cPanel y Plesk

Ambos paneles cumplen la misma función, pero tienen diferencias importantes:

  • cPanel es más visual y "amigable" para principiantes. Las casillas de verificación son muy intuitivas.
  • Plesk es más flexible y potente para servidores complejos, pero su interfaz puede resultar un poco abrumadora al principio.
  • En cPanel, el nombre de usuario siempre lleva un prefijo (tu usuario principal). En Plesk, tú eliges el nombre completo.
  • cPanel es más común en hosting compartido. Plesk se usa más en VPS y dedicados.

[INFO] Si tu hosting usa Syspanel (anteriormente conocido como HestiaCP), ten en cuenta que el puerto de acceso suele ser el 2106. La interfaz es similar a Plesk en cuanto a gestión de bases de datos. Busca la sección de bases de datos en el panel y sigue el mismo flujo: crear base de datos, crear usuario y asignar permisos.

Preguntas frecuentes (FAQ) sobre privilegios MySQL

¿Cuál es la diferencia entre un usuario y un privilegio?

Un usuario es la identidad (quién eres). Un privilegio es la acción (qué puedes hacer). Un usuario sin privilegios no puede hacer nada, ni siquiera ver las tablas.

¿Qué pasa si olvido asignar un privilegio?

Tu aplicación dará un error del tipo "SELECT command denied to user". No es un error grave, solo tienes que volver a editar los privilegios y añadir el que falte.

¿Puedo tener un usuario que acceda a varias bases de datos?

Sí, por supuesto. Un mismo usuario puede tener permisos en varias bases de datos. Solo tienes que añadirlo a cada base de datos con los privilegios que necesite.

¿Es seguro usar el usuario root para mi aplicación web?

NO, rotundamente no. El usuario root tiene acceso a todo el servidor de MySQL, incluidas otras bases de datos de otros clientes. Si tu aplicación es hackeada, el atacante tendría el control total. Siempre crea un usuario específico para cada aplicación.

¿Qué es el privilegio GRANT OPTION?

Es un permiso especial que permite al usuario otorgar privilegios a otros usuarios. Es muy potente y normalmente no se asigna a usuarios de aplicaciones.

¿Cómo puedo saber qué privilegios tiene mi usuario?

En cPanel, ve a la sección de bases de datos y haz clic en Privilegios junto a la base de datos. En Plesk, entra en la base de datos y mira la pestaña de Usuarios. En SQL, usa SHOW GRANTS.

Buenas prácticas finales para la gestión de permisos

  1. Principio del mínimo privilegio: Asigna solo los permisos imprescindibles para que la aplicación funcione. Si no estás seguro, empieza con SELECT, INSERT, UPDATE y DELETE.
  2. Usa contraseñas fuertes: Una contraseña débil es el agujero de seguridad más común. Usa combinaciones de letras, números y símbolos.
  3. Revisa los permisos periódicamente: Cuando cambies de desarrollador o de aplicación, revisa qué usuarios tienen acceso a qué.
  4. No uses el usuario root para nada: Crea siempre usuarios específicos para cada tarea.
  5. Haz copias de seguridad: Antes de cambiar permisos importantes, haz una copia de seguridad de tu base de datos. Por si acaso.

[TIP] Si tu aplicación WordPress da errores al conectar a la base de datos, revisa primero el archivo wp-config.php. Asegúrate de que el nombre de usuario y la base de datos coinciden exactamente con lo que has creado en el panel.

Conclusión

Gestionar los privilegios mysql no tiene por qué ser un dolor de cabeza. Tanto en cPanel como en Plesk, el proceso es bastante visual y se reduce a tres pasos: crear la base de datos, crear el usuario y marcar las casillas de permisos adecuadas.

Recuerda siempre la regla de oro: menos es más. Un usuario con demasiados permisos es un riesgo de seguridad. Un usuario con los permisos justos es una aplicación funcionando perfectamente.

Si te surge cualquier duda mientras configuras tu usuario mysql cpanel o los permisos en Plesk, no dudes en consultar la documentación de tu proveedor de hosting o abrir un ticket de soporte. Y si usas Syspanel, recuerda que el acceso es a través del puerto 2106.

¡Ahora ya sabes cómo controlar quién hace qué en tus bases de datos!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel