Syntax für Verbindungszeichenfolgen (ADO.NET)
Aktualisiert: November 2007
Alle .NET Framework-Datenanbieter besitzen ein Connection-Objekt, das von DbConnection erbt, sowie eine anbieterspezifische ConnectionString-Eigenschaft. Die spezifische Verbindungszeichenfolgensyntax für den jeweiligen Anbieter wird in dessen ConnectionString-Eigenschaft dokumentiert. In der folgenden Tabelle sind die vier Datenanbieter aufgelistet, die in .NET Framework enthalten sind.
.NET Framework-Datenanbieter |
Beschreibung |
---|---|
Ermöglicht den Datenzugriff für Microsoft SQL Server 7.0 oder höher. Weitere Informationen zur Verbindungszeichenfolgensyntax finden Sie unter ConnectionString. |
|
Ermöglicht den Datenzugriff für Datenquellen, die mit OLE DB verfügbar gemacht werden. Weitere Informationen zur Verbindungszeichenfolgensyntax finden Sie unter ConnectionString. |
|
Ermöglicht den Datenzugriff für Datenquellen, die mit ODBC verfügbar gemacht werden. Weitere Informationen zur Verbindungszeichenfolgensyntax finden Sie unter ConnectionString. |
|
Ermöglicht den Datenzugriff für Oracle 8.1.7 oder höher. Weitere Informationen zur Verbindungszeichenfolgensyntax finden Sie unter ConnectionString. |
Verbindungszeichenfolgen-Generatoren
ADO.NET 2.0 hat die folgenden Verbindungszeichenfolgen-Generatoren für die .NET Framework-Datenanbieter eingeführt.
Die Verbindungszeichenfolgen-Generatoren ermöglichen die Konstruktion syntaktisch gültiger Verbindungszeichenfolgen zur Laufzeit, sodass Sie die Werte der Verbindungszeichenfolgen in Ihrem Code nicht manuell verketten müssen. Weitere Informationen dazu finden Sie unter Verbindungszeichenfolgen-Generatoren (ADO.NET).
Windows-Authentifizierung
Wir empfehlen, zum Herstellen einer Verbindung mit Datenquellen, die die Windows-Authentifizierung unterstützen, auch die Windows-Authentifizierung (mitunter als Integrated Security bezeichnet) zu verwenden. Die in der Verbindungszeichenfolge zu verwendende Syntax richtet sich nach dem Datenanbieter. In der folgenden Tabelle wird die Syntax der Windows-Authentifizierung dargestellt, die bei .NET Framework-Datenanbietern verwendet wird.
Anbieter |
Syntax |
---|---|
SqlClient |
Integrated Security=true; -- or -- Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Hinweis: |
---|
Wenn der OleDb-Anbieter verwendet wird und für Integrated Security der Wert true angegeben ist, wird eine Ausnahme ausgelöst. |
SqlClient-Verbindungszeichenfolgen
Die Syntax für eine SqlConnection-Verbindungszeichenfolge wird in der ConnectionString-Eigenschaft dokumentiert. Mit der ConnectionString-Eigenschaft können Sie eine Verbindungszeichenfolge für eine Datenbank in SQL Server 7.0 oder höher abrufen oder festlegen. Wenn Sie eine Verbindung mit einer früheren Version von SQL Server herstellen müssen, müssen Sie den .NET Framework-Datenanbieter für OLE DB (System.Data.OleDb) verwenden. Für die meisten Schlüsselwörter in Verbindungszeichenfolgen gibt es bei den SqlConnectionStringBuilder-Eigenschaften passende Entsprechungen.
Alle der folgenden Syntaxformen verwenden beim Herstellen einer Verbindung zu einer AdventureWorks-Datenbank auf einem lokalen Server die Windows-Authentifizierung.
"Persist Security Info=False;Integrated Security=true;
Initial Catalog=AdventureWorks;Server=MSSQL1"
"Persist Security Info=False;Integrated Security=SSPI;
database=AdventureWorks;server=(local)"
"Persist Security Info=False;Trusted_Connection=True;
database=AdventureWorks;server=(local)"
SQL Server-Anmeldungen
Zum Herstellen einer Verbindung mit SQL Server ist vorzugsweise die Windows-Authentifizierung zu verwenden. Wenn jedoch die SQL Server-Authentifizierung erforderlich ist, verwenden Sie zum Angeben eines Benutzernamens und Kennworts die im Folgenden beschriebene Syntax. In diesem Beispiel werden der Benutzername und das Kennwort durch Sternchen dargestellt.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
Sicherheitshinweis: |
---|
Die Standardeinstellung für dasPersistSecurity Info-Schlüsselwort ist false. Wenn die Einstellung in true bzw. yes geändert wird, sind sicherheitsrelevante Informationen, die über diese Verbindung übertragen werden, wie Benutzer-ID und Kennwort, nicht mehr sicher. Daher sollten Sie für PersistSecurity Info die Einstellung false beibehalten, damit sichergestellt ist, dass niemand, der nicht vertrauenswürdig ist, auf sicherheitsrelevante Informationen in Verbindungszeichenfolgen zugreifen kann. |
Wenn Sie eine Verbindung mit einer benannten Instanz von SQL Server herstellen möchten, verwenden Sie die Syntax Servername\Instanzname.
Data Source=MySqlServer\MSSQL1;"
Sie können beim Erstellen einer Verbindungszeichenfolge auch die DataSource-Eigenschaft des SqlConnectionStringBuilder auf den Instanznamen setzen. Die DataSource-Eigenschaft eines SqlConnection-Objekts ist schreibgeschützt.
Änderungen an der Typsystemversion
Welche Funktionalität einer Clientanwendung zur Verfügung steht, ist von der SQL Server-Version und der Kompatibilitätsstufe der Datenbank abhängig. Die Type System Version-Schlüsselwörter in einer ConnectionString können zum Angeben der clientseitigen Darstellung von SQL Server-Typen verwendet werden. Diese Einstellung wird verwendet, um potenzielle Probleme zu vermeiden, die dazu führen könnten, dass eine Anwendung nicht funktioniert, wenn eine andere SQL Server-Version als die Version verwendet wird, für die die Anwendung geschrieben wurde. Wenn Sie z. B. SQL Server 2000 angeben, werden UDT-Spalten als byte[]-Array dargestellt. Wird dagegen SQL Server 2005 angegeben, erfolgt die Darstellung als verwaltete Typen.
Die verfügbaren Type System Version-Werte werden in der folgenden Tabelle beschrieben.
Wert |
Beschreibung |
---|---|
Latest |
Verwendet die neueste Version, die dieses Client/Server-Paar behandeln kann. Die verwendete Version rückt beim Aktualisieren der Client- und Serverkomponenten automatisch vor. Dies ist die Standardeinstellung in ADO.NET. |
SQL Server 2000 |
Verwendet das SQL Server 2000-Typsystem. |
SQL Server 2005 |
Verwendet das SQL Server 2005-Typsystem. |
SQL Server 2008 |
Verwendet das SQL Server 2008-Typsystem. Die Verarbeitung der Datetime-Werte erfolgt in Abhängigkeit von der Version des Typensystems und von der auf dem Server angegebenen Standardsprache. |
Um die Kompatibilität mit Features zu gewährleisten, die in SQL Server 2008 neu eingeführt wurden, können Sie den Type System Version-Wert wie folgt explizit in der Verbindungszeichenfolge angeben:
Type System Version= SQL Server 2008;
Type System Version=Latest;
Hinweis: |
---|
Die Typensystemversion kann nicht für CLR-Code festgelegt werden, der in SQL Server prozessintern ausgeführt wird. Weitere Informationen finden Sie unterSQL Server Common Language Runtime-Integration (ADO.NET). |
Mit SQL Server Express-BenutzerinstanzenVerbinden und Anfügen
Benutzerinstanzen sind ein neues Feature, das nur in SQL Server 2005 Express Edition verfügbar ist. Mit ihrer Hilfe können Benutzer, die mit einem lokalen Windows-Konto der untersten Berechtigungsebene (LUA) arbeiten, eine SQL Server-Datenbank anfügen und ausführen, ohne dass dafür Administratorrechte erforderlich sind. Eine Benutzerinstanz wird mit den Windows-Anmeldeinformationen des Benutzers und nicht als Dienst ausgeführt.
Weitere Informationen zum Arbeiten mit Benutzerinstanzen finden Sie unter Herstellen einer Verbindung mit SQL Server Express-Benutzerinstanzen (ADO.NET).
Verwenden von "TrustServerCertificate"
Das TrustServerCertificate-Schlüsselwort ist neu in ADO.NET 2.0 und nur für Verbindungen mit einer SQL Server 2005-Instanz mit einem gültigen Zertifikat gültig. Wenn TrustServerCertificate auf true gesetzt wird, verwendet die Transportschicht zum Verschlüsseln des Kanals SSL und umgeht beim Validieren der Vertrauenswürdigkeit die Zertifikatkette.
"TrustServerCertificate=true;"
Hinweis: |
---|
Wenn TrustServerCertificate auf true gesetzt wird und die Verschlüsselung aktiviert ist, wird die auf dem Server angegebene Verschlüsselungsstufe auch dann verwendet, wenn Encrypt in der Verbindungszeichenfolge auf false gesetzt ist. Anderenfalls schlägt die Verbindung fehl. |
Aktivieren der Verschlüsselung
Wenn auf dem Server kein Zertifikat bereitgestellt wurde und Sie die Verschlüsselung aktivieren möchten, müssen Sie im SQL Server-Konfigurations-Manager die Optionen Protokollverschlüsselung erzwingen und Dem Serverzertifikat vertrauen aktivieren. In diesem Fall verwendet die Verschlüsselung ein selbst signiertes Serverzertifikat ohne Validierung, sofern auf dem Server kein überprüfbares Zertifikat bereitgestellt wurde.
Die Anwendungseinstellungen können nicht zu einer Einschränkung der in SQL Server konfigurierten Sicherheitsstufe führen, sondern verstärken sie sogar möglicherweise. Eine Anwendung kann die Verschlüsselung anfordern, indem die Schlüsselwörter TrustServerCertificate und Encrypt auf true gesetzt werden. Dadurch wird sichergestellt, dass die Verschlüsselung auch dann erfolgt, wenn kein Serverzertifikat bereitgestellt wurde und die Option Protokollverschlüsselung erzwingen für den Client nicht konfiguriert wurde. Wenn jedoch TrustServerCertificate in der Clientkonfiguration nicht aktiviert wird, ist immer noch ein bereitgestelltes Serverzertifikat erforderlich.
In der folgenden Tabelle werden alle Fälle beschrieben.
Clienteinstellung "Protokollverschlüsselung erzwingen" |
Clienteinstellung "Dem Serverzertifikat vertrauen" |
Verbindungszeichenfolge/Attribut "Encrypt"/"Use Encryption for Data" |
Verbindungszeichenfolge/Attribut "TrustServerCertificate" |
Ergebnis |
---|---|---|---|---|
nein |
— |
nein (Standard) |
ignoriert |
Es erfolgt keine Verschlüsselung. |
nein |
— |
ja |
nein (Standard) |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
nein |
— |
ja |
ja |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
ja |
nein |
ignoriert |
ignoriert |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
ja |
ja |
nein (Standard) |
ignoriert |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
ja |
ja |
ja |
nein (Standard) |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
ja |
ja |
ja |
ja |
Eine Verschlüsselung erfolgt nur, wenn ein überprüfbares Serverzertifikat vorhanden ist. Andernfalls schlägt der Verbindungsversuch fehl. |
Weitere Informationen finden Sie unter Verschlüsselung ohne Validierung in der SQL Server-Onlinedokumentation.
OLE DB-Verbindungszeichenfolgen
Mit der ConnectionString-Eigenschaft einer OleDbConnection können Sie eine Verbindungszeichenfolge für eine OLE DB-Datenquelle wie Microsoft Access oder SQL Server 6.5 oder höher abrufen bzw. festlegen. Mit der OleDbConnectionStringBuilder-Klasse können Sie auch zur Laufzeit eine OleDb-Verbindungszeichenfolge erstellen.
Syntax für OLE DB-Verbindungszeichenfolgen
Sie müssen für eine OleDbConnection-Verbindungszeichenfolge einen Anbieternamen angeben. Die folgende Verbindungszeichenfolge stellt mithilfe des Jet-Anbieters eine Verbindung mit einer Microsoft Access-Datenbank her. Beachten Sie, dass die Schlüsselwörter UserID und Password optional sind, wenn die Datenbank ungesichert (Standardeinstellung) ist.
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Wenn die Jet-Datenbank auf Benutzerebene gesichert ist, müssen Sie den Speicherort der Arbeitsgruppen-Informationsdatei (.mdw) angeben. Die Arbeitsgruppen-Informationsdatei wird verwendet, um die in der Verbindungszeichenfolge präsentierten Anmeldeinformationen zu überprüfen.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Verwenden Sie sqloledb als Anbieter-Schlüsselwort für SQL Server 6.5 oder frühere Versionen.
Provider=sqloledb;Data Source=MySqlServer;Initial Catalog=pubs;User Id=*****;Password=*****;
Sicherheitshinweis: |
---|
Verbindungsinformationen für eine OleDbConnection können in einer UDL-Datei (Universal Data Link) bereitgestellt werden. Dies wird jedoch nicht empfohlen. UDL-Dateien sind nicht verschlüsselt und machen Informationen zur Verbindungszeichenfolge im Klartext verfügbar. Da es sich bei einer UDL-Datei um eine externe Ressource der Anwendung handelt, kann sie nicht mit .NET Framework gesichert werden. UDL-Dateien werden nicht für SqlClient unterstützt. |
Verwenden von "DataDirectory" zum Herstellen einer Verbindung mit Access/Jet
DataDirectory steht nicht exklusiv nur SqlClient zur Verfügung. Es kann auch für den System.Data.OleDb- und den System.Data.Odbc-.NET-Datenanbieter verwendet werden. Die folgende OleDbConnection-Beispielzeichenfolge zeigt die Syntax, die erforderlich ist, um eine Verbindung mit der im Ordner app_data der Anwendung befindlichen Datei Northwind.mdb herzustellen. Die Systemdatenbank (System.mdw) ist ebenfalls an diesem Speicherort gespeichert.
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Sicherheitshinweis: |
---|
Die Angabe des Speicherorts der Systemdatenbank in der Verbindungszeichenfolge ist nicht erforderlich, wenn die Access-/Jet-Datenbank ungesichert ist. Die Sicherheit ist standardmäßig deaktiviert, sodass alle Benutzer eine Verbindung als integrierter Admin-Benutzer mit einem leeren Kennwort herstellen. Selbst wenn die Sicherheit auf Benutzerebene ordnungsgemäß implementiert ist, bleibt eine Jet-Datenbank durch Angriffe verwundbar. Aufgrund der inhärenten Schwäche des dateibasierten Sicherheitsschemas von Access-/Jet-Datenbanken wird davon abgeraten, in solchen Datenbanken sicherheitsrelevante Informationen zu speichern. |
Herstellen einer Verbindung mit Excel
Für die Verbindung mit einer Excel-Arbeitsmappe wird der Microsoft Jet-Anbieter verwendet. In der folgenden Verbindungszeichenfolge werden mit dem Schlüsselwort Extended Properties Excel-spezifische Eigenschaften festgelegt. HDR=Yes; gibt an, dass die erste Zeile Spaltennamen und keine Daten enthält, und IMEX=1; weist den Treiber an, miteinander vermischte Datenspalten immer als Text zu lesen.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
Beachten Sie, dass die für das Extended Properties-Schlüsselwort erforderlichen doppelten Anführungszeichen ihrerseits ebenfalls in doppelte Anführungszeichen gesetzt werden müssen.
Syntax für Verbindungszeichenfolgen für den MS Data Shape-Anbieter
Verwenden Sie für den MS Data Shape-Anbieter die Schlüsselwörter Provider und Data Provider. Im folgenden Beispiel wird mithilfe des Shape-Anbieters eine Verbindung mit einer lokalen Instanz von SQL Server hergestellt.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
ODBC-Verbindungszeichenfolgen
Mit der ConnectionString-Eigenschaft einer OdbcConnection können Sie eine Verbindungszeichenfolge für eine OLE DB-Datenquelle abrufen oder festlegen. ODBC-Verbindungszeichenfolgen werden auch vom OdbcConnectionStringBuilder unterstützt.
In der folgenden Verbindungszeichenfolge wird der Microsoft-Texttreiber verwendet.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Verwenden von "DataDirectory" zum Herstellen einer Verbindung mit Visual FoxPro
Das folgende Beispiel für eine OdbcConnection-Verbindungszeichenfolge zeigt, wie mit DataDirectory eine Verbindung mit einer Microsoft Visual FoxPro-Datei hergestellt werden kann.
"Driver={Microsoft Visual FoxPro Driver};
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"
Oracle-Verbindungszeichenfolgen
Mit der ConnectionString-Eigenschaft einer OracleConnection können Sie eine Verbindungszeichenfolge für eine OLE DB-Datenquelle abrufen oder festlegen. Oracle-Verbindungszeichenfolgen werden auch vom OracleConnectionStringBuilder unterstützt.
Data Source=Oracle9i;User ID=*****;Password=*****;
Weitere Informationen zur Syntax für ODBC-Verbindungszeichenfolgen finden Sie unter ConnectionString.