アクセス制限
PostgreSQLでサーバ側は起動したもののvistaからの接続に失敗した。なんでだろう?と思っていたらサーバ側での接続設定がいろいろできていなかったようでパスワード等も設定されていなかったのかしら。というわけで本日はPostgreSQLの接続設定。
/opt/postgresql-8.3.3/pg_hba.conf
上記ファイルはpostgresqlのデータ配置(?)ディレクトリにある。下記PostgreSQLサーバを実行しているコマンドの-Dのオプションで指定しているディレクトリ。
[postgres@CentOS-5.2 ~]$ ps -ef | grep postgres postgres 2023 1 0 20:02 ? 00:00:00 /usr/local/postgresql-8.3.3/bin/postmaster -p 5432 -D /opt/postgresql-8.3.3 postgres 2026 2023 0 20:02 ? 00:00:00 postgres: writer process postgres 2027 2023 0 20:02 ? 00:00:00 postgres: wal writer process postgres 2028 2023 0 20:02 ? 00:00:00 postgres: autovacuum launcher process postgres 2029 2023 0 20:02 ? 00:00:00 postgres: stats collector process root 2355 2327 0 20:03 pts/0 00:00:00 su - postgres postgres 2356 2355 0 20:03 pts/0 00:00:00 -bash root 2461 2433 0 20:05 pts/1 00:00:00 su - postgres postgres 2462 2461 0 20:05 pts/1 00:00:00 -bash postgres 2515 2462 0 20:12 pts/1 00:00:00 ps -ef postgres 2516 2462 0 20:12 pts/1 00:00:00 grep postgres [postgres@CentOS-5.2 ~]$
pg_hba.conf
インストール時から編集していない状態のpg_hba.confファイルの内容は下記。
# "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
- 第1項目:接続タイプ
- 第2項目:接続先データベース
- all:すべてのデータベース
- [データベース名]:記述しているデータベースのみ
- 第3項目:接続ユーザ
- all:すべてのユーザ
- [ユーザ名]:記述しているユーザ名のみ
- 第5項目:認証方式
1行につき1形式。認証待ちのアクセスは、上から記述された順番に接続形式・接続先データベース・接続ユーザ・接続元ネットワークが一致した場合に認証を行う。つまりは上に記述しているものが一致した時点で適用。下の方にゆるい条件の制限を、上に厳しめの条件の制限を書くのが良いのかもしれない。
全ての条件(行)が一致しなかった場合は接続を拒否される。
今回は下記の記述を入れる事によって、vistaからの接続をOKとする。
host all all 192.168.74.0/24 md5
TCP/IP接続において、全てのデータベース・全てのユーザに対して「192.168.74.0/24」のネットワークからの接続はMD5形式の暗号化パスワード認証を行う。
上記を3つめの条件として入れようかな。
パスワード制限を入れたからには、各ユーザ(role)に対してパスワード設定が必要となる事は言うまでもなくやらねばね♪