【せつぞくもじれつ】

接続文字列 とは?

公開:
💡 住所・名前・合言葉をまとめた「接続先メモ」
📌 このページのポイント
接続文字列の構成要素 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(文字列)で、接続先の情報をひとまとめにした文字列という意味だよ
← 用語集にもどる