PostgreSQL es uno de los sistemas de gestión de bases de datos relacionales orientadas a objetos más potentes, estables y populares en el desarrollo web profesional. En este tutorial, te guiaremos paso a paso sobre cómo crear una base de datos PostgreSQL y un usuario exclusivo, asignándole los privilegios adecuados desde la interfaz de línea de comandos (psql).
Aunque el procedimiento de este artículo fue verificado en un entorno bajo Debian 13, la sintaxis y comandos de la shell de base de datos PostgreSQL son perfectamente aplicables a cualquier distribución de Linux.
1. Cómo acceder a la CLI de PostgreSQL (psql)
A diferencia de otros motores que permiten el ingreso directo con comandos globales, la base de datos PostgreSQL utiliza de manera nativa un usuario del sistema operativo llamado postgres para resguardar la seguridad del clúster de bases de datos.
Para iniciar sesión en el servidor de base de datos PostgreSQL y abrir la consola interactiva (psql), ejecuta el siguiente comando en tu terminal Linux utilizando privilegios de administrador:
sudo -u postgres psql
Tras ingresar la instrucción, el servidor te devolverá una cabecera técnica con la versión instalada y cambiará el prompt indicando que te encuentras dentro del entorno de configuración de PostgreSQL:
psql (17.10 (Debian 17.10-0+deb13u1))
Digite "help" para obtener ayuda.
postgres=#

2. Crear una nueva Base de Datos PostgreSQL
Con la sesión iniciada en el prompt postgres=#, procederemos a generar el contenedor lógico para almacenar nuestras tablas e información mediante la sentencia CREATE DATABASE:
CREATE DATABASE mi_base_datos_prod;
💡 Nota de sintaxis: Recuerda que en SQL todas las sentencias y comandos interactivos deben finalizar estrictamente con un punto y coma (;). De lo contrario, la consola se quedará esperando a que completes la instrucción en la línea siguiente.
3. Crear un Usuario Seguro en PostgreSQL
Por estrictas políticas de ciberseguridad y el principio de menor privilegio, nunca debes conectar tus aplicaciones web o sistemas directamente a la cuenta administrativa postgres. En su lugar, crearemos un usuario de base de datos dedicado (también conocido como Role):
CREATE USER ocifuentes WITH PASSWORD 'M1cl4v3Segur4_2026';
Recomendación técnica: Asegúrate de sustituir
ocifuentespor tu nombre de usuario deseado y emplea una contraseña alfanumérica de alta robustez envuelta entre comillas simples.
4. Asignar Permisos y Privilegios sobre la Base de Datos PostgreSQL
El último paso consiste en asociar y conceder permisos de administración globales sobre la base de datos recién creada al nuevo usuario mediante la sentencia GRANT ALL PRIVILEGES:
GRANT ALL PRIVILEGES ON DATABASE mi_base_datos_prod TO ocifuentes;
⚠️ Aviso de Seguridad: El comando anterior asigna un control total (ALL PRIVILEGES) sobre dicha base de datos. Asegúrate de verificar los nombres correspondientes para evitar conceder permisos cruzados en servidores que alojan múltiples proyectos.
Para abandonar la consola interactiva de PostgreSQL y regresar de forma segura a la terminal regular de Linux, simplemente digita el comando interno de escape:
\q
¡Listo! Con estos simples pasos ya cuentas con un entorno aislado, una base de datos limpia y un usuario seguro con privilegios listos para operar en tu servidor Linux.
Para consultas avanzadas revisa la Documentación Oficial de PostgreSQL
Preguntas frecuentes sobre la gestión de PostgreSQL
1. ¿Cómo puedo listar las bases de datos creadas para comprobar que todo esté correcto? Una vez dentro de la consola interactiva psql, puedes listar de forma resumida todas las bases de datos activas en el clúster ejecutando el comando de barra invertida:
\l
(O también puedes usar la consulta SQL estándar: SELECT datname FROM pg_database;)
2. ¿Es necesario ejecutar FLUSH PRIVILEGES en PostgreSQL como en MySQL/MariaDB? No. En PostgreSQL las modificaciones en los esquemas de usuarios, roles y asignación de privilegios se aplican de forma inmediata y en tiempo real en las tablas del sistema. No se requiere ejecutar ninguna instrucción de vaciado de caché o recarga manual.
3. ¿Cómo puedo conectarme a la base de datos específica usando el nuevo usuario creado? Puedes conectarte directamente desde la terminal del sistema operativo sin pasar por la cuenta de root especificando el usuario (-U) y el nombre de la base de datos (-d) mediante la instrucción:
psql -U oscarcifuentes -d mi_base_datos_prod -h localhost
Buenas prácticas de seguridad para tu Base de Datos PostgreSQL
- Restricción del archivo
pg_hba.conf: PostgreSQL controla las conexiones de red mediante un archivo de configuración llamadopg_hba.conf. Asegúrate de que las conexiones entrantes para tus usuarios web exijan encriptación de contraseñas de tiposcram-sha-256y que estén limitadas exclusivamente al segmento local (127.0.0.1/32) a menos que requieras explícitamente un entorno replicado o un servidor de bases de datos remoto. - Separación de Roles por Entorno: Si utilizas el mismo servidor para entornos de pruebas (Staging) y producción (Production), aísla por completo los accesos generando usuarios diferentes para cada base de datos. Esto evitará que una vulnerabilidad o fuga de credenciales en el sitio de pruebas ponga en riesgo la integridad de los datos en producción.
