Поделиться через


Строки подключения в ADO.NET

Строка подключения содержит сведения для инициализации, передаваемые в виде параметра от поставщика данных в источник данных. Поставщик данных получает строку подключения в качестве значения свойства DbConnection.ConnectionString. Поставщик анализирует эту строку подключения, проверяет правильность синтаксиса и поддержку ключевых слов. Затем с помощью метода DbConnection.Open() полученные параметры подключения передаются в источник данных. Источник данных выполняет дополнительную проверку и устанавливает подключение.

Синтаксис строки подключения

Строка подключения содержит список пар "ключ-значение", разделенных точками с запятой:

keyword1=value; keyword2=value;

Ключевые слова не учитывают регистр. Но значения для некоторых источников данных нужно задавать с учетом регистра. Ключевые слова и значения могут содержать символы пробелов. Начальные и конечные пробелы игнорируются в ключевых словах и в значениях, не заключенных в кавычки.

Если значение содержит точку с запятой, управляющие символы Юникода, начальные или конечные пробелы, его необходимо заключить в одинарные или двойные кавычки. Например:

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

Выбранный для заключения символ не должен содержаться в значении. Таким образом, значение с одинарными кавычками можно заключать только в двойные кавычки, и наоборот:

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

Также можно экранировать этот символ, заменив его парой таких символов:

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

Сами кавычки, а также знак равенства, экранировать не нужно, то есть следующие строки подключения являются допустимыми:

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

Так как каждое значение считывается до следующей точки с запятой или конца строки, значение в последнем примере является a=b=cнеобязательным.

Все строка подключения используют один и тот же базовый синтаксис, описанный ранее. Однако набор распознанных ключевых слов зависит от поставщика и развивается на протяжении многих лет от предыдущих API, таких как ODBC. Поставщик данных платформа .NET Framework для SQL Server (SqlClient) поддерживает множество ключевых слов из старых API, но обычно является более гибким и принимает синонимы для многих распространенных ключевых слов строка подключения.

Опечатки могут привести к ошибкам при подключении. Например, Integrated Security=true считается допустимым, а IntegratedSecurity=true вызовет ошибку.

Строки соединения, создаваемые вручную во время выполнения по данным из непроверенных источников, вызывают уязвимость к атакам путем внедрения данных в строку и подвергают риску безопасность источника данных. Для решения этих проблем ADO.NET 2.0 появились строка подключения построители для каждого поставщика данных платформа .NET Framework. Эти строка подключения построители предоставляют параметры как строго типизированные свойства и позволяют проверить строка подключения перед отправкой в источник данных.

Внимание

Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к SQL Azure, управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.

В этом разделе

Построители строк подключения
Демонстрирует использование классов ConnectionStringBuilder для создания достоверных строк соединения во время выполнения.

Строки подключения и файлы конфигурации
Демонстрирует хранение и получение строк соединения в файлах конфигурации.

Синтаксис строки подключения
Описывает настройку строк соединения, зависящих от поставщика, для SqlClient, OracleClient, OleDb и Odbc.

Защита сведений о подключении
Демонстрирует методы защиты сведений, используемых для подключения к источнику данных.

См. также