Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

DSN(ディーエスエヌ)とは | 意味や読み方など丁寧でわかりやすい用語解説

DSN(ディーエスエヌ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

データソース名 (データソースメイ)

英語表記

Data Source Name (データソースネーム)

用語解説

DSNとは、Data Source Name(データソース名)の略であり、アプリケーションがデータベースに接続するために必要な情報一式を、ユーザーが識別しやすい名前でまとめて定義したものである。システムエンジニアリングにおいて、データベースへの接続は多岐にわたるアプリケーションやシステムで行われるため、その接続情報を一元的に管理し、アプリケーションコードから独立させるための重要な概念としてDSNが用いられる。これにより、接続先のデータベースが変更された場合でも、アプリケーションのコードを修正することなく、DSNの設定を変更するだけで対応できるようになるため、システムの柔軟性、可搬性、そして保守性を大幅に向上させることが可能となる。

DSNは、データベースの種類、接続先のサーバーのアドレス、データベース名、認証情報(ユーザー名とパスワード)、そしてその他接続に関する設定など、多岐にわたる詳細な情報をカプセル化する役割を果たす。例えば、アプリケーション開発者が「顧客データベース」というDSNを定義した場合、そのDSNには「MySQLデータベースに接続し、サーバーアドレスはdb.example.com、ポートは3306、データベース名はcustomer_db、ユーザー名はapp_user、パスワードはxxxxxx」といった具体的な情報がすべて含まれる。アプリケーション側は、この「顧客データベース」というDSNの名前を指定するだけで、詳細な接続情報を意識することなくデータベースにアクセスできるようになる。

DSNは主に3つの種類に分類される。一つ目は「ユーザーDSN」であり、これは特定のコンピューター上の、それを設定したユーザーアカウントのみが利用できるDSNである。そのユーザーがログインしているときにのみ有効となり、他のユーザーやシステムサービスからはアクセスできない。主に開発者のローカル環境でのテストや、特定のユーザーだけがアクセスするアプリケーションで用いられる。二つ目は「システムDSN」で、これは特定のコンピューター上のすべてのユーザーアカウントやシステムサービスが利用できるDSNである。通常、Webサーバー上で動作するアプリケーションやバックグラウンドサービスなど、複数のユーザーやシステムプロセスが共通のデータベースにアクセスする必要がある場合に設定される。コンピューターが起動している間は常に利用可能であるため、サービスとして動作するアプリケーションに適している。そして三つ目は「ファイルDSN」であり、これは接続情報がテキストファイルとして保存されるDSNである。ファイルとして存在するため、特定のコンピューターやユーザーに限定されず、ネットワークドライブを介して複数のコンピューター間で共有したり、簡単にバックアップしたりすることが可能である。移植性が高く、開発環境から本番環境への移行などにも利用されることがある。

DSNを利用する最大のメリットは、アプリケーションとデータベース間の結合度を下げることにある。アプリケーションコードに直接データベースの接続情報を書き込む「ハードコーディング」を避けることで、データベースのサーバー移転や、異なる種類のデータベースへの移行(例:MySQLからPostgreSQLへ)といった変更が発生した場合でも、アプリケーションのコードを一切変更することなく、DSNの設定ファイルやレジストリ上の情報だけを修正すれば済む。これは、大規模なシステムや長期運用されるシステムにおいて、開発コストやメンテナンスコストを大幅に削減する効果がある。また、テスト環境と本番環境で異なるデータベースを利用する場合でも、アプリケーションのコードは共通とし、DSNの設定を切り替えるだけで対応できるため、開発の効率化にも貢献する。DSNによる抽象化は、アプリケーション開発者がデータベースの物理的な場所や詳細な接続パラメータを意識することなく、論理的なデータソース名だけを扱えばよいという利便性を提供する。

DSNは特に、ODBC (Open Database Connectivity) や JDBC (Java Database Connectivity) といったデータベース接続APIにおいて重要な役割を担う。ODBCはMicrosoftが提唱する標準的なデータベースアクセスインターフェースであり、Windows環境で様々なアプリケーションから多様なデータベースに接続するために広く利用されている。ODBCを利用するアプリケーションは、DSNを通じて指定されたデータベースドライバー(特定のデータベースと通信するためのソフトウェア)を介してデータベースにアクセスする。これにより、アプリケーションはデータベースの具体的な種類や接続方式に依存せず、標準化されたODBC APIを通じてデータ操作を行える。同様に、Javaアプリケーションがデータベースに接続する際に利用するJDBCにおいても、DSNライクな接続文字列が用いられることが多い。これらのAPIにおいてDSNは、アプリケーションがデータベースの具体的な実装を知ることなく、抽象的な方法でデータにアクセスするための「仲介役」として機能し、データベースとの間の橋渡しを担う。

DSNを設定する際には、セキュリティ上の注意が必要となる。特に、DSNにデータベースへの認証情報(ユーザー名とパスワード)を含める場合、そのDSNが保存されている場所(レジストリ、ファイルなど)へのアクセスが適切に制限されていることを確認しなければならない。ファイルDSNの場合、ファイルが不特定多数からアクセス可能な場所に置かれていないか、システムDSNやユーザーDSNの場合でも、設定ツールへのアクセス権限が適切に管理されているか、といった点に配慮が求められる。不適切なアクセス権限は、悪意のあるユーザーがデータベースの接続情報を窃取し、不正アクセスを行うリスクを高める。また、DSNはあくまでデータベースへの「接続情報」を管理するものであり、データベースそのもののデータ保護やアクセス制御といったセキュリティ対策は、別途データベースシステム側で適切に実施する必要がある。DSNの適切な利用と管理は、堅牢で保守しやすいシステム構築において不可欠な要素である。

関連コンテンツ

関連IT用語

関連プログラミング言語