[PostgreSQL] 他のPCから接続するための設定
- 2012 3/11
- カテゴリー : 未分類
- PostgreSQL
- コメントを書く
PostgreSQL にて、他ホストから接続するための設定を調べたのでメモ。
postgresq.confファイルの修正
■ /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認証のため、パスワードがそのままネットワークを流れてしまう。・引用元:他ホストから接続するための設定
以上です。
【参考】
・PostgreSQL8.3 クライアント認証 – 読書と技術となんか色々のログ – 楽天ブログ(Blog)