Синтаксис строки подключения
В Microsoft.Data.SqlClient есть объект Connection , который наследуется от DbConnection, а также свойство ConnectionString для конкретного поставщика. Синтаксис строки подключения для конкретного поставщика SqlClient описывается в соответствующем свойстве ConnectionString . Дополнительные сведения о синтаксисе строки подключения см. в разделе ConnectionString.
Построители строк подключения
Поставщик данных Microsoft SqlClient для SQL Server предоставляет описанный ниже построитель строк подключения.
Построители строк подключения позволяют создавать во время выполнения синтаксически правильные строки подключения, поэтому в коде не требуется вручную объединять значения строк подключения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Проверка подлинности Windows
Для соединения с источниками данных рекомендуется использовать проверку подлинности Windows (которую также называют встроенной безопасностью), если эти источники ее поддерживают. В следующей таблице демонстрируется синтаксис проверки подлинности Windows, который используется в поставщике данных Microsoft SqlClient для SQL Server.
Строки подключений SqlClient
Синтаксис для строки подключения SqlConnection документирован в свойстве SqlConnection.ConnectionString. Свойство ConnectionString используется для возврата или задания строки подключения для базы данных SQL Server. Кроме того, ключевые слова строки подключения сопоставляются со свойствами в SqlConnectionStringBuilder.
Для ключевого слова Persist Security Info используется значение по умолчанию false . Значение true или yes позволяет получить из строки соединения конфиденциальные данные (в том числе идентификатор пользователя и пароль) после открытия соединения. Задайте для Persist Security Info значение false , чтобы убедиться, что ненадежный источник не сможет получить доступ к конфиденциальным данным строки подключения.
Проверка подлинности Windows при работе с SqlClient.
Все следующие формы синтаксиса используют для подключения к базе данных AdventureWorks, размещенной на локальном сервере, проверку подлинности Windows.
"Persist Security Info=False;Integrated Security=true; Initial Catalog=AdventureWorks;Server=MSSQL1;Encrypt=True;" "Persist Security Info=False;Integrated Security=SSPI; database=AdventureWorks;server=(local);Encrypt=True;" "Persist Security Info=False;Trusted_Connection=True; database=AdventureWorks;server=(local);Encrypt=True;"
Проверка подлинности SQL Server с использованием SqlClient.
Для соединения с SQL Server предпочтительно использовать проверку подлинности Windows. Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.
"Persist Security Info=False;User Catalog=AdventureWorks;Server=MySqlServer;Encrypt=True;"
Если при подключении к Базе данных SQL Azure или Azure Synapse Analytics вы указываете имя пользователя в формате user@servername , убедитесь, что значение servername в имени пользователя соответствует значению, указанному для Server= .
Проверка подлинности Windows имеет приоритет над именами входа SQL Server. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.
Подключение к именованному экземпляру SQL Server
Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.
"Data Source=MySqlServer\MSSQL1;"
Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.
Изменения в версии системы типов
Ключевое слово Type System Version в SqlConnection.ConnectionString указывает клиентское представление типов SQL Server. Дополнительные сведения о ключевом слове Type System Version см. в разделе SqlConnection.ConnectionString.
Подключение к пользовательским экземплярам SQL Server Express и их присоединение
Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.
Использование TrustServerCertificate
При TrustServerCertificate подключении к экземпляру SQL Server используется ключевое слово. Если TrustServerCertificate для задано значение true , транспортный уровень использует TLS/SSL для шифрования канала и обхода цепочки сертификатов для проверки доверия.
- В версиях, предшествующих Microsoft.Data.SqlClient 2.0, этот параметр игнорируется, если Encrypt имеет значение False и сертификат сервера не проверяется.
- Начиная с microsoft.Data.SqlClient версии 2.0, даже если Encrypt задан False параметр , параметр определяет, выполняется ли проверка сертификата при принудительном шифровании сервером.
- Начиная с microsoft.Data.SqlClient версии 5.0 этот параметр игнорируется, если Encrypt имеет значение Strict . Сертификат сервера всегда проверяется в режиме Strict .
"TrustServerCertificate=true;"
HostNameInCertificate
Начиная с версии 5.0 Microsoft.Data.SqlClient HostNameInCertificate — это новый вариант подключения. Проверка сертификата сервера гарантирует, что общее имя (CN) или альтернативное имя субъекта (SAN) в сертификате соответствует имени сервера, к которому выполняется подключение. В некоторых случаях, например для псевдонимов DNS, имя сервера может не совпадать с CN или SAN. Значение HostNameInCertificate можно использовать для указания другого ожидаемого CN или SAN в сертификате сервера.
"HostNameInCertificate=myserver.example.com"
ServerCertificate
Начиная с версии 5.1 Microsoft.Data.SqlClient, ServerCertificate является новым вариантом подключения. Значение по умолчанию параметра ServerCertificate подключения — пустая строка. Если Encrypt для задано значение Mandatory или Strict , ServerCertificate можно использовать для указания в файловой системе пути к файлу сертификата, который должен соответствовать TLS-сертификату сервера. Чтобы сертификат был действительным, указанный сертификат должен иметь точное соответствие. Допустимые форматы сертификатов: PEM, DER и CER. Ниже приведен пример:
"Data Source=. ;Encrypt=Strict;ServerCertificate=C:\certificates\server.cer"
Включение шифрования
Чтобы включить шифрование, если сертификат не был подготовлен на сервере, для свойства подключения Сертификат доверенного сервера должно быть задано значение True . В этом случае шифрование использует самозаверяющий сертификат сервера без проверки, так как на сервере не подготовлен проверяемый сертификат.
Настройки приложения не могут снизить настроенный в SQL Server уровень безопасности, но при необходимости могут повысить его. Приложение может запрашивать шифрование, если задать для ключевых слов TrustServerCertificate и Encrypt значение true . Это гарантирует использование шифрования, даже когда сертификат сервера не подготовлен. Однако, даже если в конфигурации клиента не включен параметр TrustServerCertificate , сертификат сервера все равно потребуется.
В следующей таблице перечислены все случаи.
| Шифрование строки подключения/атрибут | Строка подключения или атрибут «Доверять сертификату сервера» | Результат |
|---|---|---|
| Нет/необязательно | Не учитывается | Шифрование отсутствует. |
| Да/обязательно | Нет | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да/обязательно | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Строгое 1 | Не учитывается | Шифрование происходит всегда и в его процессе должен использоваться подтверждаемый сертификат сервера, в противном случае попытка подключения завершается сбоем. |
1 Строгое шифрование доступно только начиная с Microsoft.Data.SqlClient версии 5.0.
Дополнительные сведения, включая поведение в предыдущих версиях, см. в разделе Шифрование и проверка сертификатов.
строка соединения с sql
«Сначало я создал ComObject(«ADODB.Connection»), но потом на форуме нашел код в котором используются еще два com объекта COMObject(«ADODB.Command») ComObject(«ADODB.RecordSet»), но не понял для чего они нужны потом нашел на форуме образец подключения к Microsoft SQL Server 2005 (Microsoft SQL Server Management Studio) через 1с («Provider=SQLOLEDB;Driver=; Deleted=No; Data Source = «) + SQLServer + («;UID=») + Login + («; PWD=») + Password + («;»);. этот код мне не совсем понятен. Объсните как проще написать строку подключения к Microsoft SQL Server 2005 (Microsoft SQL Server Management Studio) и для чего нужно создавать эти com объекты COMObject(«ADODB.Command») ComObject(«ADODB.RecordSet»).»
Яковлев И.Г.
читатель
Дата регистрации: 27.05.2009
Сообщений: 21
27.05.2009 15:59
«Очень упрощённо:
— Connection — для соединения с базой
— Command — для выполнения запросов к базе
— RecordSet — это результат выполнения запроса к базе (таблица значений)
Для подключения к БД тебе понадобится строка подключения (connection string). В примере ниже это «Provider=SQLOLEDB; Server=DB\SQL2005; Database=DatabaseName; Trusted_Connection=yes;».
Приведу пример кода соединения с базой и выполнения простейшего запроса. Обработку ошибок опускаю, дабы не загромождать код:
// подключаемся к базе
Соединение=ПолучитьCOMОбъект(«»»»,»ADODB.Connection»);
Соединение.ConnectionTimeOut=600;
Соединение.Open(«Provider=SQLOLEDB; Server=DB\SQL2005; Database=DatabaseName; Trusted_Connection=yes;»);
// выполняем запрос
cmd=ПолучитьCOMОбъект(«»»»,»ADODB.Command»);
cmd.ActiveConnection=Соединение;
cmd.CommandTimeOut=600;
cmd.CommandType=1; // запрос на языке SQL
cmd.Commandtext=»select * from TableName»;
Rs=ПолучитьCOMОбъект(«»»»,»ADODB.RecordSet»);
Rs.ActiveConnection=Соединение;
Rs=Cmd.Execute();
// перегоняем результат выполнения запроса в таблицу значений для последующей обработки
таб=новый таблицазначений;
колво=Rs.Fields.Count();
Для i=1 по колво Цикл
наим=Rs.Fields(i-1).Name;
наим=стрзаменить(наим,»/»,»_»);
таб.колонки.Добавить(наим);
КонецЦикла;
Пока Rs.EOF()=0 Цикл
т=таб.добавить();
Для i=0 по колво-1 Цикл
т.Установить(i,Rs.Fields(i).Value);
КонецЦикла;
Rs.MoveNext();
КонецЦикла;
// закрываем соединение
Соединение.Close();»
Пример строки подключения MS SQL для ASP .Net MVC?
Вдруг кому-либо понадобится настроить строку подключения на Reg.ru, файл Web.Release.config не подхватывается сервером и менять нужно корневой Web.config.
Согласно их мануала используя EntityFramework нужно использовать строку настроенную на EntityClient:
; integrated security=False; App=EntityFramework; User Password="" providerName="System.Data.EntityClient" />
Что самое удивительное, в личном проекте используется EntityFramework версии 6.0.0.0, но подключение сработало как подключение SqlClient в виде:
Понимаю, что поздно, но вдруг пригодится.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C#
- +2 ещё
Возможно ли получить tcp-сокет в C#-приложении? Или как узнать IP?
- 1 подписчик
- 17 нояб.
- 86 просмотров
Создание подключения JDBC к источнику данных
- На странице » Администрирование » нажмите Подключение JDBC .
- Нажмите Добавить источник данных .
- В поле Имя источника данных введите отображаемое имя источника данных. Это имя отображается в списке выбора источника данных в редакторе моделей данных.
Невозможно создать новый источник данных Oracle BI EE с таким же именем, а также удалить выделенный источник данных Oracle BI EE.
Администратор должен разрешить удаленное подключение к данным и настроить Data Gateway в целевой локальной базе данных. Если выбран параметр Использовать Data Gateway , настройки Класс драйвера базы данных , Использовать системного пользователя , Функция предварительной обработки , Функция заключительной обработки и Использовать аутентификацию через прокси недоступны для выбора или обновления.
- База данных Oracle Для подключения к базе данных Oracle (не RAC) используется следующий формат строки подключения: jdbc:oracle:thin:@[host]:[port]:[sid] Пример: jdbc:oracle:thin:@myhost.us.example.com:1521:prod
- База данных Oracle RAC Для подключения к базе данных Oracle RAC используется следующий формат сроки подключения: jdbc:oracle:thin:@//[:]/ Пример: jdbc:oracle:thin:@//myhost.example.com:1521/my_service
- Microsoft SQL Server Для подключения к Microsoft SQL Server используется следующий формат строки подключения: jdbc:hyperion:sqlserver://[hostname]:[port];DatabaseName=[Databasename] Например: jdbc:hyperion:sqlserver://myhost.us.example.com:7777;DatabaseName=mydatabase
Выбрать можно из сертификатов клиентов, загруженных в Центр загрузки.
- Выберите Использовать резервный источник данных .
- Введите строку подключения для резервной базы данных.
- Введите имя пользователя и пароль для этой базы данных.
- Нажмите Проверить подключение .
После определения резервного источника данных настройки безопасности передаются в резервный источник данных.
Создание защищенного подключения JDBC к Oracle Autonomous Data Warehouse
Можно загрузить сертификат клиента JDBC и установить подключение JDBC на основе SSL к базе данных в облаке.
Чтобы создать защищенное подключение JDBC к Oracle Autonomous Data Warehouse, выполните указанные ниже действия.
- Загрузите сертификат клиента JDBC (файл-накопитель Oracle, cwallet.sso) на сервер.
- На странице администрирования нажмите Центр загрузки .
- Найдите и выберите файл-накопитель Oracle, cwallet.sso.
- В списке Тип файла выберите Сертификат клиента JDBC .
- Нажмите Загрузить .
- Имя источника данных : DBaaSConnection
- Тип драйвера : Oracle 12c
- Класс драйвера базы данных : oracle.jdbc.OracleDriver
Используйте строки TCPS. Например, jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST= server_name )(PORT= port ))(CONNECT_DATA=(SERVICE_NAME= serviceName ))) При использовании PAC (частного канала доступа), добавьте (ENABLE=broken) к параметру DESCRIPTION в строке соединения. Например, jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=broken)(ADDRESS=(PROTOCOL=tcps)(HOST= server_name )(PORT= port ))(CONNECT_DATA=(SERVICE_NAME= serviceName )))
Настройка подключения JDBC к локальному источнику данных
Можно настроить подключение JDBC к локальному источнику данных с использованием агента Data Gateway.
Убедитесь, что администратор настроил Data Gateway в целевой локальной базе данных и включил подключение к данным. См. раздел «Обзор подключения к локальным источникам данных».
- Включите Data Gateway в консоли:
- На главной странице Analytics Cloud нажмите Консоль .
- Нажмите Удаленное подключение к данным .
- Включите параметр Включить Data Gateway .
- Выберите и включите агент Data Gateway, который собираетесь использовать.
- Класс драйвера базы данных (по умолчанию: oracle.jdbc.OracleDriver)
- Использовать системного пользователя
- Функция предварительной обработки
- Функция заключительной обработки
- Сертификат клиента
- Использовать аутентификацию через прокси
- Выберите Использовать резервный источник данных .
- Введите строку подключения для резервной базы данных.
- Введите имя пользователя и пароль для этой базы данных.
- Нажмите Проверить подключение .
После определения резервного источника данных, настройки безопасности передаются в резервный источник данных.
Настройка подключения к Snowflake Data Warehouse
Настройте подключение к хранилищу данных Snowflake, чтобы использовать базу данных Snowflake в качестве источника данных.
- На странице » Администрирование » нажмите Подключение JDBC .
- Нажмите Добавить источник данных .
- В поле Имя источника данных введите отображаемое имя источника данных. Это имя отображается в списке выбора источника данных в редакторе моделей данных.
- Выберите Snowflake в качестве типа драйвера.
- В поле Класс драйвера базы данных используйте по умолчанию net.snowflake.client.jdbc.SnowflakeDriver .
- В поле «Строка подключения» введите следующую строку:
jdbc:snowflake://accountName.snowflakecomputing.com;db=[database name];warehouse=[warehouse name];schema=[schema name]; Если вы хотите использовать другие свойства для подключения, добавьте их, разделяя точкой с запятой (; ), как показано в примере. Пример: jdbc:snowflake://hw11692.us-central1.gcp.snowflakecomputing.com;db=SNOWFLAKE_SAMPLE_DATA;warehouse=COMPUTE_WH;useProxy=true;proxyHost=www-proxy-adcq7-new.us.oracle.com;proxyPort=80
Выбрать можно из сертификатов клиентов, загруженных в Центр загрузки.
Настройка подключения к хранилищу данных Vertica Data Warehouse
Настройте подключение к хранилищу данных Vertica, чтобы использовать базу данных Vertica в качестве источника данных.
- На странице » Администрирование » нажмите Подключение JDBC .
- Нажмите Добавить источник данных .
- В поле Имя источника данных введите отображаемое имя источника данных. Это имя отображается в списке выбора источника данных в редакторе моделей данных.
- Выберите Vertica в качестве типа драйвера.
- В поле Класс драйвера базы данных используйте по умолчанию com.vertica.jdbc.Driver .
- В поле «Строка подключения» введите следующую строку:
