sql >> Database teknologi >  >> RDS >> PostgreSQL

python opret forbindelse til postgresql med libpq-pgpass

Du importerer det ikke til din Python program. Pointen med .pgpass er, at det er en almindelig fil underlagt systemets filtilladelser, og libpq driver, som biblioteker såsom psycopg2 bruge til at oprette forbindelse til Postgres vil se på denne fil efter adgangskoden i stedet for at kræve, at adgangskoden skal være i kildekoden eller bede om den.

Dette er heller ikke en fil på serversiden, men en fil på klientsiden. Så på en *nix-boks vil du have en ~/.pgpass fil, der indeholder legitimationsoplysningerne for de forskellige forbindelser, du ønsker at kunne oprette.

Rediger som svar på kommentar fra OP:

To hovedting skal ske for at psycopg2 kan udføres for at godkende korrekt via .pgpass :

  1. Gør det ikke angiv en adgangskode i strengen, der sendes til psycopg2.connect
  2. Sørg for, at den korrekte post er tilføjet til .pgpass fil for den bruger, der vil oprette forbindelse via psycopg2 .

For eksempel for at få dette til at fungere for alle databaser for en bestemt bruger på localhost port 5432 , vil du tilføje følgende linje til denne brugers .pgpass fil:

localhost:5432:*:<username>:<password>

Og derefter connect opkaldet ville have denne form:

conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")

Den underliggende libpq driver, der psycopg2 uses vil derefter bruge .pgpass fil for at få adgangskoden.



  1. Flere INSERT-sætninger vs. enkelt INSERT med flere VALUES

  2. Minimum længde begrænsning på en kolonne

  3. Tjek svartid på sendt besked - muligt med kun at bruge SQL?

  4. MySQL varchar indekslængde