Sur ma configuration ( Ubuntu 10.04.3
et PostgreSQL 8.4
), je pourrais enfin le faire fonctionner lorsque le nom d'utilisateur auquel je suis connecté est le même que celui que j'essaie d'obtenir un mot de passe du.pgpass
fichier.
Connecté en tant que deployer
, j'essayais d'utiliser le .pgpass
fichier pour accéder à la base de données appartenant à un nom d'utilisateur appname
, qui n'a pas d'équivalent utilisateur Unix. Je ne pouvais pas faire le .pgpass
travail, jusqu'à ce que je commence à utiliserdeployer
tant qu'utilisateur pour accéder à ma base de données ...
Voici /home/deployer/.pgpass
le contenu de mon fichier:
*:*:*:deployer:password
Voici une partie de celle- /etc/postgresql/8.4/main/pg_hba.conf
ci:
# 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
Comme vous pouvez le voir, toutes mes connexions nécessitent un mot de passe (md5
).
Avec cette configuration, en supposant que j'ai une base de données que j'ai créée avec cette commande:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Je peux effectuer l'opération suivante sans entrer de mot de passe:
deployer@ubuntu-server:~$ dropdb dbname
Dès que je change le nom de mon .pgpass
à.pgpass-no
, il faudra un mot de passe.
BTW, n'oubliez pas que votre .pgpass
fichier doit être sous 0600
autorisations:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
drapeau versdropdb
etcreatedb