Pada konfigurasi saya ( Ubuntu 10.04.3
dan PostgreSQL 8.4
), saya akhirnya bisa berfungsi ketika nama pengguna saya login sama dengan yang saya coba dapatkan kata sandi dari .pgpass
file untuk.
Masuk sebagai deployer
, saya mencoba menggunakan .pgpass
file untuk mengakses database yang dimiliki oleh nama pengguna appname
, yang tidak memiliki padanan pengguna Unix. Saya tidak bisa melakukan .pgpass
pekerjaan, sampai saya mulai menggunakan deployer
sebagai pengguna untuk mengakses database saya ...
Ini /home/deployer/.pgpass
konten file saya :
*:*:*:deployer:password
Berikut bagian dari yang ini /etc/postgresql/8.4/main/pg_hba.conf
:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Seperti yang Anda lihat, semua koneksi saya memerlukan kata sandi ( md5
).
Dengan konfigurasi ini, anggap saya memiliki database yang saya buat dengan perintah ini:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Saya dapat melakukan operasi berikut tanpa memasukkan kata sandi:
deployer@ubuntu-server:~$ dropdb dbname
Segera setelah saya mengubah nama saya .pgpass
menjadi .pgpass-no
, itu akan memerlukan kata sandi.
BTW, jangan lupa bahwa .pgpass
file Anda harus di bawah 0600
izin:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
bendera kedropdb
dancreatedb
1) Buat file .pgpass dengan konten
2) mengatur izin menggunakan perintah
3) Tetapkan pemilik file sebagai pengguna yang sama dengan yang Anda gunakan untuk masuk:
4) Setel variabel lingkungan PGPASSFILE:
Sekarang periksa dengan menghubungkan ke database:
Saya tidak akan meminta kata sandi dan masuk ke postgresql.
sumber