In meiner Konfiguration ( Ubuntu 10.04.3
und 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 .pgpass
Datei abrufen möchte.
Angemeldet als deployer
Ich habe versucht, mithilfe der .pgpass
Datei auf die Datenbank zuzugreifen, die einem Benutzernamen gehört appname
, für den kein Unix-Benutzeräquivalent vorhanden ist. Ich konnte die .pgpass
Arbeit nicht machen , bis ich anfing, deployer
als Benutzer auf meine Datenbank zuzugreifen ...
Hier ist mein /home/deployer/.pgpass
Dateiinhalt:
*:*:*:deployer:password
Hier ein Teil des /etc/postgresql/8.4/main/pg_hba.conf
einen:
# 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 .pgpass
zu .pgpass-no
, es wird ein Passwort benötigt.
Übrigens, vergessen Sie nicht, dass Ihre .pgpass
Datei unter 0600
Berechtigungen sein muss:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
Flagge zudropdb
undcreatedb