Nie importujesz go do swojego Pythona program. Punkt .pgpass
jest to, że jest to zwykły plik podlegający systemowym uprawnieniam do plików, a libpq sterownik do bibliotek, takich jak psycopg2 użyj, aby połączyć się z Postgresem będzie szukać hasła w tym pliku, zamiast wymagać, aby hasło znajdowało się w kodzie źródłowym lub prosić o nie.
Ponadto nie jest to plik po stronie serwera, ale po stronie klienta. Tak więc na polu *nix miałbyś ~/.pgpass
plik zawierający dane uwierzytelniające dla różnych połączeń, które chcesz nawiązać.
Edytuj w odpowiedzi na komentarz OP:
Dwie rzeczy muszą się wydarzyć, aby psycopg2 aby poprawnie uwierzytelnić się przez .pgpass
:
- Nie nie podaj hasło w ciągu przekazanym do
psycopg2.connect
- Upewnij się, że poprawny wpis został dodany do
.pgpass
plik dla użytkownika, który będzie łączył się przez psycopg2 .
Na przykład, aby to działało dla wszystkich baz danych dla konkretnego użytkownika na localhost port 5432 , należy dodać następujący wiersz do pliku .pgpass
tego użytkownika plik:
localhost:5432:*:<username>:<password>
A potem connect
połączenie będzie miało następującą formę:
conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")
Podstawowe libpq sterownik psycopg2 użyje wtedy .pgpass
plik, aby uzyskać hasło.