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

Строка подключения содержит сведения для инициализации, передаваемые в виде параметра от поставщика данных в источник данных.A connection string contains initialization information that is passed as a parameter from a data provider to a data source. Поставщик данных получает строку подключения в качестве значения DbConnection.ConnectionString свойства.The data provider receives the connection string as the value of the DbConnection.ConnectionString property. Поставщик анализирует строку подключения и проверяет правильность синтаксиса и наличие ключевых слов.The provider parses the connection string and ensures that the syntax is correct and that the keywords are supported. DbConnection.Open() Затем метод передает проанализированные параметры соединения в источник данных.Then the DbConnection.Open() method passes the parsed connection parameters to the data source. Источник данных выполняет дальнейшую проверку и устанавливает соединение.The data source performs further validation and establishes a connection.

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

Строка подключения представляет собой разделенный точками с запятой список пар параметров "ключ-значение":A connection string is a semicolon-delimited list of key/value parameter pairs:

keyword1=value; keyword2=value;

В ключевых словах регистр не учитывается.Keywords are not case-sensitive. При этом значения в зависимости от источника данных могут быть чувствительны к регистру.Values, however, may be case-sensitive, depending on the data source. Ключевые слова и значения могут содержать символы пробела.Both keywords and values may contain whitespace characters. Начальные и конечные пробелы игнорируются в ключевых словах и в значениях, не заключенных в кавычки.Leading and trailing white space is ignored in keywords and unquoted values.

Если значение содержит точку с запятой, управляющие символы Юникодаили начальные или конечные пробелы, их необходимо заключить в одинарные или двойные кавычки.If a value contains the semicolon, Unicode control characters, or leading or trailing white space, it must be enclosed in single or double quotation marks. Например:For example:

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

Окружающий символ может не находиться в заключенном в нем значении.The enclosing character may not occur within the value it encloses. Таким образом, значение, содержащее одинарные кавычки, может быть заключено только в двойные кавычки и наоборот:Therefore, a value containing single quotation marks can be enclosed only in double quotation marks, and vice versa:

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

Можно также поэкранировать окружающий символ, используя два из них:You can also escape the enclosing character by using two of them together:

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

Кавычки, а также знак равенства не требуются для экранирования, поэтому следующие строки соединения являются допустимыми:The quotation marks themselves, as well as the equals sign, do not require escaping, so the following connection strings are valid:

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

Так как каждое значение считывается до следующей точки с запятой или конца строки, значение в последнем примере равно a=b=c, а конечная точка с запятой является необязательной.Since each value is read till the next semicolon or the end of string, the value in the latter example is a=b=c, and the final semicolon is optional.

Все строки подключения имеют один и тот же базовый синтаксис, описанный выше.All connection strings share the same basic syntax described above. Набор распознаваемых ключевых слов зависит от поставщика, но в течение многих лет он превратился в предыдущие API-интерфейсы, такие как ODBC.The set of recognized keywords depends on the provider, however, and has evolved over the years from earlier APIs such as ODBC. Поставщик данных .NET Framework для SQL Server (SqlClient) поддерживает много ключевых слов из старых API-интерфейсов, но обычно является более гибким и принимает синонимы для многих общих ключевых слов строки подключения.The .NET Framework data provider for SQL Server (SqlClient) supports many keywords from older APIs, but is generally more flexible and accepts synonyms for many of the common connection string keywords.

При вводе ошибок могут возникать ошибки.Typing mistakes can cause errors. Например, Integrated Security=true является допустимым, но IntegratedSecurity=true вызывает ошибку.For example, Integrated Security=true is valid, but IntegratedSecurity=true causes an error.

Строки подключения, созданные вручную во время выполнения из непроверенных входных данных, уязвимы для атак путем внедрения строк и поддают риску безопасность в источнике данных.Connection strings constructed manually at run time from unvalidated user input are vulnerable to string-injection attacks and jeopardize security at the data source. Для решения этих проблем в ADO.NET 2,0 появились построители строк подключения для каждого .NET Framework поставщика данных.To address these problems, ADO.NET 2.0 introduced connection string builders for each .NET Framework data provider. Эти построители строк подключения предоставляют параметры в виде строго типизированных свойств и позволяют проверить строку подключения перед отправкой в источник данных.These connection string builders expose parameters as strongly-typed properties, and make it possible to validate the connection string before it's sent to the data source.

В этом разделеIn This Section

Построители строк подключенияConnection String Builders
Демонстрирует использование классов ConnectionStringBuilder для создания достоверных строк соединения во время выполнения.Demonstrates how to use the ConnectionStringBuilder classes to construct valid connection strings at run time.

Строки подключения и файлы конфигурацииConnection Strings and Configuration Files
Демонстрирует хранение и получение строк соединения в файлах конфигурации.Demonstrates how to store and retrieve connection strings in configuration files.

Синтаксис строки подключенияConnection String Syntax
Описывает настройку строк соединения, зависящих от поставщика, для SqlClient, OracleClient, OleDb и Odbc.Describes how to configure provider-specific connection strings for SqlClient, OracleClient, OleDb, and Odbc.

Защита сведений о соединенииProtecting Connection Information
Демонстрирует методы защиты сведений, используемых для подключения к источнику данных.Demonstrates techniques for protecting information used to connect to a data source.

См. такжеSee also