pgAdmin4 で「外部PostgreSQLデータベース」を接続する方法を紹介します。複数の異なるデータベースをリモートで操作する事は、作業効率やセキュリティ面からも大きな効果があります。
pgAdmin 4 「外部データベースサーバー」の接続方法
今回、実際に接続するデータベースの環境
pgAdmin4がインストールされているクライアントPCから、PostgreSQLデータベースサーバーをリモートで操作できる様にします。
■外部データベースサーバー
OS:Windows10 Home 22H2
PostgreSQL:16.4-2
pgAdmin4:8.12
■pgAdmin4クライアント
OS:Windows10 PRO 22H2
pgAdmin4:8.13
外部データベース(PostgreSQLサーバー)側の設定
PostgreSQLサーバー側の設定は以下の3点です。
- 接続を許可するクライアントの設定
- 接続を受け付けるネットワークアドレスの設定
- ファイアーウォールによるポート開放
上記3点を具体的に紹介します。
>> 接続を許可するクライアントの設定
「pg_hda.conf」 ファイル内の「IPv4 local connections」セクション に、クライアントのIPアドレスを追加します。(下図赤枠参照)
アドレスの /32 はサブネットマスク(255.255.255.255)を表しています。この場合 指定したアドレス32ビットが固定され、1台のクライアントからしか接続できません。
同一セグメント内のクライアントから接続するには、サブネットマスクを/24(255.255.255.0) にします。
- 1番目の「all」
データベース名。all は全てのデータベース名を意味します。 - 2番目の「all」
ユーザー名。all は全てのユーザー名を意味します。 - csram-sha-256
クライアント接続を制御するために使用する認証方法。
パスワードをSCRAM-SHA-256(Salted Challenge Response Authentication Mechanism)で認証します。
認証方法には、認証なしで接続を許可する「trust」や、パスワードをMD5ハッシュ化して認証する「md5」等があります。
※「pg_hda.conf」の場所:C:\Program Files\PostgreSQL\16\data(デフォルト)
>> 接続を受け付けるネットワークアドレスの設定
「postgresql.conf」ファイル内の「listen_addresses」パラメタに、’*‘ を指定します。
サーバが接続を受け付けるネットワークアドレスを指定するパラメータです。’*’ を指定するとサーバーが利用可能な全てのネットワークから接続できる様になります。
「pg_hda.conf」に指定するアドレスは、PostgreSQLに接続するクライアントのアドレスなので、混同しないようにしましょう。
※「postgresql.conf」の場所:C:\Program Files\PostgreSQL\16\data (デフォルト)
>> ファイアーウォールのポート開放
PostgreSQLサーバーとの接続はデフォルトで「5432」ポートを使用する為、ファイアーウォールのポートを開放します。解放の手順は以下の通り。
- 受信の規則
「新しい規則」を作成。
- 規則の種類
「ポート」を選択。
- プロトコルおよびポート
プロトコル:TCPを選択。
特定のローカルポート:5432(デフォルト)を指定。他の場合は使用しているポート番号を入力。
- 操作
「接続を許可する」を選択。
- プロファイル
全てをチェック。
- 名前
何の為にポートを開放したのか、他の人が読んでも分かる「名前」を設定する。
以上でPostgreSQLサーバー側のポート開放は終了です。
pgAdmin 4 (クライアント)からの接続方法
接続手順を紹介します。
- 外部データベース(PostgreSQLサーバー)の登録
「servers」を右クリックして「登録」→「サーバー」を選択します。
- 「一般タブ」の入力
接続用の名前を入力します。ここでは分かり易く「connect_test」としました。
- 「接続タブ」の入力
以下の項目を入力します。- 接続するサーバーの「ホスト名/IPアドレス」
- 接続で利用するポート番号(ファイアーウォールで開放したポート番号)
- 接続用のユーザー名
- 接続用のユーザー名のパスワード
正常にサーバーが接続できると指定した名前のサーバーが表示され、スキーマを操作できます。
外部データベースサーバー接続の利点
外部データベースサーバーをpgAdmin4などのGUIツールでリモート接続すると、以下のような効果があります。
- GUIによる操作の簡易性
PostgreSQLサーバーの設定、データベースの操作やユーザー管理が容易にできます。コマンドラインの操作が不要になるため、初心者でも使いやすい環境となるでしょう。 - 複数サーバーの統合管理
複数の外部データベースを1つのGUIで統一的に管理できます。その為プロジェクト間や環境間でのデータベース操作が効率化し、管理コストが削減されます。 - リアルタイムでのデータ参照と更新
pgAdmin4を使えば、リモートサーバー上のデータをリアルタイムで参照・更新できます。 - セキュリティの強化
外部データベースとの接続は、SSLやSSHトンネルを使用して安全に行えます。重要なデータを保護しながらリモート操作が可能になり、セキュリティリスクを軽減します。 - チームでの効率的な作業
複数の開発者や管理者が同じ外部データベースにアクセスできるため、分散したチームでも統一された環境で作業が可能になります。 - マルチプラットフォーム対応
pgAdmin4はブラウザベースまたはデスクトップアプリとして利用できるため、異なるOS(Windows、macOS、Linux)間での外部データベース管理が一貫性を持って行えます。
pgAdmin 4 「外部データベース」の接続方法 まとめ
- 外部データベース(PostgreSQLサーバー)側の設定
- 接続を許可するクライアントの設定
- 接続を受け付けるネットワークアドレスの設定
- ファイアーウォールによる接続ポートの開放
- pgAdmin4クライアント側の設定
- 下記項目を入力して「servers」に外部データベース(PostgreSQLサーバー)を登録する
- 接続用のサーバー名称
- 接続するサーバーの「ホスト名/IPアドレス」
- 接続で利用するポート番号(ファイアーウォールで開放したポート番号)
- 接続用のユーザー名
- 接続用のユーザー名のパスワード
- 下記項目を入力して「servers」に外部データベース(PostgreSQLサーバー)を登録する