In questo articolo vedremo cos’è e a cosa serve il file .pgpass in postgresql.
Creando nella nostra home un file chiamato .pgpass, è possibile utilizzare i tools da linea di comando di postgresql tipo psql, pg_dump, pg_dumpall ecc. senza dovere inserire ogni volta la password. Questo vuol dire che potremo utilizzare questi programmi anche tramite scripts senza il bisogno di utilizzarti con utenze o permessi speciali.
Per usarlo, prima di tutto creiamo un file .pgpass nella nostra home (o quella dell’utente che userà gli scripts):
touch ~/.pgpass
All’interno di questo file, dobbiamo specificare le combinazioni di nome utente, password e database secondo questa convenzione:
hostname:port:database:username:password
È possibile anche utilizzare l’asterisco come wildcard, quindi per tentare di accedere usando lo stesso username e password su hostnames e porte differenti, basta inserire:
*:*:*:federico:my_looong_db__password
Una volta inseriti i dati, dobbiamo ricordarci di cambiare i permessi del file .pgpass. Se i permessi sono sbagliati, il file verrà allegramente ignorato:
chmod 600 ~/.pgpass
Per saltare la richiesta di password da psql, ci basta aggiungere l’opzione -w –no-password.
Un esempio di run quindi, potrebbe essere questo:
psql -d postgres -U postgres -w pg_dump -U postgres -w -Fc
Referenze:
- Documentazione ufficiale sul file .pgpass