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のようなマネージドクラウドデータベースでも使用できます。