PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

python се свързва с postgresql с libpq-pgpass

Не го импортирате във вашия Python програма. Точката на .pgpass е, че това е обикновен файл, предмет на файловите разрешения на системата и libpq драйвер, който библиотеки като psycopg2 използвайте за свързване към Postgres ще потърси паролата в този файл, вместо да изисква паролата да е в изходния код или да я подкани.

Също така, това не е файл от страна на сървъра, а от страна на клиента. И така, на *nix кутия ще имате ~/.pgpass файл, съдържащ идентификационните данни за различните връзки, които искате да можете да осъществите.

Редактиране в отговор на коментар от OP:

Две основни неща трябва да се случат за psycopg2 за правилно удостоверяване чрез .pgpass :

  1. Не посочете парола в низа, предаден на psycopg2.connect
  2. Уверете се, че правилният запис е добавен към .pgpass файл за потребителя, който ще се свързва чрез psycopg2 .

Например, за да работи това за всички бази данни за конкретен потребител на localhost порт 5432 , бихте добавили следния ред към .pgpass на този потребител файл:

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

И след това connect повикването ще бъде в следната форма:

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

Основният libpq драйвер, който psycopg2 използва след това ще използва .pgpass файл, за да получите паролата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Пуснете PostgreSQL база данни през командния ред

  2. Някои идеи за обединяване на ресурси на ниско ниво в PostgreSQL

  3. Набор на JDBCTemplate вложен POJO с BeanPropertyRowMapper

  4. Rails 3 Query:получаване на грешка при използване на 'select' с 'order'

  5. Как да актуализирам таблица от свързваща таблица?