PostgreSQL 🐘 : Almacenar credenciales de forma segura en archivo pgpass
Cuando trabajas con bases de datos PostgreSQL y en general, una de las tareas más comunes es conectarte a la base de datos desde la línea comandos usando el cliente psql
. Sin embargo, cada vez que te conectas, PostgreSQL te pedirá la contraseña. Esto puede resultar tedioso, especialmente cuando automatizas tareas o trabajas con scripts. Para evitar este inconveniente, PostgreSQL ofrece una herramienta llamada pgpass
, que permite almacenar las credenciales de acceso de manera segura y automática, evitando la necesidad de ingresar la contraseña cada vez que te conectas. En este post veremos cómo crear y utilizar el archivo pgpass
.
¿Cómo utilizar el archivo pgpass?
Crear el archivo pgpass
- Abrimos una terminal o símbolo del sistema.
- Crear el archivo
pgpass
en la ubicación que corresponda según tu sistema operativo.
La ubicación del archivo en Linux/macOS normalmente se encuentra en el directorio de inicio de tu usuario (Ej:
~/.pgpass
). Para crear el archivo ejecuta el siguiente comando:1
touch ~/.pgpass
En Windows debes buscar el destino de instalación, puede ser algo como
C:\Users\<usuario>\AppData\Roaming\postgresql\pgpass.conf
. Una vez encontrado, ejecuta el siguiente comando:1
echo '' > pgpass.conf
Formato del archivo pgpass
El archivo pgpass
tiene un formato muy sencillo, donde cada línea describe las credenciales para una conexión específica. La estructura es la siguiente:
1
hostname:port:database:username:password
hostname
: El nombre del host del servidor de la base de datos. Si la base de datos está en tu máquina local, usamoslocalhost
.port
: El puerto en el que PostgreSQL está escuchando. El puerto predeterminado es5432
, aunque puede ser otro si lo has configurado de manera diferente.database
: El nombre de la base de datos a la que deseas conectarte.username
: El nombre de usuario con el que te conectarás a la base de datos.password
: La contraseña asociada a ese usuario.
Añadir las credenciales
Escribe las credenciales necesarias en el archivo pgpass
siguiendo el formato indicado anteriormente. Puedes agregar tantas entradas como necesites, una por línea.
Ejemplo:
1
localhost:5432:postgres:admin:secreta123
Conectarse a PostgreSQL sin ingresar la contraseña
Con el archivo pgpass
configurado correctamente, ahora puedes conectarte a PostgreSQL de la siguiente manera:
1
psql -h localhost -U admin -d postgres
PostgreSQL leerá la contraseña desde el archivo pgpass
y se conectará automáticamente.
Mi lema es