プロジェクト

全般

プロフィール

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認証


1日前に更新