Verbindungszeichenfolgen in ADO.NET
Eine Verbindungszeichenfolge enthält Initialisierungsinformationen, die als Parameter von einem Datenanbieter an eine Datenquelle übergeben werden. Der Datenanbieter empfängt die Verbindungszeichenfolge als Wert der DbConnection.ConnectionString-Eigenschaft. Der Anbieter analysiert die Verbindungszeichenfolge und stellt sicher, dass die Syntax stimmt und die Schlüsselwörter unterstützt werden. Anschließend übergibt die DbConnection.Open()-Methode die analysierten Verbindungsparameter an die Datenquelle. Die Datenquelle führt eine weitere Prüfung durch und stellt eine Verbindung her.
Syntax von Verbindungszeichenfolgen
Eine Verbindungszeichenfolge besteht aus einer durch Semikolons getrennten Liste mit Paaren von Schlüssel-Wert-Parametern:
keyword1=value; keyword2=value;
Bei Schlüsselwörtern muss die Groß-/Kleinschreibung nicht beachtet werden. Allerdings muss bei Werten je nach Datenquelle möglicherweise Groß-/Kleinschreibung beachtet werden. Sowohl Schlüsselwörter als auch Werte können Leerzeichen enthalten. Führende und nachstehende Leerzeichen werden in Schlüsselwörtern und Werten ohne Anführungszeichen ignoriert.
Wenn ein Wert das Semikolon, Unicode-Steuerzeichen oder führende oder nachstehende Leerzeichen enthält, muss er von einfachen oder doppelten Anführungszeichen umschlossen werden. Beispiel:
Keyword=" whitespace ";
Keyword='special;character';
Das umschließende Zeichen darf nicht im Wert vorkommen, den es umschließt. Daher kann ein Wert, der einfache Anführungszeichen enthält, nur von doppelten Anführungszeichen umschlossen werden und umgekehrt:
Keyword='double"quotation;mark';
Keyword="single'quotation;mark";
Sie können das umschließende Zeichen auch mit Escapezeichen versehen, indem Sie zwei davon zusammen verwenden:
Keyword="double""quotation";
Keyword='single''quotation';
Sowohl die Anführungszeichen selbst als auch das Gleichheitszeichen müssen nicht mit Escapezeichen versehen werden, sodass die folgenden Verbindungszeichenfolgen gültig sind:
Keyword=no "escaping" 'required';
Keyword=a=b=c
Da jeder Wert bis zum nächsten Semikolon bzw. bis zum Ende einer Zeichenfolge gelesen wird, ist der Wert im letzteren Beispiel a=b=c
und das abschließende Semikolon optional.
Alle Verbindungszeichenfolgen haben dieselbe grundlegende Syntax, die zuvor beschrieben wurde. Der Satz der erkannten Schlüsselwörter hängt jedoch vom Anbieter ab und hat sich im Laufe der Jahre von früheren APIs wie ODBC weiterentwickelt. Der .NET Framework-Datenanbieter für SQL Server (SqlClient
) unterstützt viele Schlüsselwörter älterer APIs, ist jedoch im Allgemeinen flexibler und akzeptiert Synonyme für viele der gängigen Schlüsselwörter in Verbindungszeichenfolgen.
Tippfehler können Fehler verursachen. Beispielsweise ist Integrated Security=true
gültig, aber IntegratedSecurity=true
verursacht einen Fehler.
Verbindungszeichenfolgen, die zur Laufzeit manuell anhand nicht überprüfter Benutzereingaben erstellt werden, sind anfällig für Zeichenfolgeneinschleusungs-Angriffe und gefährden die Sicherheit der Datenquelle. Zur Behandlung dieser Probleme hat ADO.NET 2.0 Verbindungszeichenfolgen-Generatoren für die einzelnen .NET Framework-Datenanbieter eingeführt. Diese Verbindungszeichenfolgen-Generatoren machen Parameter als stark typisierte Eigenschaften verfügbar und ermöglichen es, die Verbindungszeichenfolge zu überprüfen, bevor sie zur Datenquelle gesendet wird.
Wichtig
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Wenn Sie eine Verbindung mit Azure SQL herstellen, ist Managed Identities for Azure Resources die empfohlene Authentifizierungsmethode.
In diesem Abschnitt
Verbindungszeichenfolgen-Generatoren
Zeigt, wie mit den ConnectionStringBuilder
-Klassen gültige Verbindungszeichenfolgen zur Laufzeit erstellt werden können.
Verbindungszeichenfolgen und Konfigurationsdateien
Zeigt, wie Verbindungszeichenfolgen in Konfigurationsdateien gespeichert und abgerufen werden können.
Syntax der Verbindungszeichenfolge
Beschreibt das Konfigurieren anbieterspezifischer Verbindungszeichenfolgen für SqlClient
, OracleClient
, OleDb
und Odbc
.
Schützen von Verbindungsinformationen
Demonstriert Verfahren zum Schützen von Informationen, die beim Herstellen von Verbindungen mit einer Datenquelle verwendet werden.