Строки подключения в ADO.NET
Область применения: платформа .NET Framework .NET Standard
Строка подключения содержит сведения для инициализации, передаваемые в виде параметра от поставщика данных в источник данных. Поставщик данных получает строку подключения в качестве значения свойства 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
.
Защита сведений о подключении
Демонстрирует методы защиты сведений, используемых для подключения к источнику данных.