Der Data Source Name (DSN) ist eine Datenstruktur (zum Beispiel eine URI, oder ein Dateipfad), welche bei Datenbankabstraktions-Frameworks (Datenbankabstraktionsschicht) wie ODBC (Open Database Connectivity), JDBC oder ADOdb die Zugangsdaten beschreibt, die ein Treiber benötigt, um eine Verbindung zu einer bestimmten Datenbank auf Basis eines spezifischen RDBMSs herzustellen.
Der DSN enthält Informationen wie den Namen, das Verzeichnis, und den Treiber der Datenbank, und, basierend auf dem Typ des DSN, die ID und das Passwort des Benutzers.
Je nach Framework unterscheidet sich die Notation des DSN zum Teil gravierend:
Verschiedene Notationen
JDBC
jdbc:sybase://127.0.0.1:700/MyDataBase
PEAR::db (PHP Framework)
mysql://root:rootpw@localhost/MyDataBase
ODBC
Für ODBC-DSNs existieren verschiedene Darstellungsformen. Entweder werden die DSNs 'hartverdrahtet' und als DSN-lose Verbindung direkt im Programmcode eingebaut. Dann ist die Darstellung wie folgt:
DBQ=C:\TEST\QUERY FILES;DefaultDir=C:\TEST\QUERY FILES; _ Deleted=1;Driver={Microsoft dBase Driver (*.dbf)}; _ DriverId=277;FIL=dBase IV;PageTimeout=600;Statistics=0
Darüber hinaus besteht die Möglichkeit, die DSN in der Registry (in älteren Versionen von MS-Query) oder in sogenannten File DSNs zu speichern. Diese Bezeichnung ist von Microsoft etwas unglücklich gewählt, da es sich nicht um eine DSN-Referenz AUF eine Datei (z. B. XML-Datei), sondern um eine DSN-Referenz IN einer Datei handelt.
Dementsprechend kann eine file DSN bzw. eine DSN-Datei die Daten in einer Notation ähnlich wie in einer .ini-Datei enthalten:
[ODBC] DRIVER=Microsoft Excel Driver (*.xls) UID=admin UserCommitSync=Yes Threads=3 SafeTransactions=0 ReadOnly=1 PageTimeout=5 MaxScanRows=8 MaxBufferSize=512 ImplicitCommitSync=Yes FIL=excel 5.0 DriverId=790 DefaultDir=<drive letter>:\ DBQ=<drive letter>:\<source filename>
ODBC unterscheidet drei Arten von DSN:
- Benutzer-DSN (User DSN)
- System-DSN (Machine DSN)
- Datei-DSN (File DSN)
Benutzer- und System-DSNs sind rechnerspezifisch und speichern die DSN-Informationen in der Registrierung. Ein Benutzer-DSN erlaubt Datenbankzugriffe für einen einzelnen Benutzer auf einem einzelnen Rechner, ein System-DSN für jeden Benutzer eines bestimmten Rechners. Ein Datei-DSN enthält relevante Informationen in einer Textdatei mit einer .DSN Dateiendung und kann von mehreren Benutzern und von mehreren Rechnern genutzt werden, wenn sie dieselben Datenbank-Treiber installiert haben.