PostgreSQL 認証

データベースクラスタの作成

    initdb を実行したユーザーがデータベース領域の所有者となる。postgres にて実行。

[postgres]$ initdb --encoding=UTF-8 --no-locale --data-checksums

    --no-locale は、ロケールを利用しない為のオプション、ロケールを利用すると
   日本語の並び替えが出来ない場合がある。
    --data-checksums は、テーブルやインデックスデータにチェックサムを付加する。
・データベースクラスタ

データや設定ファイル、ログ等を格納する領域をデータベース・クラスタと呼ぶ。

initdb コマンドを実行すると、環境変数 PGDATA に設定したディレクトリ内に、

データベース・クラスタが作成、初期化される。

postgresql.conf設定ファイル
pg_hba.confアクセス制御の設定ファイル
template0データベース作成時のテンプレート
template1データベース作成時のテンプレート
postgresテスト用データベース

postmaster の起動

[postgres]$ pg_ctl -w start

DB接続時にパスワード要求(md5認証)

・ユーザー作成/パスワード設定

[postgres]$ psql

    # ユーザー postgres のパスワード設定
    DB=> alter  user  postgres  with  encrypted  password  'パスワード';
    # 新規ユーザー作成、パスワード設定
    DB=> create  user  ユーザー名  with  password  'パスワード'  createdb;
    # 確認
    DB=> select  *  from  pg_shadow;
    DB=> \q
・/usr/local/pgsql/data/pg_hba.conf の編集

[postgres]$ vim /usr/local/pgsql/data/pg_hba.conf

    # TYPE  DATABASE  USER  ADDRESS  METHOD
    # "local" is for Unix domain socket connections only(Unixドメインソケット経由)
    local    all              all                             md5
    # IPv4 local connections:(ネットワーク経由 IPv4)
    host     all              all     127.0.0.1/32   reject
    # IPv6 local connections:(ネッワーク経由 IPv6)
    host     all              all     ::1/128         reject
    # Allow replication connections from localhost, by a user with the replication privilege.
    # replication という名前の仮想データベースへの接続権限
    local    replication  all                                 md5
    host     replication  all     127.0.0.1/32   reject
    host     replication  all     ::1/128             reject
trust認証なし
md5MD5 認証
reject接続拒否
・設定の再読込み

[postgres]$ pg_ctl reload