Non lo importi nel tuo Python programma. Il punto di .pgpass
è che si tratta di un file normale soggetto ai permessi dei file del sistema e a libpq driver quali librerie come psycopg2 usa per connetterti a Postgres cercherà in questo file la password invece di richiedere che la password sia nel codice sorgente o richiederla.
Inoltre, questo non è un file lato server, ma uno lato client. Quindi, su una scatola *nix, avresti un ~/.pgpass
file contenente le credenziali per le varie connessioni che vuoi poter effettuare.
Modifica in risposta al commento di OP:
Due cose principali devono accadere per psycopg2 per autenticarsi correttamente tramite .pgpass
:
- Non non specificare una password nella stringa passata a
psycopg2.connect
- Assicurati che la voce corretta sia aggiunta al
.pgpass
file per l'utente che si connetterà tramite psycopg2 .
Ad esempio, per farlo funzionare per tutti i database per un particolare utente su localhost porta 5432 , dovresti aggiungere la seguente riga al .pgpass
di quell'utente file:
localhost:5432:*:<username>:<password>
E poi il connect
la chiamata sarebbe di questa forma:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
La sottostante libpq driver che psycopg2 userà quindi il .pgpass
file per ottenere la password.