2011年7月18日月曜日

postgresql.conf

どうも、69です。

昨日はじめて皇居行きました。


東京にもあったんだ、あんな広い所。
で、せっかくなので、ちょっと走ってみたり。


で、今回は最近お気に入りのpostgresql.confとpg_hba.confから
接続に関するパラメータを。


PostgreSQLはクラサバアプリケーションなので
PostgreSQLのクライアントとサーバは別々のホスト上で動作できます。

ですが、デフォルト設定ではPostgreSQLサーバは
localhost・自分自身からの接続しか受け付けません。

なので、他のホストからの接続を可能にする設定が必要になります。
で、それは前回ご紹介した

listen_addresses = '*'

です。これにより、全てのホストからの接続を可能にします。

で、今日ご紹介するのは、こちら!

#port = 5432

です。これはデフォルトの状態です。
つまり、デフォルトではポート5432番を使用します。
これを変更したい場合は

#port = 5432



port = 5433

とかってします。この例では5433ポートに変更しました。
unkwonポート?ウェルノンポートではない?ので他とかぶらないように。。。
で、postgresql.confをいじったらリロード・もしくはPostgreSQLを再起動。

繰り返し繰り返し、言いますよ。国民は三日で忘れ…失礼しました。


ただ、ポートを変更したら、クライアントからの接続はポートを指定しなきゃだめですよ!
これは注意ですね。
クライアントもデフォルト5432で接続しようとするので。

psql -p 5433 <データベース名>

てな感じで。

そしたら、次はpg_hba.confを設定します。
pgは多分PostgreSQLのことで
hbaってのはhost(s) basic authenticationだろうかと。
ということで、基本認証を設定してます。

書式は

<種類> <データベース> <ユーザ> <IPアドレス> <認証方式>

です。

種類:対象の接続を設定します。以下の値を設定します。
local→UNIXドメインソケット経由
host →TCP/IP経由
hostssl→SSL経由
hostnossl→SSLを使用しない接続

データベース:対象のデータベースを設定します。
allを設定すると全てのデータベースに適用されます。
「,」カンマ区切りで複数のデータベースを指定することも可能です。

ユーザ:対象のユーザを設定します。
allを設定するを全てのユーザが対象になります。
「+」が頭につくとグループ名を指します。

「,」カンマ区切りで複数のユーザを指定することも可能です。
多分、このユーザはPostgreSQLのユーザだろうかと。。まだ確証は得てないです。すんまそ。

IPアドレス:対象のIPアドレスを設定します。
0.0.0.0/0なら全てのIPアドレスだし、192.168.1.1/32ならそのIPアドレスだけです。
もちろん、ネットワークでの指定もできます。10.1.0.0/16とか
CIDER?クラスレス?での指定ができます。

認証方式:今までに挙げた対象の認証方式を設定します。他にもありますが、値は以下です。
trust→無条件に許可
reject→無条件に拒否
password→BASIC認証。パスワードが平文で流れる?
md5→md5を利用した認証方式


例をあげると

全てのホストが全てのユーザで全てのデータベースに無条件に接続可能。。。
一番簡単なやつ。

host all all 0.0.0.0/0 trust

10.1.1.0/24からの接続は全て拒否し
10.1.2.0/24からはデータベースDB69にのみパスワードなしでアクセスできる。

host all all 10.1.1.0/24 reject
host DB69 all 10.1.2.0/24 trust


あれ?そういえば、明示されないのってどうなるんだろ?
原則拒否?それとも疑わしきは罰せず(許可)?
調べてみよ。

おしまい。

0 件のコメント:

コメントを投稿