sql >> Databáze >  >> RDS >> PostgreSQL

python se připojte k postgresql pomocí libpq-pgpass

Do Pythonu jej neimportujete program. Bod .pgpass je, že se jedná o běžný soubor podléhající systémovým oprávněním k souborům a libpq ovladač, jehož knihovny jako psychopg2 použijte pro připojení k Postgres bude hledat heslo v tomto souboru místo toho, aby vyžadoval, aby bylo heslo ve zdrojovém kódu, nebo aby se ho dotázalo.

Také se nejedná o soubor na straně serveru, ale o soubor na straně klienta. Takže na *nix boxu byste měli ~/.pgpass soubor obsahující přihlašovací údaje pro různá připojení, která chcete vytvořit.

Upravit v reakci na komentář od OP:

Aby mohl psychopg2 projít, musí se stát dvě hlavní věci pro správné ověření přes .pgpass :

  1. nedělejte to zadejte heslo v řetězci předaném psycopg2.connect
  2. Ujistěte se, že je do souboru .pgpass přidán správný záznam soubor pro uživatele, který se bude připojovat přes psychopg2 .

Například, aby to fungovalo pro všechny databáze pro konkrétního uživatele na localhost port 5432 , přidáte následující řádek do .pgpass daného uživatele soubor:

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

A pak connect hovor by měl tento tvar:

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

Základní libpq ovladač, který psychopg2 použití pak použije .pgpass soubor pro získání hesla.



  1. Vytvořte databázový diagram v MySQL Workbench

  2. psycopg2 ve skutečnosti nevkládá data

  3. pgDash Alternatives - PostgreSQL Database Monitoring s ClusterControl

  4. Jaký je ekvivalent REF CURSOR společnosti Oracle v MySQL?