PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

python terhubung ke postgresql dengan libpq-pgpass

Anda tidak mengimpornya ke Python . Anda program. Inti dari .pgpass adalah bahwa itu adalah file biasa yang tunduk pada izin file sistem, dan libpq driver perpustakaan mana seperti psycopg2 gunakan untuk terhubung ke Postgres akan mencari kata sandi di file ini alih-alih meminta kata sandi ada di kode sumber atau memintanya.

Juga, ini bukan file sisi server, tetapi file sisi klien. Jadi, pada kotak *nix, Anda akan memiliki ~/.pgpass file yang berisi kredensial untuk berbagai koneksi yang ingin Anda buat.

Edit sebagai tanggapan atas komentar dari OP:

Dua hal utama perlu terjadi agar psycopg2 untuk mengautentikasi dengan benar melalui .pgpass :

  1. Jangan jangan tentukan kata sandi dalam string yang diteruskan ke psycopg2.connect
  2. Pastikan entri yang benar ditambahkan ke .pgpass file untuk pengguna yang akan terhubung melalui psycopg2 .

Misalnya, untuk membuat ini berfungsi untuk semua database untuk pengguna tertentu di localhost pelabuhan 5432 , Anda akan menambahkan baris berikut ke .pgpass user pengguna tersebut berkas:

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

Dan kemudian connect panggilan akan dalam bentuk ini:

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

libpq underlying yang mendasarinya pengemudi yang psycopg2 menggunakan kemudian akan menggunakan .pgpass file untuk mendapatkan kata sandi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekstrak hari kerja, milidetik, mikrodetik, nanodetik dari tanggal di Postgres

  2. Kueri N baris terkait terakhir per baris

  3. Replikasi Londiste dengan PostgreSQL 9.0

  4. Ukuran memori yang diizinkan 8589934592 byte habis

  5. Variabel untuk pengidentifikasi di dalam JIKA ADA dalam fungsi plpgsql