私の構成(Ubuntu 10.04.3
およびPostgreSQL 8.4
)では、ログインしているユーザー名が.pgpass
ファイルからパスワードを取得しようとしているユーザー名と同じである場合、ようやく機能するようになりました。
としてログインしdeployer
、.pgpass
ファイルを使用してユーザー名が所有するデータベースにアクセスしようとしましappname
たが、これには同等のUnixユーザーはいません。データベースにアクセスするユーザーとして.pgpass
使用を開始するまで、私は仕事をすることができませんでしたdeployer
...
ここに私のある/home/deployer/.pgpass
ファイルの内容は:
*:*:*:deployer:password
ここにその一部/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
ご覧のとおり、すべての接続にはパスワード(md5
)が必要です。
この構成では、次のコマンドで作成したデータベースがあると仮定します。
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
パスワードを入力せずに次の操作を実行できます。
deployer@ubuntu-server:~$ dropdb dbname
すぐに私は私の名前を変更するなどのよう.pgpass
にし.pgpass-no
、それはパスワードが必要になります。
ところで、あなたの.pgpass
ファイルは0600
許可の下になければならないことを忘れないでください:
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-U
にフラグをdropdb
してcreatedb