PostgreSQL にて、他ホストから接続するための設定を調べたのでメモ。
■ /usr/local/pgsql/data/postgresql.conf
#listen_addresses = 'localhost' # what IP interface(s) to listen on;
# defaults to localhost, '*' = any
↓(変更)
listen_addresses = '*'
設定を変更後、PostgreSQLを再起動する。
/etc/rc.d/init.d/postgresql restart
接続できるクライアントを設定する
PostgreSQLの設定ファイルである pg_hba.conf にて、接続できるホストを制限しているので、これを変更します。
■ /usr/local/pgsql/data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust■(例)全てのホストからの接続を許可する
全てのホストから、全てのデータベースへの接続を許可する場合、以下の記述を追加する。
host all all 0.0.0.0/0 trust
接続を制限する
pg_hba.confは1行で1レコードを構成しており、1行のフォーマットは以下のとおりである。
KIND DATABASE USER CIDR-ADDRESS METHOD● KIND
「local」「host」「hostssl」「hostnossl」のいずれか。localはUNIXドメインソケット経由の接続、hostはTCP/IP経由の接続、hostsslはSSL経由の接続、hostnosslはSSLを使用しない接続を意味する。
● DATABASE 接続を許可したいデータベース名を指定。「all」とすると全てのデータベースを意味する。複数のデータベース名を指定したい場合は、カンマで区切る。
● USER 接続を許可するユーザ名を指定。「all」とすると全てのユーザを意味する。ユーザ名の前に「+」を付けるとグループ名を指定したことになる。複数のユーザ名を指定したい場合は、カンマで区切る。
● CIDR-ADDRESS KINDがlocal以外のときに指定する。接続を許可するクライアントのIPアドレスやネットワークアドレスを指定する。
例1)192.168.0.11/32・・・192.168.0.11からの接続のみを許可する 例2)192.168.0.0/24・・・IPアドレスが192.168.0.xであるクライアントのみを許可する 例3)0.0.0.0/0・・・任意のIPアドレスのクライアントを許可する
● METHOD ユーザの認証方式を指定する。代表的なものは以下のとおり。 trust・・・認証なし。無条件に接続を許可する。 reject・・・無条件に接続を拒否する。特定のホストやネットワークからの接続を拒否する際に使用。 md5・・・md5を利用したパスワード認証。パスワードを指定していないユーザは接続できない。 password・・・パスワード認証を行うが、BASIC認証のため、パスワードがそのままネットワークを流れてしまう。
・引用元:他ホストから接続するための設定
以上です。
【参考】