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: