Имя источника данных
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2022 г. ) |
В вычислительной технике имя источника данных ( DSN , иногда называемое именем источника базы данных , хотя « источники данных » могут включать в себя и другие репозитории, помимо баз данных ) — это строка, имеющая связанную структуру данных , используемую для описания соединения с источником данных. Чаще всего используемые в связи с ODBC , DSN также существуют для JDBC и других механизмов доступа к данным. Этот термин часто пересекается с « строкой подключения ». Большинство систем не делают различий между DSN и строками подключения, и этот термин часто можно использовать как синонимы. [1]
Атрибуты DSN могут включать, помимо прочего: [2]
- имя источника данных
- расположение источника данных
- имя драйвера базы данных , который может получить доступ к источнику данных
- идентификатор пользователя для доступа к данным (при необходимости)
- пароль пользователя для доступа к данным (при необходимости)
Системный администратор клиентского компьютера обычно создает отдельный DSN для каждого соответствующего источника данных.
Стандартизация DSN предлагает определенный уровень косвенности ; различные приложения (например: Apache / PHP и IIS / ASP ) могут воспользоваться этим при доступе к общим источникам данных.
Типы названий источников данных [ править ]
Существует два типа DSN:
- Машинные DSN — хранятся в коллективных файлах конфигурации (например, /etc/odbc.ini, ~/.odbc.ini) и/или системных ресурсах (например, реестр Windows HKLM\Software\ODBC\odbc.ini).
- Файловые DSN – хранятся в файловой системе по одному 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) могут отправлять запросы CRUD (создание, чтение, обновление, удаление) к источнику данных, устанавливая соединение с DSN.
Код ASP ( VBScript ) для открытия DSN-соединения может выглядеть следующим образом:
Dim DatabaseObject1
Set DatabaseObject1 = Server.CreateObject("ADODB.Connection")
DatabaseObject1.Open("DSN=example;")
В PHP, использующем пакет PEAR::DB для открытия соединения без внешнего DSN («соединение без DSN», т. е. с использованием строки подключения), код может выглядеть следующим образом.
require_once("DB.php");
//$dsn = "<driver>://<username>:<password>@<host>:<port>/<database>";
$dsn = "mysql://john:pass@localhost:3306/my_db";
$db = DB::connect($dsn);
PHP с PDO.
$dsn = "mysql:host=localhost;dbname=example";
$dbh = new PDO($dsn, $username, $password);
В Perl , используя модуль Perl DBI , каждый драйвер имеет свой собственный синтаксис для атрибутов DSN. Единственное требование, которое предъявляет DBI, — это то, чтобы вся информация, за исключением имени пользователя и пароля, предоставлялась в одном строковом аргументе.
my $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,'username','password');