Sie importieren es nicht in Ihr Python Programm. Der Punkt von .pgpass
ist, dass es sich um eine normale Datei handelt, die den Dateiberechtigungen des Systems unterliegt, und die libpq Treiber welche Bibliotheken wie psycopg2 verwenden, um sich mit Postgres zu verbinden wird in dieser Datei nach dem Passwort suchen, anstatt das Passwort im Quellcode zu verlangen oder danach zu fragen.
Außerdem ist dies keine serverseitige Datei, sondern eine clientseitige. Auf einer *nix-Box hätten Sie also einen ~/.pgpass
Datei mit den Anmeldeinformationen für die verschiedenen Verbindungen, die Sie herstellen möchten.
Bearbeiten als Antwort auf Kommentar von OP:
Für psycopg2 müssen im Wesentlichen zwei Dinge geschehen um sich korrekt über .pgpass
zu authentifizieren :
- Tun Sie nicht Geben Sie ein Passwort in der an
psycopg2.connect
übergebenen Zeichenfolge an - Stellen Sie sicher, dass der richtige Eintrag zu
.pgpass
hinzugefügt wird Datei für den Benutzer, der sich über psycopg2 verbindet .
Zum Beispiel, damit dies für alle Datenbanken eines bestimmten Benutzers auf localhost funktioniert Port 5432 , würden Sie die folgende Zeile zu .pgpass
dieses Benutzers hinzufügen Datei:
localhost:5432:*:<username>:<password>
Und dann das connect
call hätte folgende Form:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
Die zugrunde liegende libpq Treiber, der psycopg2 Benutzer verwenden dann den .pgpass
Datei, um das Passwort zu erhalten.