In meiner Konfiguration ( Ubuntu 10.04.3und PostgreSQL 8.4) konnte ich es endlich zum Laufen bringen, wenn der Benutzername, für den ich angemeldet bin, mit dem übereinstimmt, für den ich ein Kennwort aus der .pgpassDatei abrufen möchte.
Angemeldet als deployerIch habe versucht, mithilfe der .pgpassDatei auf die Datenbank zuzugreifen, die einem Benutzernamen gehört appname, für den kein Unix-Benutzeräquivalent vorhanden ist. Ich konnte die .pgpassArbeit nicht machen , bis ich anfing, deployerals Benutzer auf meine Datenbank zuzugreifen ...
Hier ist mein /home/deployer/.pgpassDateiinhalt:
*:*:*:deployer:password
Hier ein Teil des /etc/postgresql/8.4/main/pg_hba.confeinen:
# 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
Wie Sie sehen, sind für alle meine Verbindungen Kennwörter ( md5) erforderlich .
Bei dieser Konfiguration wird vorausgesetzt, dass ich eine Datenbank habe, die ich mit diesem Befehl erstellt habe:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
Ich kann den folgenden Vorgang ausführen, ohne ein Kennwort einzugeben:
deployer@ubuntu-server:~$ dropdb dbname
Sobald ich den Namen meiner ändern .pgpasszu .pgpass-no, es wird ein Passwort benötigt.
Übrigens, vergessen Sie nicht, dass Ihre .pgpassDatei unter 0600Berechtigungen sein muss:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-UFlagge zudropdbundcreatedb