PostgreSQL接続文字列とは?

PostgreSQL接続文字列は、データベースに接続するために必要なすべての情報(ホスト名、ポート、認証情報、データベース名、SSL設定)を1つの値にまとめた形式化されたテキストです。アプリケーション、ORM、コマンドラインツールは接続文字列を使用してデータベースセッションを確立し、各パラメータを個別に設定する必要がありません。一般的な形式は2つあります:URI形式(postgresql://user:password@host:port/dbname)とlibpqキー=値形式(host=localhost port=5432 dbname=mydb)です。どちらの形式もほぼすべてのPostgreSQLクライアントライブラリでサポートされています。

ツール説明

このツールは個別のパラメータから有効なPostgreSQL接続文字列を生成します。ホスト、ポート、認証情報、データベース名、SSLモードを入力すると、すぐに3つの使用可能な出力が生成されます:接続URL、psqlコマンド、およびlibpqキー=値文字列です。

入力:

フィールド
ホスト db.example.com
ポート 5432
ユーザー名 alice
パスワード s3cr3t
データベース production
SSLモード require

接続URL:

postgresql://alice:s3cr3t@db.example.com/production?sslmode=require

psqlコマンド:

psql "postgresql://alice:s3cr3t@db.example.com/production?sslmode=require"

libpqキー=値文字列:

host=db.example.com port=5432 dbname=production user=alice password=s3cr3t sslmode=require

機能

  • 3つの出力形式:接続URL、psql shellコマンド、およびlibpqキー=値文字列を同時に生成します
  • SSLモードセレクタ:6つのPostgreSQL SSLモード(disable、allow、prefer、require、verify-ca、verify-full)すべてをサポートしています
  • スマートなデフォルト:デフォルト値(ポート5432、sslmode=prefer)を省略して、出力をクリーンで最小限に保ちます
  • URLエンコーディング:特殊文字を含むユーザー名、パスワード、データベース名を自動的にパーセントエンコードします
  • ポート検証:ポートが1~65535の数値であることを検証します

ユースケース

  • アプリケーション設定:Django、Rails、または接続文字列を使用するアプリ用のDATABASE_URL環境変数を生成します
  • クイックCLIアクセス:URI構文を覚えることなくリモートデータベースに接続するための実行可能なpsqlコマンドを生成します
  • 接続デバッグ:URI形式を受け入れないlibpq文字列を構築して、低レベルドライバーまたはツールで接続をテストします

SSLモードの説明

モード 説明
disable SSLなし。接続は暗号化されていません。
allow サーバーが必要な場合はSSLを使用します。それ以外の場合はSSLなしで接続します。
prefer まずSSLを試し、暗号化されていない接続にフォールバックします(デフォルト)。
require SSLが必要ですが、サーバー証明書を検証しません。
verify-ca SSLが必要で、サーバー証明書が信頼されたCAによって署名されていることを検証します。
verify-full SSLが必要で、CAを検証し、ホスト名が証明書と一致することも確認します。