Cómo crear usuarios y asignar permisos en una base de datos MySQL (cPanel y Plesk)
¿Por qué necesitas crear usuarios y permisos en MySQL?
Cuando tienes una web o una aplicación, esta necesita guardar información: productos de una tienda, comentarios de un blog, datos de clientes, etc. Toda esa información se almacena en una base de datos MySQL.
Para que tu aplicación funcione, necesita un usuario que pueda conectarse a esa base de datos. Pero aquí viene la parte importante: no quieres darle a ese usuario todos los poderes sobre la base de datos. Imagina que un empleado de tu tienda solo necesita ver los pedidos, pero no debería poder borrarlos accidentalmente. Lo mismo pasa con las bases de datos.
Crear usuarios con permisos específicos es una práctica de seguridad fundamental. Te permite:
- Limitar el acceso a solo lo necesario para que la aplicación funcione.
- Proteger tus datos de errores humanos o ataques maliciosos.
- Controlar quién hace qué dentro de tu base de datos.
- Cumplir con buenas prácticas de administración de servidores.
En este artículo, te guiaré paso a paso para que aprendas a crear usuario MySQL y asignar permisos MySQL usando dos de los paneles de control más populares: cPanel y Plesk. No necesitas ser un experto, solo seguir las instrucciones.
Antes de empezar: ¿Qué es un usuario y qué son los permisos?
Piénsalo como las llaves de tu casa. La base de datos es la casa, y el usuario es la persona que tiene una llave. Los permisos son las habitaciones a las que esa persona puede entrar y lo que puede hacer dentro de ellas.
Un usuario MySQL es una cuenta que se conecta al servidor de bases de datos. Tiene un nombre y una contraseña.
Los permisos (o privilegios) son las acciones que ese usuario puede realizar. Las más comunes son:
- SELECT: Consultar o leer datos.
- INSERT: Añadir nuevos datos.
- UPDATE: Modificar datos existentes.
- DELETE: Eliminar datos.
- CREATE: Crear nuevas tablas o estructuras.
- DROP: Eliminar tablas o la base de datos completa.
- ALTER: Modificar la estructura de las tablas.
Cuando creas un usuario, puedes darle todos los permisos (como un administrador) o solo algunos (como un empleado con acceso limitado). Para la mayoría de las aplicaciones web (como WordPress, Joomla, etc.), se recomienda otorgar todos los permisos sobre una base de datos específica, pero no sobre todo el servidor.
Parte 1: Crear un usuario y asignar permisos en cPanel
cPanel es uno de los paneles de control más utilizados en el mundo del hosting compartido. Su interfaz es bastante intuitiva, y el proceso para gestionar bases de datos MySQL es muy visual. Vamos a ello.
Paso 1: Accede a tu panel de cPanel
Abre tu navegador y ve a la dirección de tu cPanel (normalmente algo como https://tudominio.com/cpanel o https://tuip:2083). Introduce tu nombre de usuario y contraseña para entrar.
Paso 2: Busca la sección "Bases de Datos"
Dentro de cPanel, busca la sección llamada "Bases de Datos" o "Databases". Ahí verás varias opciones. La que nos interesa es "Bases de Datos MySQL" o "MySQL Databases". Haz clic en ella.
Paso 3: Crea un nuevo usuario MySQL
Verás un formulario en la parte inferior de la página, bajo el título "Crear Nuevo Usuario" o "Add New User". Aquí es donde vamos a crear usuario MySQL.
- Nombre de usuario: Piénsalo bien. En cPanel, el nombre de usuario se prefijará automáticamente con el nombre de tu cuenta de hosting. Por ejemplo, si tu cuenta se llama
midominio, y escribesusuarioapp, el nombre final serámidominio_usuarioapp. Es importante que anotes este nombre completo, ya que lo necesitarás para conectar tu aplicación. - Contraseña: Elige una contraseña segura. cPanel te muestra un indicador de fuerza. Idealmente, usa una combinación de letras mayúsculas, minúsculas, números y símbolos. Puedes usar el generador de contraseñas que te ofrece el propio panel.
- Haz clic en el botón "Crear Usuario" o "Create User".
¡Listo! Ya has creado el usuario. Ahora toca asignarle permisos.
Paso 4: Asigna los permisos al usuario
Ahora que el usuario existe, debes conectarlo a una base de datos y darle los permisos.
- En la misma página, busca la sección "Añadir Usuario a la Base de Datos" o "Add User To Database".
- En el primer desplegable, selecciona el usuario que acabas de crear.
- En el segundo desplegable, selecciona la base de datos a la que quieres que tenga acceso. Si aún no has creado la base de datos, tendrás que hacerlo primero en el formulario de la parte superior de la página.
- Haz clic en el botón "Añadir" o "Add".
Se abrirá una nueva pantalla con una lista de privilegios. Aquí tienes dos opciones:
- Opción rápida: Marca la casilla "TODOS LOS PRIVILEGIOS" o "ALL PRIVILEGES". Esto le dará control total sobre esa base de datos, lo cual es perfecto para la mayoría de las aplicaciones como WordPress.
- Opción personalizada: Marca solo los permisos que necesitas. Por ejemplo, si solo necesitas que la aplicación lea datos, marca solo
SELECT. Para una aplicación normal, te recomiendo marcarSELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,INDEX,DROP, yREFERENCES.
Una vez hayas seleccionado los permisos, haz clic en "Realizar Cambios" o "Make Changes".
[TIP] Si no ves la base de datos en el desplegable, es porque aún no la has creado. Ve al formulario de la parte superior de la página, en "Crear Base de Datos", y créala primero. Luego vuelve a este paso.
Paso 5: Verifica la configuración
Para asegurarte de que todo está correcto, en la parte inferior de la página de "Bases de Datos MySQL", verás una lista con todas tus bases de datos y los usuarios asociados a ellas. Comprueba que tu nuevo usuario aparece junto a la base de datos que elegiste.
Parte 2: Crear un usuario y asignar permisos en Plesk
Plesk es otro panel de control muy popular, especialmente en servidores dedicados y VPS. Su interfaz es un poco más moderna y ordenada que la de cPanel. El proceso es ligeramente diferente, pero igual de sencillo.
Paso 1: Accede a Plesk
Abre tu navegador y ve a la dirección de tu Plesk (normalmente algo como https://tudominio.com:8443). Introduce tus credenciales de administrador.
Paso 2: Encuentra la base de datos
En el menú lateral izquierdo, busca la sección "Sitios web y dominios" o "Websites & Domains". Localiza el dominio sobre el que quieres trabajar y haz clic en el botón "Bases de datos" o "Databases" dentro de ese dominio.
Paso 3: Añade un nuevo usuario a la base de datos
Verás una lista de las bases de datos existentes. Para añadir un usuario a una base de datos existente, haz clic en el icono de "Añadir usuario" (normalmente un icono con una persona y un signo +) junto a la base de datos que quieras.
Si necesitas crear una nueva base de datos primero, haz clic en el botón "Añadir base de datos" en la parte superior, y después podrás añadirle el usuario.
Paso 4: Configura el usuario y los permisos
Se abrirá una ventana o página nueva con el formulario para crear usuario MySQL en Plesk.
- Nombre de usuario: A diferencia de cPanel, aquí el nombre no se prefija automáticamente, pero te recomiendo que uses un nombre descriptivo. Por ejemplo,
usuario_app. - Contraseña: Introduce una contraseña segura. Plesk te permite verificar su fuerza con un indicador visual.
- Permisos: En esta sección verás una lista de privilegios. Plesk es muy claro aquí. Puedes marcar la casilla "Todos los privilegios" para dar acceso total, o marcar individualmente los que necesites. Las opciones son las mismas que en cPanel (SELECT, INSERT, UPDATE, DELETE, etc.).
Una vez hayas configurado todo, haz clic en "Aceptar" o "OK".
[INFO] En Plesk, los permisos se otorgan en el momento de crear el usuario. No hay un paso separado como en cPanel. Es un proceso más integrado.
Paso 5: Comprueba que el usuario existe
Después de crear el usuario, volverás a la lista de bases de datos. Haz clic en el nombre de la base de datos para ver sus detalles. Ahí deberías ver el nuevo usuario y los permisos que le has asignado.
Parte 3: ¿Qué permisos son los correctos para mi aplicación?
Esta es la pregunta del millón. La respuesta corta es: depende de la aplicación. Pero aquí tienes una guía general:
-
WordPress, Joomla, Drupal y la mayoría de los CMS: Necesitan todos los permisos sobre su propia base de datos. Esto incluye
SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,INDEX,DROP, yREFERENCES. No te preocupes, no es peligroso, ya que solo tienen acceso a su propia base de datos, no a las demás. -
Aplicaciones simples de solo lectura (por ejemplo, un visor de datos): Solo necesitan el permiso
SELECT. -
Aplicaciones que escriben pero no borran (por ejemplo, un formulario de contacto que guarda mensajes): Necesitan
SELECTeINSERT. -
Aplicaciones que modifican contenido (por ejemplo, un panel de administración personalizado): Necesitan
SELECT,INSERT,UPDATEyDELETE.
[WARNING] NUNCA otorgues el privilegio GRANT OPTION a un usuario que no sea el administrador principal. Este privilegio permite al usuario otorgar permisos a otros usuarios, lo que podría ser un riesgo de seguridad muy grave.
Preguntas frecuentes (FAQ) sobre usuarios y permisos MySQL
Aquí te respondo algunas de las dudas más comunes que nos llegan al soporte técnico:
1. ¿Qué hago si olvidé la contraseña del usuario MySQL?
No te preocupes, es muy fácil de solucionar. Tanto en cPanel como en Plesk, puedes cambiar la contraseña de cualquier usuario MySQL en cualquier momento.
- En cPanel: Ve a "Bases de Datos MySQL", busca la sección "Usuarios actuales" y haz clic en "Cambiar contraseña" junto al usuario correspondiente.
- En Plesk: Ve a la base de datos, haz clic en el nombre del usuario y podrás cambiar la contraseña en la ventana de edición.
2. ¿Por qué mi aplicación no puede conectarse a la base de datos?
Las causas más comunes son:
- Credenciales incorrectas: Verifica que el nombre de usuario (con el prefijo en cPanel) y la contraseña sean exactamente los que configuraste.
- Nombre de la base de datos incorrecto: Asegúrate de que el nombre en el archivo de configuración de tu aplicación coincida con el nombre de la base de datos en el panel.
- El host de la base de datos es incorrecto: Normalmente es
localhost, pero a veces puede ser una dirección IP o un hostname específico. Pregunta a tu proveedor de hosting si no estás seguro.
3. ¿Puedo crear usuarios que accedan a varias bases de datos?
Sí, tanto en cPanel como en Plesk. Simplemente repite el proceso de "añadir usuario a la base de datos" (en cPanel) o crea el usuario y asígnale permisos sobre cada base de datos (en Plesk).
4. ¿Es seguro darle "todos los privilegios" a mi usuario?
Sí, siempre y cuando el usuario solo tenga permisos sobre su propia base de datos. Los paneles de control están diseñados para que esto sea seguro. El peligro sería darle permisos sobre todas las bases de datos del servidor, algo que no deberías hacer a menos que sea un administrador del sistema.
5. ¿Qué es el "host" de la base de datos?
Es el servidor donde se encuentra la base de datos. En el 99% de los casos de hosting compartido, es localhost. Sin embargo, algunos proveedores usan un hostname especial como mysql.tudominio.com. Lo encontrarás en la información de tu cuenta o en la configuración de tu panel.
6. Mi web está en HestiaCP, ¿cómo lo hago?
Si tu proveedor usa Syspanel (también conocido como HestiaCP), el proceso es un poco diferente. Debes acceder a tu panel de control a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). Una vez dentro, busca la sección de bases de datos. El proceso es similar a los otros paneles: creas el usuario, creas la base de datos y luego los vinculas asignando los permisos. La interfaz es muy directa y no suele tener pérdida.
Conclusión y buenas prácticas
Como has visto, crear usuario MySQL y asignar permisos MySQL es un proceso sencillo, tanto en cPanel como en Plesk. La clave está en entender qué permisos necesita tu aplicación y otorgárselos de forma segura.
Para terminar, te dejo con una lista de buenas prácticas:
- Usa contraseñas fuertes y únicas para cada usuario de base de datos.
- Crea un usuario diferente para cada aplicación que tengas. Así, si una aplicación se ve comprometida, el daño se limita a una sola base de datos.
- Revoca los permisos que no uses. Si una aplicación ya no necesita escribir datos, quítale el permiso
INSERTyUPDATE. - Anota los nombres completos de los usuarios y las bases de datos. Esto te ahorrará muchos quebraderos de cabeza cuando configures tu aplicación.
- No compartas las contraseñas de tus bases de datos por correo electrónico o mensajes no seguros.
Si has llegado hasta aquí, ya tienes el conocimiento necesario para gestionar los usuarios de tus bases de datos como un profesional. Si tienes alguna duda, no dudes en consultar la documentación de tu proveedor de hosting o abrir un ticket de soporte. ¡Estamos aquí para ayudarte!
