昨日はじめて皇居行きました。
東京にもあったんだ、あんな広い所。
で、せっかくなので、ちょっと走ってみたり。
で、今回は最近お気に入りの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 件のコメント:
コメントを投稿