Строки подключения в 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. Microsoft. Data.SqlClient поддерживает множество ключевых слов из старых API, но обычно является более гибким и принимает синонимы для многих распространенных ключевых слов строка подключения.

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

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

Внимание

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

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

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

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

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

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

См. также