はじめてのPostgreSQL 9.1.5文書 第十八章〜第二十章

PostgreSQL 9.1.5文書読んでたのだけど、四章から意味わからなくなってきたのでとりあえず十八章あたりからの設定ファイルとかセキュリティ?関連の辺りを読んで、とりあえずセットアップできるようになってからPostgreSQL入門的な本やら記事やらを読もうかと。

18.1 パラメータの設定

  • パラメータは大文字小文字の区別をしない
  • 論理値はon, off, true, false, yes, no, 1, 0以外にもすぐに推測できる接頭文字を記述できる
listen_addresses (string)

クライアントアプリケーションからの接続サーバが監視するTCP/IPアドレスを指定するパラメータ。
値にはホスト名をコンマで区切ったリスト、もしくは数値によるIPアドレスを指定できる。
"*"は利用可能なすべてのIPに対応する。
0.0.0.0はすべてのIPv4の、::はすべてのIPv6アドレスの監視を許容する。

port (integer)

TCPポートで、デフォルトでは5432が指定される。
サーバが監視するすべてのIPアドレスに対して同じポート番号が使用される。
このパラメータはサーバ起動時のみ設定可能。

max_connections (integer)

最大同時接続数の設定。デフォルトでは100接続。

19.1 pg_hba.confファイル

HBAはhost-based authenticationの略みたい。
外部からのPostgreSQLへのアクセスに関する設定ファイルで、/etcなどにあったような気がします。
今の環境はpgvmを使っているので$HOME/.pgvm/clusters/9.1.9/test/pg_hba.confにありました。


設定方法は以下のような感じ。

host [database] [user] [CIDR-address] [method]
host [database] [user] [IP-address] [IP-mask] [method]

ちゃんと値で書くと以下のような感じ。

host all all 192.168.0.0/24 md5
host all all 192.168.1.0 255.255.255.0 md5

このファイルに書くレコードは順序が大切みたい。

  • はじめの方のレコードには厳しい接続照合パラメータと緩い認証方式
  • 終わりの方のレコードにはより緩い章が追うパラメータとより厳しい認証方式

というのを意識して書かないといけない。

local all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5

みたいな感じかな。
ちなみにpg_hba.confの設定を通過する他に、そのデータベースに対するCONNECT権限を持っている必要がある。


pg_hba.confは起動時、もしくは稼働中にSIGHUPシグナルを受け取ったときに読み込まれる。

$ pg_ctl reload

をするか、もしくは

$ kill -HUP

でpostmasterに対してシグナルを送ると読み込み直す。

20.1 データベースロール

ロールの作成・破棄・変更など。

> CREATE ROLE name;

もしくは

$ createuser name;

で作成。

> DROP ROLE name;

もしくは

$ dropuser name;

で破棄。


変更は

> ALTER ROLE

で。


一覧を見る場合は

> SELECT * FROM pg_roles;
> \du

のどちらか。


CREATEDBとCREATEROLEを持ったロールを作成して、そのロールでデータベースの操作をすると、
スーパーユーザで実行する危険性を避けられる。Linuxでの普段は一般ユーザを使う、みたいな感じ。


とりあえずここまでかなー。二十と二十一はまたあとで書く。