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

Каждый поставщик данных платформы .NET Framework имеет объект Connection, наследующий из DbConnection, а также из свойства ConnectionString, зависящего от поставщика.Each .NET Framework data provider has a Connection object that inherits from DbConnection as well as a provider-specific ConnectionString property. Конкретный синтаксис строки подключения для каждого поставщика приведен в его свойстве ConnectionString.The specific connection string syntax for each provider is documented in its ConnectionString property. В следующей таблице представлен список четырех поставщиков данных, поставляемых в составе платформы .NET Framework.The following table lists the four data providers that are included in the .NET Framework.

Поставщик данных .NET Framework.NET Framework data provider ОписаниеDescription
System.Data.SqlClient Предоставляет доступ к данным для Microsoft SQL Server.Provides data access for Microsoft SQL Server. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.For more information on connection string syntax, see ConnectionString.
System.Data.OleDb Предоставляет доступ к данным источников данных OLE DB.Provides data access for data sources exposed using OLE DB. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.For more information on connection string syntax, see ConnectionString.
System.Data.Odbc Предоставляет доступ к данным источников данных ODBC.Provides data access for data sources exposed using ODBC. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.For more information on connection string syntax, see ConnectionString.
System.Data.OracleClient Предоставляет доступ к данным Oracle версии 8.1.7 или старше.Provides data access for Oracle version 8.1.7 or later. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.For more information on connection string syntax, see ConnectionString.

Построители строк подключенияConnection String Builders

В ADO.NET 2.0 появились указанные ниже построители строк соединения для поставщиков данных .NET Framework.ADO.NET 2.0 introduced the following connection string builders for the .NET Framework data providers.

Построители строк соединения позволяют создавать во время выполнения синтаксически правильные строки соединения, и поэтому в коде не требуется вручную объединять значения строк соединения.The connection string builders allow you to construct syntactically valid connection strings at run time, so you do not have to manually concatenate connection string values in your code. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).For more information, see Connection String Builders.

Проверка подлинности WindowsWindows Authentication

Мы рекомендуем использовать проверку подлинности Windows (иногда называемую встроенной безопасностью) для подключения к источникам данных, которые его поддерживают.We recommend using Windows Authentication (sometimes referred to as integrated security) to connect to data sources that support it. Синтаксис строки подключения зависит от поставщика.The syntax employed in the connection string varies by provider. В следующей таблице показан синтаксис проверки подлинности Windows, который используется с поставщиками данных платформы .NET Framework.The following table shows the Windows Authentication syntax used with the .NET Framework data providers.

ПоставщикProvider СинтаксисSyntax
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

Примечание

Значение Integrated Security=true вызывает исключение при работе с поставщиком OleDb.Integrated Security=true throws an exception when used with the OleDb provider.

Строки подключения SqlClientSqlClient Connection Strings

Синтаксис для строки подключения SqlConnection документирован в свойстве SqlConnection.ConnectionString.The syntax for a SqlConnection connection string is documented in the SqlConnection.ConnectionString property. Свойство ConnectionString используется для возврата или задания строки подключения для базы данных SQL Server.You can use the ConnectionString property to get or set a connection string for a SQL Server database. Если необходимо подключиться к более ранней версии SQL Server, следует использовать поставщик данных .NET Framework для OleDb (System.Data.OleDb).If you need to connect to an earlier version of SQL Server, you must use the .NET Framework Data Provider for OleDb (System.Data.OleDb). Наиболее распространенные ключевые слова строк соединения также соответствуют свойствам SqlConnectionStringBuilder.Most connection string keywords also map to properties in the SqlConnectionStringBuilder.

Важно!

По умолчанию для Persist Security Info ключевого слова используется значение false .The default setting for the Persist Security Info keyword is false. Значение true или yes позволяет получить из строки соединения конфиденциальные данные (в том числе идентификатор пользователя и пароль) после открытия соединения.Setting it to true or yes allows security-sensitive information, including the user ID and password, to be obtained from the connection after the connection has been opened. Persist Security InfoУстановите значение, чтобы false убедиться, что ненадежный источник не имеет доступа к конфиденциальным данным строки подключения.Keep Persist Security Info set to false to ensure that an untrusted source does not have access to sensitive connection string information.

Проверка подлинности Windows с помощью SqlClientWindows authentication with SqlClient

Каждая из следующих форм синтаксиса использует проверку подлинности Windows для подключения к базе данных AdventureWorks на локальном сервере.Each of the following forms of syntax uses Windows Authentication to connect to the AdventureWorks database on a local server.

"Persist Security Info=False;Integrated Security=true;  
    Initial Catalog=AdventureWorks;Server=MSSQL1"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local)"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local)"  

Проверка подлинности SQL Server с помощью SqlClientSQL Server authentication with SqlClient

Для соединения с SQL Server предпочтительно использовать проверку подлинности Windows.Windows Authentication is preferred for connecting to SQL Server. Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса.However, if SQL Server Authentication is required, use the following syntax to specify a user name and password. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.In this example, asterisks are used to represent a valid user name and password.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"  

При подключении к базе данных SQL Azure или к хранилищу данных SQL Azure и предоставлении имени входа в формате user@servername Убедитесь, что servername значение в имени входа соответствует значению, указанному для Server= .When you connect to Azure SQL Database or to Azure SQL Data Warehouse and provide a login in the format user@servername, make sure that the servername value in the login matches the value provided for Server=.

Примечание

Проверка подлинности Windows имеет приоритет над именами входа SQL Server.Windows authentication takes precedence over SQL Server logins. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.If you specify both Integrated Security=true as well as a user name and password, the user name and password will be ignored and Windows authentication will be used.

Подключение к именованному экземпляру SQL ServerConnect to a named instance of SQL Server

Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имени сервера \ экземпляр .To connect to a named instance of SQL Server, use the server name\instance name syntax.

"Data Source=MySqlServer\MSSQL1;"  

Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения.You can also set the DataSource property of the SqlConnectionStringBuilder to the instance name when building a connection string. Свойство DataSource объекта SqlConnection доступно только для чтения.The DataSource property of a SqlConnection object is read-only.

Изменения версий системы типовType System Version Changes

Type System VersionКлючевое слово в SqlConnection.ConnectionString определяет представление SQL Server типов на стороне клиента.The Type System Version keyword in a SqlConnection.ConnectionString specifies the client-side representation of SQL Server types. Дополнительные сведения о ключевом слове SqlConnection.ConnectionString см. в разделе Type System Version.See SqlConnection.ConnectionString for more information about the Type System Version keyword.

Подключение и присоединение к пользовательским экземплярам SQL Server ExpressConnecting and Attaching to SQL Server Express User Instances

Пользовательские экземпляры являются одной из возможностей SQL Server Express.User instances are a feature in SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора.They allow a user running on a least-privileged local Windows account to attach and run a SQL Server database without requiring administrative privileges. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.A user instance executes with the user's Windows credentials, not as a service.

Дополнительные сведения о работе с пользовательскими экземплярами см. в разделе SQL Server Express User Instances.For more information on working with user instances, see SQL Server Express User Instances.

Использование ключевого слова TrustServerCertificateUsing TrustServerCertificate

TrustServerCertificateКлючевое слово допустимо только при подключении к экземпляру SQL Server с действительным сертификатом.The TrustServerCertificate keyword is valid only when connecting to a SQL Server instance with a valid certificate. Если ключевому слову TrustServerCertificate присвоено значение true, то транспортный уровень будет использовать протокол SSL для шифрования канала и не пойдет по цепочке сертификатов для проверки доверия.When TrustServerCertificate is set to true, the transport layer will use SSL to encrypt the channel and bypass walking the certificate chain to validate trust.

"TrustServerCertificate=true;"

Примечание

Если ключевому слову TrustServerCertificate присвоено значение true и включено шифрование, то будет использоваться уровень шифрования, заданный на сервере, даже если в строке подключения Encrypt задано значение false.If TrustServerCertificate is set to true and encryption is turned on, the encryption level specified on the server will be used even if Encrypt is set to false in the connection string. В противном случае соединение не будет установлено.The connection will fail otherwise.

Включение шифрованияEnabling Encryption

Чтобы включить шифрование, если сертификат не был подготовлен на сервере, параметры принудительное шифрование протокола и сертификат доверенного сервера должны быть установлены в Диспетчер конфигурации SQL Server.To enable encryption when a certificate has not been provisioned on the server, the Force Protocol Encryption and the Trust Server Certificate options must be set in SQL Server Configuration Manager. В этом случае шифрование будет использовать самозаверяющий сертификат сервера, не проверяя наличия подтверждаемого сертификата сервера.In this case, encryption will use a self-signed server certificate without validation if no verifiable certificate has been provisioned on the server.

Настройки приложения не могут снизить установленный на SQL Server уровень безопасности, но при необходимости могут повысить его.Application settings cannot reduce the level of security configured in SQL Server, but can optionally strengthen it. Приложение может запрашивать шифрование, задавая TrustServerCertificate Encrypt Ключевые слова и true , чтобы гарантировать, что шифрование выполняется даже в том случае, если сертификат сервера не был подготовлен и принудительное шифрование протокола не было настроено для клиента.An application can request encryption by setting the TrustServerCertificate and Encrypt keywords to true, guaranteeing that encryption takes place even when a server certificate has not been provisioned and Force Protocol Encryption has not been configured for the client. Но если на клиенте не установлен параметр TrustServerCertificate, то сертификат сервера, тем не менее, потребуется.However, if TrustServerCertificate is not enabled in the client configuration, a provisioned server certificate is still required.

В следующей таблице перечислены все случаи.The following table describes all cases.

Параметр «Принудительное шифрование протокола» на клиентеForce Protocol Encryption client setting Параметр «Доверять сертификату сервера» на клиентеTrust Server Certificate client setting Строка или атрибут «Шифровать/Использовать шифрование для подключения к данным»Encrypt/Use Encryption for Data connection string/attribute Строка подключения или атрибут «Доверять сертификату сервера»Trust Server Certificate connection string/attribute РезультатResult
нетNo Н/ДN/A Нет (по умолчанию)No (default) Не учитываетсяIgnored Шифрование отсутствует.No encryption occurs.
нетNo НедоступноN/A ДаYes Нет (по умолчанию)No (default) Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно.Encryption occurs only if there is a verifiable server certificate, otherwise the connection attempt fails.
нетNo НедоступноN/A ДаYes ДаYes Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.Encryption always occurs, but may use a self-signed server certificate.
ДаYes нетNo Не учитываетсяIgnored Не учитываетсяIgnored Шифрование выполняется только при наличии проверяемого сертификата сервера. в противном случае попытка подключения завершится ошибкой.Encryption occurs only if there is a verifiable server certificate; otherwise, the connection attempt fails.
ДаYes ДаYes Нет (по умолчанию)No (default) Не учитываетсяIgnored Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.Encryption always occurs, but may use a self-signed server certificate.
ДаYes ДаYes ДаYes Нет (по умолчанию)No (default) Шифрование выполняется только при наличии проверяемого сертификата сервера. в противном случае попытка подключения завершится ошибкой.Encryption occurs only if there is a verifiable server certificate; otherwise, the connection attempt fails.
ДаYes ДаYes ДаYes ДаYes Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера.Encryption always occurs, but may use a self-signed server certificate.

Дополнительные сведения см. в статье Использование шифрования без проверки.For more information, see Using Encryption Without Validation.

Строки соединения OleDbOleDb Connection Strings

Свойство ConnectionString класса OleDbConnection позволяет получить или задать строку подключения для источника данных OLE DB (например, Microsoft Access).The ConnectionString property of a OleDbConnection allows you to get or set a connection string for an OLE DB data source, such as Microsoft Access. Строку подключения OleDb также можно создать во время выполнения с помощью класса OleDbConnectionStringBuilder.You can also create an OleDb connection string at run time by using the OleDbConnectionStringBuilder class.

Синтаксис строки соединения OleDbOleDb Connection String Syntax

В строке соединения OleDbConnection необходимо указать имя поставщика.You must specify a provider name for an OleDbConnection connection string. Следующие строки подключения подключают к базе данных Microsoft Access, использующей поставщик Jet.The following connection string connects to a Microsoft Access database using the Jet provider. Обратите внимание, что ключевые слова User ID и Password необязательны, если база данных не защищена (по умолчанию).Note that the User ID and Password keywords are optional if the database is unsecured (the default).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;

Если база данных Jet защищена на уровне пользователя, необходимо указать местоположение файла сведений рабочей группы (MDW-файла).If the Jet database is secured using user-level security, you must provide the location of the workgroup information file (.mdw). Файл сведений рабочей группы используется для проверки учетных данных, указанных в строке подключения.The workgroup information file is used to validate the credentials presented in the connection string.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;  

Важно!

Сведения о соединении для объекта OleDbConnection можно указать в файле UDL. Однако это следует избегать.It is possible to supply connection information for an OleDbConnection in a Universal Data Link (UDL) file; however you should avoid doing so. UDL-файлы не подвергаются шифрованию, и строки соединения хранятся в них в виде простого текста.UDL files are not encrypted, and expose connection string information in clear text. Так как UDL-файл представляет собой внешний файловый ресурс для приложения, его нельзя защитить средствами .NET Framework.Because a UDL file is an external file-based resource to your application, it cannot be secured using the .NET Framework. UDL файлы не поддерживаются для SqlClient.UDL files are not supported for SqlClient.

Соединение с Access/Jet с помощью строки замены DataDirectoryUsing DataDirectory to Connect to Access/Jet

Строка замены DataDirectory поддерживается не только клиентом SqlClient.DataDirectory is not exclusive to SqlClient. Ее можно также использовать с поставщиками данных .NET для System.Data.OleDb и System.Data.Odbc.It can also be used with the System.Data.OleDb and System.Data.Odbc .NET data providers. В следующем образце строки OleDbConnection приведен синтаксис для подключения к базе данных Northwind.mdb, расположенной в папке приложения app_data.The following sample OleDbConnection string demonstrates the syntax required to connect to the Northwind.mdb located in the application's app_data folder. В этой папке также хранится системная база данных (System.mdw).The system database (System.mdw) is also stored in that location.

"Provider=Microsoft.Jet.OLEDB.4.0;  
Data Source=|DataDirectory|\Northwind.mdb;  
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"  

Важно!

Указывать расположение системной базы данных в строке подключения не требуется, если база данных Access/Jet не защищена.Specifying the location of the system database in the connection string is not required if the Access/Jet database is unsecured. Защита снята по умолчанию, все пользователи соединяются как встроенный пользователь Admin с пустым паролем.Security is off by default, with all users connecting as the built-in Admin user with a blank password. База данных Jet остается уязвимой для атаки, даже если правильно реализована безопасность на уровне пользователя.Even when user-level security is correctly implemented, a Jet database remains vulnerable to attack. Поэтому в базе данных Access/Jet не рекомендуется хранить конфиденциальные данные, поскольку схема безопасности на основе файловой системы неизбежно обладает определенной уязвимостью.Therefore, storing sensitive information in an Access/Jet database is not recommended because of the inherent weakness of its file-based security scheme.

Соединение с ExcelConnecting to Excel

Поставщик Microsoft Jet используется для подключения с книгой Excel.The Microsoft Jet provider is used to connect to an Excel workbook. В следующей строке подключения ключевое слово Extended Properties задает специфические свойства Excel.In the following connection string, the Extended Properties keyword sets properties that are specific to Excel. «HDR=Yes;» показывает, что первая строка содержит имена столбцов, а не данные, а «IMEX=1;» дает указания драйверу всегда считывать «смешанные» столбцы данных как текст."HDR=Yes;" indicates that the first row contains column names, not data, and "IMEX=1;" tells the driver to always read "intermixed" data columns as text.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""  

Обратите внимание, что двойные кавычки, необходимые для ключевого слова Extended Properties, также должны заключаться в двойные кавычки.Note that the double quotation character required for the Extended Properties must also be enclosed in double quotation marks.

Синтаксис строки подключения с поставщиком Data ShapeData Shape Provider Connection String Syntax

При соединении с поставщиком Microsoft Data Shape используются оба ключевых слова: Provider и Data Provider.Use both the Provider and the Data Provider keywords when using the Microsoft Data Shape provider. В следующем примере поставщик Data Shape используется для подключения к экземпляру SQL Server.The following example uses the Shape provider to connect to a local instance of SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"

Строки подключения ODBCOdbc Connection Strings

Свойство ConnectionString класса OdbcConnection позволяет получить или задать строку подключения для источника данных OLE DB.The ConnectionString property of a OdbcConnection allows you to get or set a connection string for an OLE DB data source. Строки подключения ODBC также поддерживаются построителем OdbcConnectionStringBuilder.Odbc connection strings are also supported by the OdbcConnectionStringBuilder.

Следующая строка подключения использует текстовый драйвер Microsoft.The following connection string uses the Microsoft Text Driver.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin  

Использование строки замены DataDirectory для соединения с Visual FoxProUsing DataDirectory to Connect to Visual FoxPro

Следующий образец строки подключения OdbcConnection демонстрирует использование DataDirectory для соединения с файлом Microsoft Visual FoxPro.The following OdbcConnection connection string sample demonstrates using DataDirectory to connect to a Microsoft Visual FoxPro file.

"Driver={Microsoft Visual FoxPro Driver};  
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"  

Строки подключения OracleOracle Connection Strings

Свойство ConnectionString класса OracleConnection позволяет получить или задать строку подключения для источника данных OLE DB.The ConnectionString property of a OracleConnection allows you to get or set a connection string for an OLE DB data source. Строки подключения Oracle также поддерживаются построителем OracleConnectionStringBuilder.Oracle connection strings are also supported by the OracleConnectionStringBuilder .

Data Source=Oracle9i;User ID=*****;Password=*****;  

Дополнительные сведения о синтаксисе строки подключения ODBC см. в разделе ConnectionString.For more information on ODBC connection string syntax, see ConnectionString.

См. также разделSee also