Łańcuchy połączenia w ADO.NET

Ciąg połączenia zawiera informacje inicjalizacyjne przekazywane jako parametr od dostawcy danych do źródła danych. Dostawca danych otrzymuje parametry połączenia jako wartość DbConnection.ConnectionString właściwości. Dostawca analizuje parametry połączenia i zapewnia poprawność składni oraz że słowa kluczowe są obsługiwane. DbConnection.Open() Następnie metoda przekazuje przeanalizowane parametry połączenia do źródła danych. Źródło danych przeprowadza dalszą walidację i ustanawia połączenie.

Składnia parametrów połączenia

Parametry połączenia to rozdzielana średnikami lista par parametrów klucz/wartość:

keyword1=value; keyword2=value;

Słowa kluczowe nie uwzględniają wielkości liter. Wartości mogą być wrażliwe na wielkość liter, w zależności od źródła danych. Słowa kluczowe i wartości mogą zawierać znaki odstępu. Wiodące i końcowe spacje są ignorowane w słowach kluczowych i wartościach nieobjętych cudzysłowami.

Jeśli wartość zawiera średnik, znaki kontrolne Unicode lub wiodące albo końcowe spacje, musi być zamknięta w pojedynczy lub podwójny cudzysłów. Na przykład:

Keyword=" whitespace  ";
Keyword='special;character';

Znak otaczający nie może wystąpić wewnątrz wartości, którą otacza. W związku z tym wartość zawierająca pojedyncze apostrofy może być ujęta tylko w podwójne cudzysłowy i odwrotnie:

Keyword='double"quotation;mark';
Keyword="single'quotation;mark";

Możesz również uciec od otaczającego znaku, używając dwóch z nich:

Keyword="double""quotation";
Keyword='single''quotation';

Znaki cudzysłowu, a także znak równości, nie wymagają ucieczki, więc następujące parametry połączenia są prawidłowe:

Keyword=no "escaping" 'required';
Keyword=a=b=c

Ponieważ każda wartość jest odczytywana do następnego średnika lub końca ciągu, wartość w ostatnim przykładzie to a=b=c, a końcowy średnik jest opcjonalny.

Wszystkie parametry połączenia mają tę samą podstawową składnię opisaną wcześniej. Zestaw rozpoznanych słów kluczowych zależy jednak od dostawcy i ewoluował na przestrzeni lat od wcześniejszych interfejsów API, takich jak ODBC. Microsoft.Data.SqlClient obsługuje wiele słów kluczowych ze starszych interfejsów API, ale jest ogólnie bardziej elastyczny i akceptuje synonimy wielu typowych słów kluczowych parametrów połączenia.

Błędy wpisywania mogą powodować błędy. Na przykład jest prawidłowy, Integrated Security=true ale IntegratedSecurity=true powoduje błąd.

Parametry połączenia, skonstruowane ręcznie w czasie wykonywania z nieważnych danych wejściowych użytkownika, są narażone na ataki wstrzykiwania ciągów znaków i zagrażają bezpieczeństwu źródła danych. Aby rozwiązać te problemy, ADO.NET 2.0 wprowadzono konstruktorów parametrów połączenia dla każdego dostawcy danych .NET Framework. Te konstruktory łańcuchów połączenia uwidaczniają parametry jako silnie typizowane właściwości i umożliwiają sprawdzenie łańcucha połączenia przed jego wysłaniem do źródła danych.

Ważne

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.

W tej sekcji

Budowniki ciągów połączeń
Pokazuje, jak używać ConnectionStringBuilder klas do konstruowania prawidłowych łańcuchów połączenia w czasie działania programu.

Parametry połączenia i pliki konfiguracji
Pokazuje, jak przechowywać i pobierać parametry połączenia w plikach konfiguracji.

Składnia łańcucha połączenia
Opisuje, jak skonfigurować specyficzne dla dostawcy ciągi połączenia dla SqlClient, OracleClient, OleDb i Odbc.

Ochrona informacji o połączeniu
Demonstruje techniki ochrony informacji używanych do nawiązywania połączenia ze źródłem danych.

Zobacz też