PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Python łączy się z postgresql za pomocą libpq-pgpass

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 :

  1. Nie nie podaj hasło w ciągu przekazanym do psycopg2.connect
  2. 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przełączanie awaryjne replikacji PostgreSQL 101

  2. psycopg2 nie widzi mojej instancji PostgreSQL

  3. Podczas próby zniszczenia kontrolera pojawia się błąd pg

  4. zła wartość dla typu long:- Postgresql, Hibernate, Spring

  5. Reprezentowanie rzadkich danych w PostgreSQL