PostgreSQL接続文字列のフォーマット

ホスト、ポート、データベース、認証情報、SSLオプションを使ったPostgreSQL接続文字列の構築方法。標準的なpostgresql:// URI形式を解説します。

PostgreSQL

詳細な説明

PostgreSQL URIフォーマット

標準的なPostgreSQL接続文字列はpostgresql://(またはpostgres://)URIスキームを使用します。完全なフォーマットは以下の通りです:

postgresql://[user[:password]@][host][:port][/database][?param=value&...]

各コンポーネントの分解

コンポーネント 必須
プロトコル postgresql:// はい
ユーザー名 postgres いいえ(OSユーザーにデフォルト)
パスワード :mypassword いいえ
ホスト localhost いいえ(localhostにデフォルト)
ポート :5432 いいえ(5432にデフォルト)
データベース /mydb いいえ(ユーザー名にデフォルト)
パラメータ ?sslmode=require いいえ

接続文字列の例

基本的なローカル接続:

postgresql://postgres:secret@localhost:5432/myapp

SSLと特定のスキーマを使った本番接続:

postgresql://appuser:p%40ssw0rd@db.example.com:5432/production?sslmode=require&schema=app

パスワードのエンコーディング

パスワード内の特殊文字はパーセントエンコードする必要があります。エンコードが必要な一般的な文字:

  • @%40
  • :%3A
  • /%2F
  • #%23
  • %%25

SSLパラメータ

PostgreSQLはsslmodeパラメータを通じていくつかのSSLモードをサポートしています:

  • disable — SSLなし
  • allow — 最初にSSLなし、次にSSL
  • prefer — 最初にSSL、次にSSLなし(デフォルト)
  • require — SSLのみ、証明書検証なし
  • verify-ca — CA証明書検証付きSSL
  • verify-full — 完全なホスト名検証付きSSL

クラウドホスティングのPostgreSQL(AWS RDS、Google Cloud SQLなど)では、sslmode=requireが通常最低限の要件です。

ユースケース

Node.jsまたはPythonアプリケーションからPostgreSQLデータベースへの接続。ローカル開発インスタンスでも、AWS RDSやSupabaseのようなマネージドクラウドデータベースでも使用できます。

試してみる — Connection String Builder

フルツールを開く