Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждый поставщик данных платформы .NET Framework имеет объект Connection, наследующий из DbConnection, а также из свойства ConnectionString, зависящего от поставщика. Конкретный синтаксис строки подключения для каждого поставщика приведен в его свойстве ConnectionString. В следующей таблице перечислены четыре поставщика данных, включенные в платформа .NET Framework.
| Поставщик данных .NET Framework | Описание |
|---|---|
| System.Data.SqlClient | Предоставляет доступ к данным для Microsoft SQL Server. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString. |
| System.Data.OleDb | Предоставляет возможность доступа к данным из источников, использующих OLE DB. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString. |
| System.Data.Odbc | Предоставляет доступ к данным из источников данных, подключённых через ODBC. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString. |
| System.Data.OracleClient | Предоставляет доступ к данным Oracle версии 8.1.7 или старше. Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString. |
Конструкторы строк подключения
В ADO.NET 2.0 появились указанные ниже построители строк соединения для поставщиков данных .NET Framework.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
Построитель строк подключения позволяет создавать синтаксически допустимые строки подключения во время выполнения, поэтому в коде не требуется вручную объединять значения строк подключения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Проверка подлинности Windows
Проверка подлинности Windows (иногда называется интегрированной безопасностью) может использоваться для подключения к источникам данных, поддерживающим его. Синтаксис строки подключения зависит от поставщика. В следующей таблице показан синтаксис проверки подлинности Windows, который используется с поставщиками данных платформы .NET Framework.
| Поставщик | Синтаксис |
|---|---|
SqlClient |
Integrated Security=true;-- or --Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Примечание.
Integrated Security=true вызывает исключение при использовании с поставщиком OleDb.
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.
Строки подключений SqlClient
Синтаксис для строки подключения SqlConnection документирован в свойстве SqlConnection.ConnectionString. Свойство ConnectionString используется для возврата или задания строки подключения для базы данных SQL Server. Если необходимо подключиться к более ранней версии SQL Server, следует использовать поставщик данных .NET Framework для OleDb (System.Data.OleDb). Наиболее распространенные ключевые слова строк соединения также соответствуют свойствам SqlConnectionStringBuilder.
Внимание
Для ключевого слова Persist Security Info используется значение по умолчанию false. Установка значения true или yes позволяет получить конфиденциальные данные, включая идентификатор пользователя и пароль, через соединение после его открытия. Задайте для Persist Security Info значение false, чтобы убедиться, что ненадежный источник не сможет получить доступ к конфиденциальным данным строки подключения.
Проверка подлинности Windows при работе с SqlClient.
Каждая из следующих форм синтаксиса использует проверку подлинности Windows для подключения к AdventureWorks базе данных на локальном сервере.
"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)"
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.
Проверка подлинности SQL Server с использованием SqlClient.
Проверка подлинности Windows предпочтительна для подключения к SQL Server (локально). Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
Если при подключении к Базе данных SQL Azure или хранилищу данных Azure SQL имя входа предоставляется в формате user@servername, значение servername в имени входа должно соответствовать значению, указанному для Server=.
Примечание.
Аутентификация Windows имеет приоритет над входами SQL Server. Если указаны как Integrated Security=true, так и имя пользователя с паролем, то имя пользователя и пароль игнорируются, и используется аутентификация Windows.
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.
Подключение к именованному экземпляру SQL Server
Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.
"Data Source=MySqlServer\\MSSQL1;"
Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.
Изменения в версии системы типов
Ключевое слово Type System Version в SqlConnection.ConnectionString указывает клиентское представление типов SQL Server. Дополнительные сведения о ключевом слове SqlConnection.ConnectionString см. в разделе Type System Version.
Подключение и присоединение к экземплярам пользователей SQL Server Express
Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не в качестве службы.
Для получения дополнительной информации о работе с пользовательскими экземплярами см. статью Пользовательские экземпляры SQL Server Express.
Использование TrustServerCertificate
Ключевое слово TrustServerCertificate применяется только при подключении к экземпляру SQL Server с допустимым сертификатом. Если ключевому слову TrustServerCertificate присвоено значение true, то транспортный уровень будет использовать протокол SSL для шифрования канала и не пойдет по цепочке сертификатов для проверки доверия.
"TrustServerCertificate=true;"
Примечание.
Если ключевому слову TrustServerCertificate присвоено значение true и включено шифрование, то будет использоваться уровень шифрования, заданный на сервере, даже если в строке подключения Encrypt задано значение false. В противном случае соединение не будет установлено.
Включение шифрования
Чтобы включить шифрование, когда на сервере не представлен сертификат, в диспетчере конфигурации SQL Server необходимо настроить параметры Принудительное шифрование протокола и Доверять сертификату сервера. В этом случае шифрование будет использовать самоподписанный сертификат сервера без проверки, если на сервере не был подготовлен проверяемый сертификат.
Настройки приложения не могут снизить установленный на SQL Server уровень безопасности, но при необходимости могут повысить его. Приложение может затребовать шифрование, присвоив ключевым словам TrustServerCertificate и Encrypt значение true, гарантируя тем самым, что шифрование будет выполняться, даже если сертификат сервера не подготовлен и для клиента не настроен параметр Принудительное шифрование протокола. Но если на клиенте не установлен параметр TrustServerCertificate, то сертификат сервера, тем не менее, потребуется.
В следующей таблице перечислены все случаи.
| Параметр «Принудительное шифрование протокола» на клиенте | Параметр «Доверять сертификату сервера» на клиенте | Строка или атрибут «Шифровать/Использовать шифрование для подключения к данным» | Строка подключения или атрибут «Доверять сертификату сервера» | Результат |
|---|---|---|---|---|
| нет | Н/П | Нет (по умолчанию) | Пропущено | Шифрование отсутствует. |
| нет | Н/П | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно. |
| нет | Н/П | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | нет | Пропущено | Пропущено | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Нет (по умолчанию) | Пропущено | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | Да | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
Дополнительные сведения см. в статье Использование шифрования без проверки.
Строки подключения OleDb
Свойство ConnectionString класса OleDbConnection позволяет получить или задать строку подключения для источника данных OLE DB (например, Microsoft Access). Можно также создать OleDb строку подключения во время выполнения с помощью OleDbConnectionStringBuilder класса.
Синтаксис строки подключения OleDb
В строке соединения OleDbConnection необходимо указать имя поставщика. Следующая строка подключения подключает к базе данных Microsoft Access, использующую поставщика Jet. Обратите внимание, что ключевые слова User ID и Password необязательны, если база данных не защищена (по умолчанию).
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Если база данных Jet защищена на уровне пользователя, необходимо указать местоположение файла сведений рабочей группы (MDW-файла). Файл сведений рабочей группы используется для проверки учетных данных, указанных в строке подключения.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Внимание
Можно указать сведения о подключении для файла универсального OleDbConnection канала данных (UDL), однако следует избегать этого. UDL-файлы не подвергаются шифрованию, и строки соединения хранятся в них в виде простого текста. Так как UDL-файл является внешним файлом для приложения, его невозможно защитить с помощью платформа .NET Framework. Файлы UDL не поддерживаются для SqlClient.
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.
Использование DataDirectory для подключения к Access/Jet
DataDirectory не является исключительным для SqlClient. Ее можно также использовать с System.Data.OleDb и System.Data.Odbc, поставщиками данных .NET. В следующем образце строки OleDbConnection приведен синтаксис для подключения к базе данных Northwind.mdb, расположенной в папке приложения app_data. В этой папке также хранится системная база данных (System.mdw).
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Внимание
Указывать расположение системной базы данных в строке подключения не требуется, если база данных Access/Jet не защищена. Защита снята по умолчанию, все пользователи соединяются как встроенный пользователь Admin с пустым паролем. База данных Jet остается уязвимой для атаки, даже если правильно реализована безопасность на уровне пользователя. Поэтому в базе данных Access/Jet не рекомендуется хранить конфиденциальные данные, поскольку схема безопасности на основе файловой системы неизбежно обладает определенной уязвимостью.
Подключение к Excel
Поставщик Microsoft Jet используется для подключения к книге Excel. В следующей строке подключения ключевое слово Extended Properties задает специфические свойства Excel. «HDR=Yes;» показывает, что первая строка содержит имена столбцов, а не данные, а «IMEX=1;» дает указания драйверу всегда считывать «смешанные» столбцы данных как текст.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
Обратите внимание, что символ двойных кавычек, требуемый для Extended Properties, также должен быть заключён в двойные кавычки.
Синтаксис строки подключения поставщика Data Shape
При соединении с поставщиком Microsoft Data Shape используются оба ключевых слова: Provider и Data Provider. В следующем примере Shape-поставщик используется для подключения к локальному экземпляру SQL Server.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.
Строки подключения ODBC
Свойство ConnectionString класса OdbcConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения ODBC также поддерживаются OdbcConnectionStringBuilder.
Следующая строка подключения использует текстовый драйвер Microsoft.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Строки подключения Oracle
Свойство ConnectionString класса OracleConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения Oracle также поддерживаются параметром OracleConnectionStringBuilder.
Data Source=Oracle9i;User ID=*****;Password=*****;
Дополнительные сведения о синтаксисе строки подключения ODBC см. в разделе ConnectionString.
Внимание
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Если вы подключаетесь к Azure SQL, Управляемые удостоверения для ресурсов Azure — это рекомендуемый метод проверки подлинности.