コンピューティングにおいて、データソース名(DSN、データベースソース名とも呼ばれるが、「データソース」はデータベース以外のリポジトリも含む場合がある)は、データソースへの接続を記述するために使用される、関連付けられたデータ構造を持つ文字列である。ODBCとの関連で最も一般的に使用されるが、DSNはJDBCやその他のデータアクセスメカニズムにも存在する。この用語はしばしば「接続文字列」と重複する。ほとんどのシステムではDSNと接続文字列を区別しておらず、これらの用語はしばしば互換的に使用される。[1]
DSN属性には以下のものが含まれますが、これらに限定されるわけではありません。[2]
- データソースの名前
- データソースの場所
- データソースにアクセスできるデータベースドライバの名前
- データアクセス用のユーザーID(必要な場合)
- データアクセス用のユーザーパスワード(必要な場合)
通常、クライアント マシンのシステム管理者は、関連するデータ ソースごとに個別の DSN を作成します。
DSN を標準化すると間接的なレベルが提供され、さまざまなアプリケーション ( Apache / PHPやIIS / ASPなど) が共有データ ソースにアクセスする際にこれを利用できます。
データソース名の種類
DSN には 2 種類あります。
- マシン DSN – 集合的な構成ファイル (例:
/etc/odbc.ini、~/.odbc.ini) および/またはシステム リソース (例: Windows レジストリHKLM\Software\ODBC\odbc.ini)に保存されます。 - ファイルDSN – ファイルごとに1つのDSNでファイルシステムに保存されます
これらはさらに以下のように分類されます
- システム DSN – システムのすべてのプロセスとユーザーがアクセスでき、集中管理された場所 (例:
/etc/odbc.ini、/etc/odbc_file_dsns/<filename>)に保存されます。 - ユーザー DSN – DSN を作成したユーザーのみがアクセスでき、ユーザー固有の場所 (例:
~/.odbc.ini、~/odbc_file_dsns/<filename>)に保存されます。
使用例
ソフトウェア (Crystal Reports、Microsoft Excel、PHP、Perl、Python、Ruby など) ユーザーは、DSN への接続を確立することで、データ ソースに CRUD (作成、読み取り、更新、削除) クエリを送信できます。
DSN 接続を開くための ASP ( VBScript ) コードは次のようになります。
Dim DatabaseObject1を設定します。DatabaseObject1 = Server.CreateObject ( "ADODB.Connection" )を設定します。DatabaseObject1.Open ( " DSN =example;" )
PHPでPEAR::DB パッケージを使用して外部 DSN を使用せずに接続を開く場合 (「DSN レス接続」、つまり接続文字列を使用する場合) [説明が必要]、コードは次のようになります。
require_once ( "DB.php" );
//$dsn = "<ドライバー>://<ユーザー名>:<パスワード>@<ホスト>:<ポート>/<データベース>";
$dsn = "mysql://john:pass@localhost:3306/my_db" ;
$db = DB :: connect ( $dsn );
PDOを使ったPHP: [3]
$dsn = "mysql:host=localhost;dbname=example" ;
$dbh = 新しい PDO ( $dsn 、 $username 、 $password );
Perlでは、Perl DBIモジュールを使用するため、各ドライバはDSN属性に対して独自の構文を持っています。DBIが規定する唯一の要件は、ユーザー名とパスワードを除くすべての情報が単一の文字列引数で提供されることです。
私の$dsn = "DBI:Pg:database=finance;host=db.example.com;port=$port" ; $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port" ; $dsn = "DBI:Oracle:host=$host;sid=$sid;port=$port" ; $dsn = "DBI:SQLite:dbname=$dbfilename" ;
my $dbh = DBI -> connect ( $dsn 、'ユーザー名' 、'パスワード' );
参照
参考文献
- ^ 接続文字列と DSN
- ^ ODBC DSN接続文字列
- ^ 「PHP: PDO - マニュアル」www.php.net . 2025年1月22日閲覧。