Pada konfigurasi saya ( Ubuntu 10.04.3dan PostgreSQL 8.4), saya akhirnya bisa berfungsi ketika nama pengguna saya login sama dengan yang saya coba dapatkan kata sandi dari .pgpassfile untuk.
Masuk sebagai deployer, saya mencoba menggunakan .pgpassfile untuk mengakses database yang dimiliki oleh nama pengguna appname, yang tidak memiliki padanan pengguna Unix. Saya tidak bisa melakukan .pgpasspekerjaan, sampai saya mulai menggunakan deployersebagai pengguna untuk mengakses database saya ...
Ini /home/deployer/.pgpasskonten 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 .pgpassmenjadi .pgpass-no, itu akan memerlukan kata sandi.
BTW, jangan lupa bahwa .pgpassfile Anda harus di bawah 0600izin:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-Ubendera kedropdbdancreatedb