Konfigürasyonumda ( Ubuntu 10.04.3ve PostgreSQL 8.4), giriş yaptığım kullanıcı adı için .pgpassdosyadan bir şifre almaya çalıştığımla aynı olduğunda işe yarayabilirim .
Olarak giriş deployer, Unix kullanıcı eşdeğeri olmayan .pgpassbir kullanıcı adına ait veritabanına erişmek için dosyayı kullanmaya çalışıyordu appname. Veritabanıma erişmek için kullanıcı olarak .pgpasskullanmaya başlayana kadar işi yapamadım deployer...
İşte /home/deployer/.pgpassdosya içeriğim:
*:*:*:deployer:password
İşte bir parçası /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
Gördüğünüz gibi, tüm bağlantılarım şifre ( md5) gerektiriyor .
Bu yapılandırma ile, bu komutla oluşturduğum bir veritabanına sahip olduğumu varsayarsak:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Bir şifre girmeden aşağıdaki işlemi gerçekleştirebiliyorum:
deployer@ubuntu-server:~$ dropdb dbname
En kısa zamanda benim adını değiştirmek olarak .pgpassiçin .pgpass-no, bir parola sorar.
BTW, .pgpassdosyanızın 0600izinler altında olması gerektiğini unutmayın :
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-Ubayrağı kullanarak bağlanmak üzere kontrol edebilirsinizdropdbvecreatedb