Подключение к SQL с Windows авторизацией
Не могу победить проблему. Есть SQL Server 2008 R2 с установленной Win авторизацией. Поставить смешанную авторизацию нельзя по определенным причинам. Мне нужно оттуда смотреть вьюху. Подскажите, умеет ли 1С 8.2 подключаться с скулю с таким режимом авторизации?
В поиске есть устаревшие сведения, что не умеет, но может что-то поменялось уже.
Спасибо!
User ID
-или-
UID
-или-
Неприменимо
Учетная запись входа SQL Server. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. SqlCredential более безопасный способ определения учетные данные для подключения с использованием проверки подлинности SQL Server.
Длина ИД пользователя должна быть 128 символа или меньше.
Integrated Security
-или-
Trusted_Connection
false
Если задано значение false, в подключении заданы также параметры User ID и Password. Если задано значение true, для проверки подлинности используются текущие учетные данные Windows.
Распознаваемые значения: true, false, yes, no и sspi (настоятельно рекомендуется), что эквивалентно true.
Если ИД пользователя и пароль заданы и встроенные средства безопасности установлено значение «true», ИД пользователя и пароль будут проигнорированы, и использована встроенная безопасность.
(18) Я посмотрел в отладчике, в коллекции Errors появляется ошибка ошибочные параметры, а в строке очищаются User ID и Password. Т.е. ADO молча исправляет эту ошибку.
(17) Ну если так проще, то флаг в руки. Может тогда запустить весь процесс 1С под другим пользователем например через Runas или WMI, через параметры указать, чтобы отработал нужную процедуру, которая дернет скуль?
Строка подключения для 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 :
Синтаксис строки подключения
Построители строк подключения
Построители строк соединения позволяют создавать во время выполнения синтаксически правильные строки соединения, и поэтому в коде не требуется вручную объединять значения строк соединения. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).
Проверка подлинности Windows
| Поставщик | Синтаксис |
|---|---|
| SqlClient | Integrated Security=true; Integrated Security=SSPI; |
| OleDb | Integrated Security=SSPI; |
| Odbc | Trusted_Connection=yes; |
| OracleClient | Integrated Security=yes; |
Строки подключения SqlClient
Проверка подлинности Windows при работе с SqlClient.
Все следующие формы синтаксиса используют для подключения к базе данных AdventureWorks, размещенной на локальном сервере, проверку подлинности Windows.
Проверка подлинности SQL Server с использованием SqlClient.
Для соединения с SQL Server предпочтительно использовать проверку подлинности Windows. Однако если требуется проверка подлинности SQL Server, то имя пользователя и пароль указываются с помощью приведенного ниже синтаксиса. В этом примере символы звездочки представляют допустимое имя пользователя и пароль.
Проверка подлинности Windows имеет приоритет над именами входа SQL Server. Если указать значение Integrated Security=true, а также ввести имя пользователя и пароль, то имя пользователя и пароль не будут учитываться и будет применяться проверка подлинности Windows.
Подключение к именованному экземпляру SQL Server
Чтобы подключиться к именованному экземпляру SQL Server, используйте синтаксис имя_сервера\имя_экземпляра.
Кроме того, в свойстве DataSource объекта SqlConnectionStringBuilder можно задать имя экземпляра при построении строки подключения. Свойство DataSource объекта SqlConnection доступно только для чтения.
Изменения версий системы типов
Подключение и присоединение к пользовательским экземплярам SQL Server Express
Пользовательские экземпляры являются одной из возможностей SQL Server Express. Они дают пользователям под учетной записью с минимальными правами возможность присоединить и запустить базу данных SQL Server без прав администратора. Пользовательский экземпляр выполняется с учетными данными пользователя Windows, а не службы.
Использование ключевого слова TrustServerCertificate
Включение шифрования
Чтобы включить шифрование, когда на сервере не представлен сертификат, в диспетчере конфигурации SQL Server необходимо настроить параметры Принудительное шифрование протокола и Доверять сертификату сервера. В этом случае шифрование будет использовать самозаверяющий сертификат сервера, не проверяя наличия подтверждаемого сертификата сервера.
В следующей таблице перечислены все случаи.
| Параметр «Принудительное шифрование протокола» на клиенте | Параметр «Доверять сертификату сервера» на клиенте | Строка или атрибут «Шифровать/Использовать шифрование для подключения к данным» | Строка подключения или атрибут «Доверять сертификату сервера» | Результат |
|---|---|---|---|---|
| нет | Н/Д | Нет (по умолчанию) | Не учитывается | Шифрование отсутствует. |
| нет | Н/Д | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка соединения завершается неудачно. |
| нет | Н/Д | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | нет | Не учитывается | Не учитывается | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Нет (по умолчанию) | Не учитывается | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
| Да | Да | Да | Нет (по умолчанию) | Шифрование применяется только при наличии подтверждаемого сертификата сервера, в противном случае попытка подключения завершается сбоем. |
| Да | Да | Да | Да | Шифрование производится всегда, однако при этом может использоваться самозаверяющий сертификат сервера. |
Строки соединения OleDb
Свойство ConnectionString класса OleDbConnection позволяет получить или задать строку подключения для источника данных OLE DB (например, Microsoft Access). Строку подключения OleDb также можно создать во время выполнения с помощью класса OleDbConnectionStringBuilder.
Синтаксис строки соединения OleDb
В строке соединения OleDbConnection необходимо указать имя поставщика. Следующие строки подключения подключают к базе данных Microsoft Access, использующей поставщик Jet. Обратите внимание, что ключевые слова User ID и Password необязательны, если база данных не защищена (по умолчанию).
Если база данных Jet защищена на уровне пользователя, необходимо указать местоположение файла сведений рабочей группы (MDW-файла). Файл сведений рабочей группы используется для проверки учетных данных, указанных в строке подключения.
Соединение с Access/Jet с помощью строки замены DataDirectory
Указывать расположение системной базы данных в строке подключения не требуется, если база данных Access/Jet не защищена. Защита снята по умолчанию, все пользователи соединяются как встроенный пользователь Admin с пустым паролем. База данных Jet остается уязвимой для атаки, даже если правильно реализована безопасность на уровне пользователя. Поэтому в базе данных Access/Jet не рекомендуется хранить конфиденциальные данные, поскольку схема безопасности на основе файловой системы неизбежно обладает определенной уязвимостью.
Соединение с Excel
Поставщик Microsoft Jet используется для подключения с книгой Excel. В следующей строке подключения ключевое слово Extended Properties задает специфические свойства Excel. «HDR=Yes;» показывает, что первая строка содержит имена столбцов, а не данные, а «IMEX=1;» дает указания драйверу всегда считывать «смешанные» столбцы данных как текст.
Синтаксис строки подключения с поставщиком Data Shape
Строки подключения ODBC
Свойство ConnectionString класса OdbcConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения ODBC также поддерживаются построителем OdbcConnectionStringBuilder.
Следующая строка подключения использует текстовый драйвер Microsoft.
Использование строки замены DataDirectory для соединения с Visual FoxPro
Следующий образец строки подключения OdbcConnection демонстрирует использование DataDirectory для соединения с файлом Microsoft Visual FoxPro.
Строки подключения Oracle
Свойство ConnectionString класса OracleConnection позволяет получить или задать строку подключения для источника данных OLE DB. Строки подключения Oracle также поддерживаются построителем OracleConnectionStringBuilder.
Дополнительные сведения о синтаксисе строки подключения ODBC см. в разделе ConnectionString.
Подключение к источнику данных SQL Server (мастер импорта и экспорта SQL Server)
В этом разделе показано, как подключаться к источникам данных Microsoft SQL Server со страницы Выбор источника данных или Выбор назначения в мастере импорта и экспорта SQL Server. Для подключения к SQL Server можно использовать ряд поставщиков данных.
В сети с несколькими серверами может быть проще ввести имя сервера, а не разворачивать раскрывающийся список серверов. Если вы щелкнете раскрывающийся список, запрос всех доступных серверов может потребовать много времени, причем нужного сервера может не оказаться в списке.
Подключение к SQL Server через поставщик Microsoft OLE DB для SQL Server
Параметры подключения для этого поставщика данных одинаковы независимо от того, является ли сервер SQL Server источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Параметры подключения для этого поставщика данных одинаковы независимо от того, является ли сервер SQL Server источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Источник данных
Введите имя или IP-адрес исходного или конечного сервера либо выберите сервер в раскрывающемся списке.
Чтобы указать нестандартный TCP-порт, введите запятую после имени или IP-адреса сервера, а затем введите номер порта.
Исходный каталог
Введите имя исходной или конечной базы данных либо выберите базу данных в раскрывающемся списке.
Встроенные функции безопасности
Выберите значение True, чтобы использовать встроенную проверку подлинности Windows (рекомендуется), или False для подключения с использованием проверки подлинности SQL Server. При выборе False необходимо ввести идентификатор пользователя и пароль. Значение по умолчанию равно False.
Идентификатор пользователя
При использовании проверки подлинности SQL Server введите имя пользователя.
Пароль
При использовании проверки подлинности SQL Server введите пароль.
Подключение к SQL Server с помощью драйвера ODBC для SQL Server
Получите последнюю версию драйвера. Скачайте Microsoft ODBC Driver for SQL Server.
Указываемые параметры (драйвер ODBC для SQL Server)
Параметры подключения для этого драйвера ODBC одинаковы независимо от того, является ли сервер SQL Server источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Чтобы подключиться к SQL Server с помощью последней версии драйвера ODBC, постройте строку подключения, используя указанные ниже параметры и их значения. Полный формат строки подключения приведен после списка параметров.
Вы можете получить помощь в построении строки подключения. Кроме того, вместо указания строки подключения вы можете предоставить существующее имя DSN (имя источника данных) или создать новое. Дополнительные сведения об этих возможностях см. в разделе Подключение к источнику данных ODBC.
Драйвер
Имя драйвера ODBC. Для разных версий драйвера имена различаются.
Server
Имя сервера SQL Server.
База данных
Имя базы данных.
Trusted_Connection либо Uid и Pwd
Укажите параметр Trusted_Connection=Yes для подключения с использованием встроенной проверки подлинности Windows либо укажите Uid (идентификатор пользователя) и Pwd (пароль) для подключения с использованием проверки подлинности SQL Server.
Формат строки подключения
Ниже приведен формат строки подключения с использованием встроенной проверки подлинности Windows.
Driver=
Ниже приведен формат строки подключения с использованием проверки подлинности SQL Server вместо встроенной проверки подлинности Windows.
Ввод строки подключения
Введите строку подключения в поле ConnectionString либо введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке.
В приведенном ниже примере используется следующая строка подключения:
Ниже показан экран, который появляется после ввода строки подключения.
Подключение к SQL Server с помощью поставщика OLE DB для SQL Server (Майкрософт) или SQL Server Native Client
Поставщик OLE DB для SQL Server (Майкрософт) является текущим поставщиком OLE DB для SQL Server.
Другие поставщики данных и дополнительные сведения
Сведения о подключении к SQL Server с помощью поставщика данных, который не указан в этой статье, см. на странице Строки подключения к SQL Server. Этот сторонний сайт также содержит дополнительные сведения о поставщиках данных и параметрах подключения, описанных на этой странице.
Работа с данными
CommandText
Выведем теперь все записи клиентов, имена которых начинаются на «М»:
ConnectionString
Строка соединения ConnectionString определяет параметры, необходимые для установления соединения с источником данных. Строка соединений при использовании мастеров генерируется средой, но можно (и желательно — во избежание неточностей и ошибок) писать эту строчку вручную. Рассмотрим еще раз строки соединения, которые были созданы при подключении к базам данных xtreme и Northwind :
В этой строках через точку с запятой просто перечисляются параметры соединения. В таблице 4.2 приводятся основные значения этих параметров.
| Параметр | Описание |
|---|---|
| Параметр | Описание |
| Provider (Поставщик) | Свойство применяется для установки или возврата имени поставщика для соединения, используется только для объектов OleDbConnection |
| Connection Timeout или Connect Timeout (Время ожидания связи) | Длительность времени ожидания связи с сервером перед завершением попытки и генерацией исключения в секундах. По умолчанию 15 |
| Initial Catalog (Исходный каталог) | Имя базы данных |
| Data Source (Источник данных) | |
| Имя используемого SQL-сервера, когда установлено соединение, или имя файла базы данных Microsoft Access | |
| Password (Пароль) | Пользовательский пароль для учетной записи SQL Server. |
| User ID (Пользовательский ID) | Пользовательское имя для учетной записи SQL Server |
| Workstation ID | Имя рабочей станции или компьютера |
| Integrated Security или Trusted Connection (Интегрированная безопасность или Доверительное соединение) | Параметр, который определяет, является ли соединение защищенным. True, False и SSPI — возможные значения. (SSPI – эквивалент True.) |
| Persist Security Info (Удержание защитной информации) | Когда установлено False, нуждающаяся в защите информация, такая как пароль, не возвращается как часть соединения, если связь установлена или когда-либо была установленной. Выставление этого свойства в True может быть рискованным в плане безопасности. По умолчанию False |
При создании строки ConnectionString Мастером происходит генерирование довольно многих лишних параметров. Нельзя сказать, что они не нужны, — просто Мастер предусматривает все возможности использования этого подключения и вставляет соответствующие значения. В действительности необходимых значений для простого извлечения данных всего несколько:
Мы значительно сократили количество параметров, получив прежнюю функциональность приложений.
Когда мы переносим объект DataAdapter из панели инструментов Toolbox (со вкладки Data ) на форму, вместе с ним образуется объект DBConnection, в свойствах которого указывается строка ConnectionString и другие параметры подключения (рис. 4.48)
Управление соединением. Объект Connection
Большинство источников данных поддерживает ограниченное количество соединений. Так, база данных Microsoft Access может поддерживать одновременную работу не более чем с 50 пользователями. При попытке обращения к базе данных, лимит соединений которой исчерпан, пользователь не получит нужной ему информации и будет вынужден ждать освобождения соединения. Задача разработчика заключается в минимизации времени связи с базой данных, поскольку соединение занимает полезные системные ресурсы.
Когда вы вызываете у объекта DataAdapter метод (например, Fill ), то он сам проверяет, открыто ли соединение. Если соединения нет, то DataAdapter открывает соединение, выполняет задачи и затем закрывает соединение.
Явное управление соединением — лучший подход к работе с базами данных. Он обладает рядом преимуществ:
В конструкторе Form1 после InitializeComponent создаем объект Connection :
Можно также устанавливать строку подключения через свойство созданного объекта сonn:
Теперь можно устанавливать соединение, вызывая метод Open объекта Connection :





