PostgreSQLのアクセス制御
apt-getでインストールしたPostgreSQLはデフォルトではlocalhostからのみ接続を受け付けるようになっています。また、ホスト名を指定しないローカル接続(unixドメインソケット)ではOS上に存在するユーザーのみ接続が許可されています。
localhost以外からの接続
他のホストから接続を受け付けるには、postgresql.confとpg_hba.confを編集します。
'*'ですべてのホストからの接続を許可。
$ sudo vi /etc/postgresql/8.4/main/postgresql.conf
listen_addresses = '*' (追加) #listen_addresses = 'localhost'
接続したいネットワークアドレスを追加。
$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf
# IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.1.0/24 md5 (追加)
ローカル接続時のパスワード認証での接続
OS上にユーザーが存在しなくても接続できるようにするにはident認証からパスワード認証に変更します。
$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf
# "local" is for Unix domain socket connections only #local all all ident (変更) local all all md5 (追加)
設定の反映
設定ファイルをリロードします。
$ sudo service postgresql reload * Reloading PostgreSQL 8.4 database server [ OK ]