PostgreSQL Setup and Management¶
インストール¶
最近のバージョンとリリース日¶
2025-09-25 PostgreSQL 18
2024-09-26 PostgreSQL 17
2023-09-14 PostgreSQL 16
2022-10-13 PostgreSQL 15
macOS¶
Windows OS¶
インストーラをダウンロードしてインストールするのが一般的な方法ですが、zipアーカイブを展開する方法やソースコードからビルドする方法もあります。
インストーラを使用する場合
- 公式サイト からインストーラをダウンロードしてインストールする
- winget(Windows 11から標準搭載)でネットワークからインストーラを取得しインストールする
セットアップ¶
initdb¶
データベースを初期化します。
- ロケールの設定
initdbの際にロケール未指定の場合、OSのロケールが適用されるので、通常は明示的にロケールCを指定 - 文字エンコーディングの指定
initdbの際に未指定の場合、sql_asciiとなるので、明示的にUTF-8を指定
アクセス制限の指定¶
設定ファイル pg_hba.conf にアクセス制限を記述します。デフォルトの設定(macOS/homebrewでインストール時)は次のとおりです。
# "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
- コメントにあるとおり、先頭のlocalは、UNIXドメイン接続時の設定、hostはTCP/IP接続時の設定を記述しています。
- 2番目のallは、すべてのデータベースへのアクセスの設定であることを示します。
- 3番目のallは、すべてのユーザに適用する設定であることを示します。
- host設定行の4番目は接続を受理するクライアントのIPアドレスを示します。デフォルトでは同じホスト上からのIPv4/IPv6の接続を受理します。
- 最後のtrustは、接続を無条件で(認証行為なしで)許可します。
このデフォルト設定は、PostgreSQLが稼働するサーバー上にログインしているユーザーであれば認証なしに接続ができます。
trustの設定をscram-sha-256に変更すると、接続時にパスワード認証が必要となります。
また、localhost以外からのアクセスを許す場合、次の2つの設定ファイルを変更します。
- pg_hba.conf
0.0.0.0/0 を指定するとどこからでも接続できてしまうので、データベースを管理するセグメントを指定します。 - postgresql.conf
listen_addresses = '*' を指定
管理¶
認証の種類¶
クライアントからの接続に対する認証にはいくつかの種類があります。
- trust認証
- パスワード認証
- GSSAPI認証
- SSPI認証
- ident認証
- peer認証
- LDAP認証
- RADIUS認証
- 証明書認証
- PAM認証
- BSD認証