Crear un usuario y asignar privilegios en PostgreSQL con Plesk
¿Necesitas gestionar una base de datos PostgreSQL desde tu panel Plesk y no sabes por dónde empezar? No te preocupes, es más sencillo de lo que parece. En este artículo te guiaré paso a paso para que puedas crear un usuario y asignarle los permisos adecuados (privilegios) en tu base de datos PostgreSQL, todo desde la interfaz de Plesk. Al final, serás capaz de manejar tus accesos a la base de datos como un profesional, sin necesidad de tocar una sola línea de comandos.
¿Qué es PostgreSQL y por qué usarlo con Plesk?
PostgreSQL es un sistema de gestión de bases de datos relacional, potente, de código abierto y muy fiable. Es ideal para aplicaciones web que requieren alta seguridad, transacciones complejas o grandes volúmenes de datos. Plesk es un panel de control de hosting que facilita la administración de servidores, sitios web, correos y, por supuesto, bases de datos. La combinación de ambos te permite tener el control total de tu información sin complicaciones técnicas.
Cuando trabajas con bases de datos, es fundamental separar los permisos de cada usuario. No querrás que un script o una aplicación tenga acceso total a todo el servidor, ¿verdad? Por eso, aprender a crear usuario y asignar privilegios PostgreSQL es clave para la seguridad y el rendimiento de tu proyecto.
Requisitos previos
Antes de empezar, asegúrate de cumplir con lo siguiente:
- Tener acceso a tu panel de Plesk (generalmente a través de
https://tudominio.com:8443o la URL que te haya proporcionado tu proveedor de hosting). - Que tu plan de hosting incluya soporte para PostgreSQL. En Plesk, esto suele estar disponible en planes de servidor dedicado, VPS o algunos planes compartidos avanzados.
- Conocer el nombre de la base de datos a la que quieres añadir el usuario. Si aún no la has creado, puedes hacerlo desde el mismo panel (en la sección "Bases de datos").
[INFO] Si tu hosting utiliza Syspanel (antes conocido como HestiaCP), el proceso es diferente. En ese caso, accede a través del puerto 2106 (ejemplo:
https://tudominio.com:2106) y busca la sección de bases de datos. Sin embargo, este artículo está centrado en Plesk.
Paso 1: Acceder a la sección de Bases de Datos en Plesk
- Inicia sesión en tu panel de Plesk.
- En el menú lateral izquierdo, busca y haz clic en "Bases de datos". Si no lo ves directamente, puede estar dentro de la sección "Sitios web y dominios".
- Se mostrará una lista con todas las bases de datos que tienes creadas (tanto MySQL como PostgreSQL). Localiza la base de datos PostgreSQL a la que deseas añadir un usuario.
[TIP] Si aún no tienes una base de datos PostgreSQL, puedes crearla haciendo clic en "Añadir base de datos". Allí seleccionas el tipo PostgreSQL, le pones un nombre y listo.
Paso 2: Crear un nuevo usuario de base de datos
Una vez dentro de la base de datos, verás una pestaña o sección llamada "Usuarios". Aquí es donde gestionaremos los accesos.
2.1. Añadir el usuario
- Haz clic en el botón "Añadir usuario de base de datos" (o similar, dependiendo de la versión de Plesk).
- Se abrirá un formulario con los siguientes campos:
- Nombre de usuario: Elige un nombre descriptivo, por ejemplo
app_webousuario_blog. Evita caracteres especiales y espacios. - Contraseña: Debe ser segura. Plesk suele ofrecer un generador automático (el candado). Si prefieres ponerla tú, que tenga al menos 8 caracteres, mayúsculas, minúsculas y números.
- Confirmar contraseña: Repite la contraseña.
- Nombre de usuario: Elige un nombre descriptivo, por ejemplo
- Haz clic en "Aceptar" o "Crear".
¡Listo! Ya has creado un usuario. Pero aún no tiene permisos para acceder a la base de datos. Eso lo veremos en el siguiente paso.
[WARNING] Anota el nombre de usuario y la contraseña en un lugar seguro. Si pierdes estos datos, tendrás que restablecer la contraseña desde Plesk, pero no podrás recuperar la original.
Paso 3: Asignar privilegios PostgreSQL al usuario
Ahora viene la parte más importante: definir qué puede hacer ese usuario dentro de la base de datos. Los privilegios PostgreSQL se dividen en varios niveles: sobre la base de datos completa, sobre tablas específicas, o incluso sobre esquemas.
3.1. Privilegios básicos: acceso a la base de datos
Después de crear el usuario, volverás a la lista de usuarios de la base de datos. Verás que el nuevo usuario aparece con un estado "Sin privilegios" o similar.
-
Haz clic en el nombre del usuario o en el icono de edición (lápiz).
-
Se abrirá una ventana con las opciones de privilegios. Aquí podrás marcar las casillas que necesites:
- SELECT: Permite leer datos (consultas). Es el mínimo para que una aplicación web funcione.
- INSERT: Permite añadir nuevos registros.
- UPDATE: Permite modificar registros existentes.
- DELETE: Permite eliminar registros.
- CREATE: Permite crear nuevas tablas, índices, etc.
- DROP: Permite eliminar tablas o estructuras.
- ALTER: Permite modificar la estructura de tablas existentes.
- INDEX: Permite crear índices para mejorar la velocidad de búsqueda.
- REFERENCES: Permite crear restricciones de clave foránea.
- TRIGGER: Permite crear disparadores (triggers).
[INFO] Para la mayoría de aplicaciones web (como WordPress, Joomla, o sistemas hechos a medida), con los permisos SELECT, INSERT, UPDATE, DELETE es suficiente. Los permisos de creación y eliminación de tablas (CREATE, DROP, ALTER) solo son necesarios durante la instalación o actualización de la aplicación.
-
Marca las casillas según las necesidades de tu proyecto.
-
Haz clic en "Aceptar" o "Guardar".
3.2. Privilegios avanzados: esquemas y tablas específicas
En PostgreSQL, los objetos se organizan en esquemas (por defecto, el esquema public). Plesk te permite asignar privilegios a nivel de esquema o incluso a tablas concretas, aunque esto es menos común para usuarios novatos.
Si necesitas restringir el acceso solo a ciertas tablas (por ejemplo, que un usuario solo pueda leer la tabla productos pero no usuarios), tendrás que hacerlo desde la línea de comandos o con herramientas más avanzadas. En Plesk, la interfaz simplifica la asignación a nivel de base de datos completa, que es lo más habitual.
[TIP] Si tu aplicación requiere permisos muy específicos, considera usar el comando
GRANTdirectamente desde la consola de PostgreSQL (acceso SSH). Pero para el 90% de los casos, los privilegios globales de la base de datos son suficientes.
Paso 4: Verificar la conexión del usuario
Una vez asignados los privilegios, es buena idea comprobar que el usuario puede conectarse correctamente. Puedes hacerlo desde la misma interfaz de Plesk o desde una herramienta externa como pgAdmin o DBeaver.
4.1. Desde Plesk
En la lista de bases de datos, junto a tu base PostgreSQL, suele haber un enlace o botón llamado "phpPgAdmin" o "Administrar". Esto abre una interfaz web para gestionar la base de datos.
- Haz clic en ese enlace.
- Inicia sesión con el nombre de usuario y contraseña que acabas de crear.
- Si ves las tablas y puedes ejecutar una consulta simple (por ejemplo,
SELECT * FROM nombre_tabla;), todo funciona correctamente.
4.2. Desde una aplicación o script
Si estás desarrollando, puedes probar la conexión desde un archivo PHP, Python, etc. Por ejemplo, en PHP:
<?php
$host = 'localhost'; // o la IP de tu servidor
$dbname = 'nombre_base_datos';
$user = 'nombre_usuario';
$pass = 'contraseña';
try {
$pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);
echo "Conexión exitosa";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
Si ves "Conexión exitosa", ¡enhorabuena! Has configurado correctamente tu usuario y sus privilegios.
Consejos de seguridad y buenas prácticas
- Principio de mínimo privilegio: Asigna solo los permisos necesarios. Si una aplicación solo necesita leer datos, no le des permisos de escritura.
- Contraseñas fuertes: Usa el generador de Plesk o crea contraseñas largas y aleatorias.
- Rotación de contraseñas: Cambia las contraseñas periódicamente, especialmente si el usuario tiene acceso a datos sensibles.
- Usuarios separados: Si tienes varias aplicaciones en la misma base de datos (no recomendado), crea un usuario distinto para cada una.
- Supervisa los accesos: Revisa de vez en cuando los usuarios creados y elimina aquellos que ya no se necesiten.
[WARNING] Nunca compartas las credenciales de la base de datos en repositorios públicos (GitHub, GitLab, etc.). Usa variables de entorno o archivos de configuración fuera del control de versiones.
Preguntas frecuentes (FAQ)
¿Puedo crear un usuario sin usar Plesk, solo con comandos SQL?
Sí, pero Plesk simplifica el proceso. Si prefieres la línea de comandos, puedes conectarte vía SSH y usar:
CREATE USER nuevo_usuario WITH PASSWORD 'contraseña';
GRANT CONNECT ON DATABASE nombre_base TO nuevo_usuario;
GRANT USAGE ON SCHEMA public TO nuevo_usuario;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO nuevo_usuario;
Pero ten cuidado: Plesk gestiona sus propias tablas de permisos, por lo que es mejor usar su interfaz para evitar conflictos.
¿Qué hago si olvido la contraseña de un usuario?
Desde Plesk, ve a la base de datos, haz clic en el usuario y elige "Cambiar contraseña". No podrás recuperar la anterior, pero puedes establecer una nueva.
¿Por qué mi usuario no puede conectarse desde una aplicación remota?
Por defecto, PostgreSQL solo acepta conexiones locales (localhost). Si necesitas acceso remoto, deberás modificar el archivo pg_hba.conf en el servidor. Esto requiere permisos de administrador del sistema. Consulta con tu proveedor de hosting o, si tienes acceso root, edita la configuración.
¿Plesk soporta PostgreSQL en todos los planes?
No. Muchos planes de hosting compartido solo incluyen MySQL/MariaDB. PostgreSQL suele estar disponible en VPS, servidores dedicados o planes avanzados. Verifica con tu proveedor.
¿Puedo asignar privilegios a nivel de columna?
No desde la interfaz de Plesk. Para eso necesitas usar comandos SQL como GRANT SELECT (columna1, columna2) ON tabla TO usuario;. Pero es un nivel de granularidad muy fino que pocas aplicaciones requieren.
Conclusión
Crear un usuario y asignar privilegios PostgreSQL desde Plesk es un proceso rápido y seguro, ideal para mantener tus aplicaciones funcionando sin exponer datos sensibles. Recuerda siempre aplicar el principio de mínimo privilegio y mantener tus credenciales a buen recaudo.
Ahora ya tienes el conocimiento necesario para gestionar tus bases de datos PostgreSQL como un experto. Si te ha quedado alguna duda, repasa los pasos anteriores o consulta la documentación oficial de Plesk. ¡Buena suerte con tu proyecto!
[TIP FINAL] Si tu hosting usa Syspanel (HestiaCP, puerto 2106), el proceso es diferente pero similar: busca la sección "Bases de datos", selecciona PostgreSQL, crea el usuario y luego asigna los permisos desde la pestaña "Privilegios". Aunque la interfaz varíe, el concepto es el mismo.
