что такое provider в connection string

Строка подключения для MS SQL Server

Для работы с MS SQL Server естественно нам потребуется MS SQL Server. Можно выбрать как полноценный MS SQL Server (в весиях Enterprise, Developer), так и MS SQL Server Express.

Про установку MS SQL Server в выпусках Developer или Express можно почитать в статье Установка MS SQL Server 2019

Также можно использовать специально предназначенный для целей разработки и тестирования легковесный движок MS SQL Server Express LocalDB, про установку которого можно почитать в статье Установка SQL Server Express LocalDB.

Прежде всего, определение строки подключения зависит от типа подключения: либо мы подлючаемся по логину и паролю, либо мы используем доверенное подключение (trusted connection), где не требуются логин и пароль (например, при подключении к локальному серверу SQL Server).

Если подключение производится по логину и паролю, то общий вид строки подключения выглядит следующим образом:

В данном случае строка подключения состоит из четырех параметров:

Server : указывает на название сервера

Database : указывает на название базы данных на сервере

Если мы используем так называемое доверенное подключение (trusted connection) и применяем аутентификацию Windwows, например, при подключении к локальному серверу, который запущен на том же компьютере, то строка подключения в общем виде выглядит следующим образом:

Список основных параметров строки подключения, которые могут использоваться:

Application Name : название приложения. Может принимать в качестве значения любую строку. Значение по умолчанию: «.Net SqlClient Data Provide»

AttachDBFileName : хранит полный путь к прикрепляемой базе данных

Connect Timeout : временной период в секундах, через который ожидается установка подключения. Принимает одно из значений из интервала 0–32767. По умолчанию равно 15.

В качестве альтернативного названия параметра может использоваться Connection Timeout

Server : название экземпляра SQL Servera, с которым будет идти взаимодействие. Это может быть название локального сервера, например, «./SQLEXPRESS», «localhost», либо сетевой адрес.

Database : хранит имя базы данных

В качестве альтернативного названия параметра можно использовать Initial Catalog

В качестве альтернативного названия параметра может использоваться Integrated Security

Packet Size : размер сетевого пакета в байтах. Может принимать значение, которое кратно 512. По умолчанию равно 8192

Password : пароль пользователя

User ID : логин пользователя

В данном случае мы будем использовать к локальному серверу. Если мы подключаемся к полноценному серверу MS SQL Server (например, версия Developer Edition), то в качестве адреса сервера, как правило, выступает localhost :

Для подключения к localdb применяется адрес (localdb)\mssqllocaldb :

Источник

Ole DbConnection. Connection String Свойство

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

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

Значение свойства

Реализации

Исключения

Передан недопустимый аргумент строки соединения, или не задан обязательный аргумент строки соединения.

Примеры

В следующем примере создается OleDbConnection и задаются некоторые свойства в строке подключения.

Комментарии

Объект ConnectionString предназначен для сопоставления формата строки подключения OLE DB как можно точнее со следующими исключениями:

Свойство можно использовать ConnectionString для подключения к различным источникам данных. В следующем примере показаны несколько возможных строк подключения.

Если в Data Source строке соединения не указано ключевое слово, поставщик попытается подключиться к локальному серверу, если он доступен.

При сбросе ConnectionString для закрытого соединения сбрасываются все значения строк подключения и связанные свойства. Сюда входит пароль. Например, если задать строку подключения, включающую «начальный каталог = AdventureWorks», а затем сбросить строку подключения к «Provider = SQLOLEDB; Data Source = MySQLServer; IntegratedSecurity = SSPI», Database свойство больше не будет иметь значение AdventureWorks. (Начальное значение каталога строки подключения соответствует Database свойству.)

Базовый формат строки подключения включает ряд пар «ключевое слово-значение», разделенных точкой с запятой. Знак равенства (=) соединяет каждое ключевое слово и его значение. Чтобы включить значения, содержащие символы точки с запятой, одиночной кавычки или двойные кавычки, значение должно быть заключено в двойные кавычки. Если значение содержит и точку с запятой, и символ двойной кавычки, это значение можно заключить в одинарные кавычки. Одинарная кавычка также полезна, если значение начинается с символа двойной кавычки. И наоборот, если значение начинается с одиночной кавычки, можно использовать двойные кавычки. Если значение содержит как одинарные, так и двойные кавычки, то символ-знак кавычки, используемый для заключения значения, должен быть удвоен каждый раз, когда он встречается в значении.

Чтобы включить в строковое значение предшествующие или конечные пробелы, значение должно быть заключено в одинарные кавычки или двойные кавычки. Все начальные и конечные пробелы вокруг целых, логических или перечисляемых значений игнорируются, даже если они заключены в кавычки. Однако пробелы в ключевом слове или значении строкового литерала сохраняются. Одинарные или двойные кавычки могут использоваться в строке соединения без использования разделителей (например, Data Source= my’Server или Data Source= my»Server ), если только символ кавычки не является первым или последним символом в значении.

Чтобы включить знак равенства (=) в ключевое слово или значение, перед ним должен стоять другой знак равенства. Например, в гипотетической строке подключения

ключевое слово «Key = Word», а значение — «value».

Если определенное ключевое слово в паре «ключевое слово = значение» встречается несколько раз в строке подключения, то в наборе значений используется последнее вхождение в списке.

В ключевых словах регистр не учитывается.

Следует соблюдать осторожность при создании строки подключения на основе вводимых пользователем данных, например при получении сведений об ИДЕНТИФИКАТОРе пользователя и пароле из диалогового окна и добавлении их в строку подключения. Приложение должно убедиться, что пользователь не может внедрить в эти значения дополнительные параметры строки подключения, например, введя пароль в виде «валидпассворд; база данных = сомедб» при попытке присоединения к другой базе данных. Если вы используете параметр строки подключения расширенных свойств для OLE DB соединений, не следует передавать идентификаторы пользователей и пароли, так как следует избегать сохранения идентификаторов пользователей и паролей в виде открытого текста, если это возможно, и поскольку параметр по умолчанию Persist Security Info= false не влияет на Extended Properties параметр.

Источник

Строки подключения и модели

В этом разделе описано, как Entity Framework обнаруживает, какое подключение к базе данных следует использовать, и как его можно изменить. в этом разделе рассматриваются модели, созданные с помощью Code First и конструктора EF.

Читайте также:  что можно делать болгаркой 125

Обычно Entity Framework приложение использует класс, производный от DbContext. Этот производный класс будет вызывать один из конструкторов базового класса DbContext для управления:

В следующих фрагментах показаны некоторые способы использования конструкторов DbContext.

использование Code First с подключением по соглашению

если вы еще не выполнили какие-либо другие настройки в приложении, то вызов конструктора без параметров в DbContext приведет к запуску DbContext в режиме Code First с подключением к базе данных, созданным по соглашению. Пример:

в этом примере DbContext использует полное имя пространства имен производного класса контекста — Demo. EF. BloggingContext — в качестве имени базы данных и создает строку подключения для этой базы данных с помощью SQL Express или LocalDB. если установлены оба варианта, будет использоваться SQL Express.

Visual Studio 2010 включает SQL Express по умолчанию, а Visual Studio 2012 и более поздних версий включает LocalDB. во время установки пакет NuGet EntityFramework проверяет, какой сервер базы данных доступен. затем пакет NuGet обновит файл конфигурации, задав сервер базы данных по умолчанию, который Code First использует при создании соединения по соглашению. если SQL Express выполняется, он будет использоваться. если SQL Express недоступна, LocalDB будет зарегистрирован как значение по умолчанию. В файл конфигурации не вносятся изменения, если он уже содержит параметр для фабрики подключений по умолчанию.

использование Code First с подключением по соглашению и указанным именем базы данных

если вы не выполнили какие-либо другие настройки в приложении, то вызов конструктора строк для DbContext с именем базы данных, которое вы хотите использовать, приведет к запуску DbContext в режиме Code First с подключением к базе данных, созданным по соглашению с базой данных этого имени. Пример:

в этом примере DbContext использует «блоггингдатабасе» в качестве имени базы данных и создает строку подключения для этой базы данных с помощью SQL Express (устанавливается с Visual Studio 2010) или LocalDB (устанавливается вместе с Visual Studio 2012). если установлены оба варианта, будет использоваться SQL Express.

использование Code First со строкой подключения в файле app.configили web.config

Вы можете указать строку подключения в app.config или web.config файле. Пример:

это простой способ указать DbContext использовать сервер базы данных, отличный от SQL Express или LocalDB — в приведенном выше примере указывается база данных SQL Server Compact Edition.

Если имя строки подключения совпадает с именем контекста (с квалификатором пространства имен или без него), то при использовании конструктора без параметров он будет найден с помощью DbContext. если имя строки подключения отличается от имени контекста, можно указать DbContext использовать это соединение в режиме Code First, передав имя строки подключения конструктору DbContext. Пример:

Кроме того, можно использовать форму «имя = » для строки, передаваемой конструктору DbContext. Пример:

Эта форма явно делает то, что строка подключения будет найдена в файле конфигурации. Если строка подключения с данным именем не найдена, будет выдано исключение.

База данных/Model First со строкой подключения в файле app.configили web.config

модели, созданные с помощью конструктора EF, отличаются от Code First тем, что модель уже существует и не создается из кода при запуске приложения. Модель обычно существует в файле EDMX в проекте.

Конструктор добавит строку подключения EF в app.config или web.config файл. Эта строка подключения является особой в том, что она содержит сведения о том, как найти информацию в файле EDMX. Пример:

Конструктор EF также создаст код, который сообщает DbContext использовать это соединение, передав имя строки подключения конструктору DbContext. Пример:

DbContext знает о загрузке существующей модели (вместо использования Code First для ее вычисления из кода), так как строка подключения является строкой соединения EF, содержащей сведения о модели для использования.

Другие параметры конструктора DbContext

Класс DbContext содержит другие конструкторы и шаблоны использования, которые позволяют использовать некоторые более сложные сценарии. Вот некоторые из них:

Источник

Connection String Syntax

.NET Framework data provider Description
System.Data.SqlClient Provides data access for Microsoft SQL Server. For more information on connection string syntax, see ConnectionString.
System.Data.OleDb Provides data access for data sources exposed using OLE DB. For more information on connection string syntax, see ConnectionString.
System.Data.Odbc Provides data access for data sources exposed using ODBC. For more information on connection string syntax, see ConnectionString.
System.Data.OracleClient Provides data access for Oracle version 8.1.7 or later. For more information on connection string syntax, see ConnectionString.

Connection String Builders

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. For more information, see Connection String Builders.

Windows Authentication

Provider Syntax
SqlClient Integrated Security=true;

Integrated Security=SSPI;

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

Integrated Security=true throws an exception when used with the OleDb provider.

SqlClient Connection Strings

Windows authentication with SqlClient

Each of the following forms of syntax uses Windows Authentication to connect to the AdventureWorks database on a local server.

SQL Server authentication with SqlClient

Windows Authentication is preferred for connecting to 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.

Windows authentication takes precedence over SQL Server logins. 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.

Connect to a named instance of SQL Server

To connect to a named instance of SQL Server, use the server name\instance name syntax.

You can also set the DataSource property of the SqlConnectionStringBuilder to the instance name when building a connection string. The DataSource property of a SqlConnection object is read-only.

Type System Version Changes

The Type System Version keyword in a SqlConnection.ConnectionString specifies the client-side representation of SQL Server types. See SqlConnection.ConnectionString for more information about the Type System Version keyword.

Connecting and Attaching to SQL Server Express User Instances

User instances are a feature in SQL Server Express. They allow a user running on a least-privileged local Windows account to attach and run a SQL Server database without requiring administrative privileges. A user instance executes with the user’s Windows credentials, not as a service.

For more information on working with user instances, see SQL Server Express User Instances.

Using TrustServerCertificate

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

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.

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.

OleDb Connection Strings

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. You can also create an OleDb connection string at run time by using the OleDbConnectionStringBuilder class.

OleDb Connection String Syntax

You must specify a provider name for an OleDbConnection connection string. The following connection string connects to a Microsoft Access database using the Jet provider. Note that the User ID and Password keywords are optional if the database is unsecured (the default).

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.

Using DataDirectory to Connect to Access/Jet

Specifying the location of the system database in the connection string is not required if the Access/Jet database is unsecured. Security is off by default, with all users connecting as the built-in Admin user with a blank password. Even when user-level security is correctly implemented, a Jet database remains vulnerable to attack. Therefore, storing sensitive information in an Access/Jet database is not recommended because of the inherent weakness of its file-based security scheme.

Connecting to Excel

The Microsoft Jet provider is used to connect to an Excel workbook. In the following connection string, the Extended Properties keyword sets properties that are specific to Excel. «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.

Note that the double quotation character required for the Extended Properties must also be enclosed in double quotation marks.

Data Shape Provider Connection String Syntax

Use both the Provider and the Data Provider keywords when using the Microsoft Data Shape provider. The following example uses the Shape provider to connect to a local instance of SQL Server.

Odbc Connection Strings

The ConnectionString property of a OdbcConnection allows you to get or set a connection string for an OLE DB data source. Odbc connection strings are also supported by the OdbcConnectionStringBuilder.

The following connection string uses the Microsoft Text Driver.

Using DataDirectory to Connect to Visual FoxPro

The following OdbcConnection connection string sample demonstrates using DataDirectory to connect to a Microsoft Visual FoxPro file.

Oracle Connection Strings

For more information on ODBC connection string syntax, see ConnectionString.

Источник

Строки подключения и файлы конфигурации

Внедрение строк соединения в код приложения может привести к появлению уязвимых мест в системе безопасности и проблем с обслуживанием. Незашифрованные строки подключения, скомпилированные в исходный код приложения, можно просматривать с помощью средства Ildasm.exe (IL Disassembler). Кроме того, после изменения строки соединения необходимо перекомпилировать приложение. По этим причинам рекомендуется хранить строки соединения в файле конфигурации приложения.

Работа с файлами конфигурации приложения

Файлы конфигурации приложения содержат настройки, относящиеся к отдельному приложению. Например, приложение ASP.NET может иметь один или несколько файлов web.config, а приложение Windows — дополнительный файл app.config. В файлах конфигурации присутствуют общие элементы, хотя имя и расположение любого файла конфигурации в значительной степени зависят от того, где размещается приложение.

Раздел connectionStrings

Строки подключения могут храниться в виде пар «ключ/значение» в разделе connectionStrings элемента configuration файла конфигурации приложения. Дочерние элементы включают add, clear и remove.

Следующий фрагмент файла конфигурации демонстрирует схему и синтаксис хранения строки соединения. Атрибут name является именем, которое задано для уникальной идентификации строки подключения, чтобы ее можно было получить во время выполнения. providerName имеет значение Microsoft.Data.SqlClient (то есть поставщик данных Microsoft SqlClient для SQL Server).

Можно сохранить часть строки соединения в файле конфигурации и для ее дополнения во время выполнения использовать класс DbConnectionStringBuilder. Это удобно в сценариях, в которых заранее неизвестны элементы строки соединения или желательно не сохранять конфиденциальные данные в файле конфигурации. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).

Использование внешних файлов конфигурации

Внешние файлы конфигурации представляют собой отдельные файлы, каждый из которых содержит фрагмент файла конфигурации, состоящий из одного раздела. В таком случае основной файл конфигурации ссылается на внешний файл конфигурации. Хранение раздела connectionStrings в физически отдельном файле становится удобным в ситуациях, когда может потребоваться внесение изменений в строки подключения после развертывания приложения. Например, в ASP.NET по умолчанию после изменения файлов конфигурации осуществляется перезапуск домена приложения, что приводит к потере сведений о состоянии. Но изменение внешнего файла конфигурации не вызывает перезапуск приложения. Возможность применения внешних файлов конфигурации не ограничивается ASP.NET; их можно также использовать в приложениях Windows. Кроме того, для ограничения доступа к внешним файлам конфигурации могут использоваться средства обеспечения безопасности доступа к файлам и разрешения. Работа с внешними файлами конфигурации во время выполнения осуществляется в прозрачном режиме и не требует разработки специального кода.

Для хранения строк подключения во внешнем файле конфигурации создайте отдельный файл, содержащий единственный раздел connectionStrings. Не следует включать какие-либо дополнительные элементы, разделы или атрибуты. В данном примере показан синтаксис внешнего файла конфигурации.

Получение строк соединения во время выполнения

Файл machine.config также содержит раздел connectionStrings, включающий строку подключения, используемую Visual Studio. При получении строк подключения из файла app.config приложения Windows с помощью имени поставщика в первую очередь загружаются строки подключений из файла machine.config, затем записи из файла app.config. Добавление ключевого слова clear сразу после элемента connectionStrings приводит к удалению из памяти всех ссылок, унаследованных от структуры данных, поэтому учитываются только строки подключений, определенные в локальном файле app.config.

Работа с файлами конфигурации

Вызывающему объекту для доступа к файлам конфигурации во время выполнения должны быть предоставлены разрешения. Требуемые разрешения зависят от типа приложения, файла конфигурации и расположения. Дополнительные сведения см. в разделах Использование классов конфигурации и WebConfigurationManager для приложений ASP.NET и ConfigurationManager для приложений Windows.

Для получения строк соединения из файлов конфигурации приложения используется ConnectionStringSettingsCollection. Этот объект содержит коллекцию объектов ConnectionStringSettings, каждый из которых представляет одну запись в разделе connectionStrings. Его свойства сопоставляются с атрибутами строк соединения, что позволяет получить строку соединения, указав имя строки или имя поставщика.

Свойство Описание
Name Имя строки соединения. Сопоставляется с атрибутом name.
ProviderName Полное имя поставщика. Сопоставляется с атрибутом providerName.
ConnectionString Строка подключения. Сопоставляется с атрибутом connectionString.

Пример Вывод всех строк подключения

Файл System.Configuration.dll не включается в проекты всех типов, поэтому для использования классов конфигурации может потребоваться сформировать на него ссылку. Имя и расположение файла конфигурации определенного приложения зависит от типа приложения и процесса размещения.

Пример Получение строки подключения по имени

Данный пример демонстрирует способ получения строки соединения из файла конфигурации путем указания ее имени. Код создает объект ConnectionStringSettings, сопоставляя указанный входной параметр с именем ConnectionStrings. Если совпадающее имя не найдено, функция возвращает значение null ( Nothing в Visual Basic).

Пример Получение строки подключения по имени поставщика

В этом примере демонстрируется, как получить строку подключения путем указания имени поставщика в формате Microsoft.Data.SqlClient. В коде выполняется итерация по ConnectionStringSettingsCollection и происходит возврат строки соединения для первого найденного ProviderName. Если имя поставщика не найдено, функция возвращает значение null ( Nothing в Visual Basic).

Шифрование разделов файлов конфигурации с помощью защищенной конфигурации

В ASP.NET 2.0 появилась новая возможность, защищенная конфигурация, с помощью которой можно шифровать в файле конфигурации конфиденциальную информацию. Защищенная конфигурация разрабатывалась в первую очередь для ASP.NET, но ее можно также использовать для шифрования разделов файлов конфигурации в приложениях Windows. Подробное описание возможностей защищенной конфигурации см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации.

В приведенном ниже фрагменте файла конфигурации показан раздел connectionStrings после шифрования. В разделе configProtectionProvider задается поставщик защищенной конфигурации, который используется для шифрования и дешифрования строк подключения. Раздел EncryptedData содержит зашифрованный текст.

Защита поставщиков конфигурации

Поставщик Описание
RsaProtectedConfigurationProvider Использует алгоритм RSA для шифрования и расшифровки данных. Алгоритм RSA можно использовать для шифрования с открытым ключом и цифровых сигнатур. Он также известен как алгоритм с «открытым ключом» или алгоритм асимметричного шифрования, поскольку в нем используется два разных ключа. Для шифрования разделов в файле Web.config и управления ключами шифрования можно использовать средство регистрации служб IIS ASP.NET (Aspnet_regiis.exe). ASP.NET расшифровывает файл конфигурации при обработке файла. Удостоверение приложения ASP.NET должно иметь права на чтение ключа шифрования, который используется для шифрования и расшифровки зашифрованных разделов.
DpapiProtectedConfigurationProvider Использует API-интерфейс защиты данных (DPAPI) для шифрования разделов конфигурации. Он использует встроенные службы шифрования Windows и может быть настроен для защиты отдельных компьютеров или отдельных учетных записей пользователей. Защиту отдельных компьютеров удобно использовать для нескольких приложений на одном сервере, которым требуется совместное использование данных. Защиту учетных записей можно использовать со службами, выполняемыми с определенным удостоверением пользователя, например с общей средой размещения. Каждое приложение выполняется с отдельным идентификатором, что ограничивает доступ к таким ресурсам, как файлы и базы данных.

Оба поставщика обеспечивают надежное шифрование данных. Однако, если планируется использовать один файл конфигурации на нескольких серверах, как в веб-ферме, то только RsaProtectedConfigurationProvider позволяет экспортировать ключи шифрования, применяемые для шифрования данных, и импортировать их в другой сервер. Дополнительные сведения см. в разделе Импорт и экспорт защищенных контейнеров ключей RSA для конфигурации.

Использование классов конфигурации

Пространство имен System.Security.Cryptography содержит классы, которые предоставляют дополнительные возможности шифрования и расшифровки данных. Эти классы можно использовать в том случае, если требуются криптографические службы, недоступные с использованием защищенной конфигурации. Некоторые из этих классов являются оболочками для Microsoft CryptoAPI, а другие представляют собой реализации полностью на управляемом коде. Дополнительные сведения см. в разделе Службы криптографии.

Пример App.config

Этот пример демонстрирует переключение шифрования раздела connectionStrings в файле app.config для приложения Windows. В этом примере процедура принимает имя приложения в качестве аргумента, например, «MyApplication.exe». Затем файл app.config зашифровывается и копируется в папку, которая содержит исполняемый файл с именем MyApplication.exe.config.

Строку соединения можно расшифровать только на компьютере, где она была зашифрована.

Источник

Читайте также:  что делать если опухла гортань
Строительный портал