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


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

Область применения: платформа .NET Framework .NET Standard

Скачать 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. Конечную точку с запятой указывать не обязательно.

Все строки подключения используют один и тот же базовый синтаксис, описанный выше. Набор распознаваемых ключевых слов зависит от поставщика. Поставщик данных Microsoft SqlClient для SQL Server поддерживает много ключевых слов из старых API-интерфейсов, но в целом он более гибкий и принимает в строке подключения синонимы для многих распространенных ключевых слов.

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

Строки подключения, создаваемые вручную во время выполнения по данным из непроверенных источников, вызывают уязвимость к атакам путем внедрения данных в строку и подвергают риску безопасность источника данных. Для решения этих проблем был создан класс SqlConnectionStringBuilder. Построитель строк подключения предоставляет параметры в виде строго типизированных свойств и позволяет проверить строку подключения перед отправкой в источник данных.

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

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

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

Синтаксис строки подключения
Здесь объясняется, как настроить строки подключения к конкретному поставщику для SqlClient.

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

См. также