【せつぞくもじれつ】

接続文字列 とは?

💡 住所・名前・合言葉をまとめた「接続先メモ」
📌 このページのポイント
接続文字列の構成要素 Server=db.example.com;Port=5432;Database=mydb;User=admin;Password=*** ホスト名 db.example.com ポート 5432 DB名 mydb ユーザー admin パスワード *** アプリケーション 接続 データベース ⚠ 秘密情報は 環境変数 or シークレット管理で保管
接続文字列の構成要素と利用イメージ
ひよこ ひよこ

接続文字列って何?データベースの住所みたいなもの?

ペンギン先生 ペンギン先生

そうそう、まさに住所と鍵をまとめたメモだよ。「どのサーバーの、どのデータベースに、誰として、どのパスワードで接続するか」を1行のテキストにまとめたものなんだ。

ひよこ ひよこ

具体的にはどんな形をしているの?

ペンギン先生 ペンギン先生

たとえば PostgreSQL なら Server=localhost;Port=5432;Database=mydb;User Id=admin;Password=secret; みたいな形式だよ。セミコロンで区切って、キーと値のペアを並べるんだ。

ひよこ ひよこ

パスワードがそのまま書いてあるの?それって危なくない?

ペンギン先生 ペンギン先生

いいところに気づいたね。だからこそ、接続文字列ソースコードに直接書かず、環境変数シークレット管理ツールに保存するのが鉄則だよ。GitHubに間違ってpushして大事故になった例もたくさんあるんだ。

ひよこ ひよこ

データベースの種類によって書き方は変わるの?

ペンギン先生 ペンギン先生

変わるよ。MySQLPostgreSQLSQL Serverなど、それぞれ書式が微妙に違うし、JDBCODBCといったドライバーの規格によっても異なるんだ。だからドキュメントを見て正しいフォーマットを確認するのが大事だね。

ひよこ ひよこ

本番環境と開発環境で接続先を切り替えたいときはどうするの?

ペンギン先生 ペンギン先生

環境変数で切り替えるのが定番だよ。開発環境では DATABASE_URL にローカルのアドレスを、本番では本番サーバーのアドレスをセットしておけば、コードを変えずに切り替えられるんだ。

ひよこ ひよこ

クラウドデータベースでも同じ考え方なの?

ペンギン先生 ペンギン先生

同じだよ。AWSのRDSやAzure SQL Databaseなんかも、管理画面から接続文字列をコピーできる仕組みになっている。最近はマネージドサービス側がシークレットマネージャーと連携して、接続文字列自体を自動ローテーションする仕組みも増えているね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「接続文字列」って出てきたら「DB接続に必要な情報を1行にまとめたテキスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Connection String」 = 接続文字列
💬 Connection(接続)+ String(文字列)で、接続先の情報をひとまとめにした文字列という意味だよ
← 用語集にもどる