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
:
- Jangan jangan tentukan kata sandi dalam string yang diteruskan ke
psycopg2.connect
- 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.