Nella mia configurazione ( Ubuntu 10.04.3
e PostgreSQL 8.4
), potrei finalmente farlo funzionare quando il nome utente a cui ho effettuato l'accesso è lo stesso di quello per cui sto cercando di ottenere una password dal .pgpass
file.
Effettuato l'accesso come deployer
, stavo cercando di utilizzare il .pgpass
file per accedere al database di proprietà di un nome utente appname
, che non ha un equivalente utente Unix. Non ho potuto fare il .pgpass
lavoro, fino a quando non ho iniziato a utilizzare deployer
come utente per accedere al mio database ...
Ecco il mio /home/deployer/.pgpass
contenuto del file:
*:*:*:deployer:password
Ecco una parte di /etc/postgresql/8.4/main/pg_hba.conf
quello:
# 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
Come puoi vedere, tutte le mie connessioni richiedono password ( md5
).
Con questa configurazione, supponendo che io abbia un database che ho creato con questo comando:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Sono in grado di eseguire le seguenti operazioni senza inserire una password:
deployer@ubuntu-server:~$ dropdb dbname
Appena ho cambiare il nome del mio .pgpass
per .pgpass-no
, sarà necessaria una password.
A proposito, non dimenticare che il tuo .pgpass
file deve essere 0600
autorizzato:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
bandiera perdropdb
ecreatedb