Свойства инициализации и авторизации (поставщик OLE DB собственного клиента)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Важно!

SQL Server Native Client (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Для новой разработки не рекомендуется использовать SQL Server Native Client поставщик OLE DB (SQLNCLI или SQLNCLI11) и устаревший поставщик OLE DB Майкрософт для SQL Server (SQLOLEDB). Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server в будущем.

Поставщик OLE DB SQL Server Native Client интерпретирует свойства инициализации и авторизации OLE DB следующим образом:

Идентификатор свойства Описание
DBPROP_AUTH_CACHE_AUTHINFO Поставщик SQL SERVER NATIVE CLIENT OLE DB не кэшируют сведения о проверке подлинности.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_ENCRYPT_PASSWORD Поставщик SQL Server Native Client OLE DB использует стандартные механизмы безопасности Microsoft SQL Server для скрытия паролей.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_INTEGRATED Если для DBPROP_AUTH_INTEGRATED задан указатель NULL, строка NULL или значение VT_BSTR SSPI, поставщик SQL Server Native Client OLE DB использует режим проверки подлинности Windows для авторизации доступа пользователей к базе данных SQL Server, указанной свойствами DBPROP_INIT_DATASOURCE и DBPROP_INIT_CATALOG.

Если задано значение VT_EMPTY (по умолчанию), то используется безопасность SQL Server. Имя входа в SQL Server и пароль указываются в свойствах DBPROP_AUTH_USERID и DBPROP_AUTH_PASSWORD.
DBPROP_AUTH_MASK_PASSWORD Поставщик SQL Server Native Client OLE DB использует стандартные механизмы безопасности SQL Server для скрытия паролей.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_PASSWORD Пароль назначается для имени входа в SQL Server. Когда выбрана проверка подлинности SQL Server, это свойство используется для авторизации доступа к базе данных SQL Server.
DBPROP_AUTH_PERSIST_ENCRYPTED Поставщик SQL Server Native Client OLE DB не шифрует сведения о проверке подлинности при сохранении.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO Поставщик SQL Server Native Client OLE DB сохраняет значения проверки подлинности, включая изображение пароля, если этого потребуется. Шифрование не предусмотрено.
DBPROP_AUTH_USERID Имя входа в SQL Server. Когда выбрана проверка подлинности SQL Server, это свойство используется для авторизации доступа к базе данных SQL Server.
DBPROP_INIT_ASYNCH Поставщик OLE DB SQL Server Native Client поддерживает асинхронную инициализацию.

При установке разряда DBPROPVAL_ASYNCH_INITIALIZE в свойстве DBPROP_INIT_ASYNCH метод IDBInitialize::Initialize становится неблокирующим вызовом. Дополнительные сведения о выполнении асинхронных операций см. в этой статье.
DBPROP_INIT_CATALOG Имя существующей базы данных SQL Server, к которой выполняется подключение.
DBPROP_INIT_DATASOURCE Сетевое имя сервера, на котором выполняется экземпляр Microsoft SQL Server. Если на компьютере запущено несколько экземпляров SQL Server, то для подключения к определенному экземпляру SQL Server значение DBPROP_INIT_DATASOURCE указывается в формате \\имя_сервера\имя_экземпляра. Вместо обратной косой черты используется escape-последовательность (\\).
DBPROP_INIT_GENERALTIMEOUT Указывает количество секунд до истечения времени запроса, кроме инициализации источника данных и выполнения команды. Значение 0 указывает на бесконечное время ожидания. Поставщики, работающие через сетевые подключения в распределенных сценариях или сценариях на основе транзакций, могут реализовать поддержку этого свойства, чтобы принудительно сократить время ожидания задействованного компонента в случае длительного выполнения запроса. Временем ожидания для инициализации источника данных или выполнения команд по-прежнему управляют свойства DBPROP_INIT_TIMEOUT и DBPROP_COMMANDTIMEOUT, соответственно.

Свойство DBPROP_INIT_GENERALTIMEOUT доступно только для чтения, и при попытке присвоить ему значение в dwstatus возвращается ошибка DBPROPSTATUS_NOTSETTABLE.
DBPROP_INIT_HWND Дескриптор Windows из вызывающего приложения. Действительный дескриптор окна необходим для инициализации диалогового окна, если разрешен запрос свойств инициализации.
DBPROP_INIT_IMPERSONATION_LEVEL Поставщик OLE DB SQL Server Native Client не поддерживает настройку уровня олицетворения.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_LCID Поставщик SQL Server Native Client OLE DB проверяет идентификатор языкового стандарта и возвращает ошибку, если код языкового стандарта не поддерживается или не установлен на клиенте.
DBPROP_INIT_LOCATION Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_MODE Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_PROMPT Поставщик SQL SERVER NATIVE CLIENT OLE DB поддерживает все режимы запроса для инициализации источника данных. Поставщик OLE DB SQL Server Native Client использует DBPROMPT_NOPROMPT в качестве параметра по умолчанию для свойства .
DBPROP_INIT_PROTECTION_LEVEL Поставщик SQL SERVER NATIVE CLIENT OLE DB не поддерживает уровень защиты для подключений к экземплярам SQL Server.

Поставщик OLE DB SQL Server Native Client возвращает DB_S_ERRORSOCCURRED при попытке задать значение свойства. Элемент dwStatus структуры DBPROP указывает DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_PROVIDERSTRING См. SQL Server Native Client строку поставщика OLE DB далее в этом разделе.
DBPROP_INIT_TIMEOUT Поставщик SQL Server Native Client OLE DB возвращает ошибку при инициализации, если подключение к экземпляру SQL Server не удается установить в течение указанного количества секунд.

В наборе свойств конкретного поставщика DBPROPSET_SQLSERVERDBINIT поставщик OLE DB SQL Server Native Client определяет эти дополнительные свойства инициализации.

Идентификатор свойства Описание
SSPROP_AUTH_OLD_PASSWORD Тип: VT_BSTR

Ч/З запись

Значение по умолчанию: VT_EMPTY

Описание. Текущий пароль или пароль с истекшим сроком действия. Дополнительные сведения см. в статье Смена пароля программным способом.
SSPROP_INIT_APPNAME Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Имя клиентского приложения.
SSPROP_INIT_AUTOTRANSLATE Тип: VT_BOOL.

Ч/З Чтение/запись

Значение по умолчанию: VARIANT_TRUE

Описание. Преобразование символов OEM/ANSI.

VARIANT_TRUE. Поставщик OLE DB SQL Server Native Client преобразует строки символов ANSI, отправленные между клиентом и сервером, путем преобразования с помощью Юникода, чтобы свести к минимуму проблемы при сопоставлении расширенных символов между кодовыми страницами на клиенте и сервере:

Данные типа DBTYPE_STR, передаваемые в переменную, параметр или столбец в экземпляре переменной SQL Server, имеющем тип char, varchar или text, преобразуются в Юникод с использованием кодовой страницы ANSI (ACP) клиента, а затем преобразуются из Юникода в символьную строку с использованием ACP сервера.

Данные SQL Server типа char, varchar или text, передаваемые в переменную DBTYPE_STR в клиенте, преобразуются в Юникод с использованием ACP сервера, а затем из Юникода — в символьную строку с использованием ACP клиента.

Эти преобразования выполняются на клиенте поставщиком OLE DB SQL Server Native Client. Для этого на клиенте должна быть доступна та же кодовая страница, что используется на сервере.

Следующие параметры не влияют на преобразования, выполняемые для этих передач.

Данные переменной типа DBTYPE_WSTR в Юникоде передаются из клиента на сервер в объекты типа char, varchar или text.

Данные типов char, varchar или text передаются с сервера в клиент в переменные типа DBTYPE_WSTR в Юникоде.

Данные переменных типа DBTYPE_WSTR в кодировке ANSI передаются из клиента на сервер в Юникоде в переменные типа nchar, nvarchar или ntext.

Данные в Юникоде типов char, varchar или text передаются с сервера в клиент в переменные типа DBTYPE_WSTR в кодировке ANSI.

VARIANT_FALSE. Поставщик OLE DB SQL Server Native Client не выполняет перевод символов.

Поставщик SQL Server Native Client OLE DB не преобразует символы ANSI клиента DBTYPE_STR данные, отправленные в char, varchar или текстовые переменные, параметры или столбцы на сервере. Преобразование данных типов char, varchar или text при передаче с сервера в клиент в переменные DBTYPE_STR не выполняется.

Если на клиенте и на экземпляре SQL Server используются разные ACP, то символы национальных алфавитов могут быть преобразованы неправильно.
SSPROP_INIT_CURRENTLANGUAGE Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Название языка SQL Server. Указывает язык, используемый для выбора и форматирования системных сообщений. Язык должен быть установлен на компьютере, на котором запущен экземпляр SQL Server, в противном случае инициализация источника данных не будет выполнена.
SSPROP_INIT_DATATYPECOMPATIBILITY Тип: VT_UI2

Ч/З Чтение/запись

Значение по умолчанию: 0

Описание. Обеспечивает совместимость типов данных между SQL Server и приложениями ActiveX Data Objects (ADO). Если установлено значение 0 (по умолчанию), то используется та же обработка типов данных, которая применяется поставщиком. Если установлено значение 80, то для обработки типов данных используются только типы данных SQL Server 2000 (8.x). Дополнительные сведения см. в статье Использование ADO с SQL Server Native Client.
SSPROP_INIT_ENCRYPT Тип: VT_BOOL.

Ч/З Чтение/запись

Значение по умолчанию: VARIANT_FALSE

Описание. Чтобы включить шифрование передаваемых по сети данных, необходимо присвоить свойству SSPROP_INIT_ENCRYPT значение VARIANT_TRUE.

Если включено принудительное шифрование протокола, то шифрование данных производится всегда, независимо от значения SSPROP_INIT_ENCRYPT. Если оно отключено, а для свойства SSPROP_INIT_ENCRYPT задано значение VARIANT_TRUE, то шифрование будет выполняться.

Если шифрование протокола отключено, а для свойства SSPROP_INIT_ENCRYPT задано значение VARIANT_FALSE, то шифрование не будет выполняться.
SSPROP_INIT_FAILOVERPARTNER Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Указывает имя партнера по обеспечению отработки отказа для зеркального отображения базы данных. Является свойством инициализации и может быть задано только перед инициализацией. После инициализации оно будет возвращать имя партнера по обеспечению отработки отказа (если есть), возвращенное сервером-источником.

Это позволяет смарт-приложениям кэшировать последний определенный сервер резервного копирования, однако они должны учитывать, что данные обновляются только при первом установлении соединения (или при возобновлении, при наличии пула) и могут устареть в случае длительных соединений.

После установления соединения приложение может запросить этот атрибут, чтобы идентифицировать партнера по обеспечению отработки отказа. Если сервер-источник не имеет партнера по обеспечению отработки отказа, то это свойство вернет пустую строку. Дополнительные сведения см. в статье Зеркальное отображение базы данных.
SSPROP_INIT_FILENAME Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Указывает имя первичного файла присоединяемой базы данных. Эта база данных присоединяется и становится для соединения базой данных по умолчанию. Перед использованием свойства SSPROP_INIT_FILENAME необходимо указать имя базы данных в свойстве инициализации DBPROP_INIT_CATALOG. Если имя базы данных не существует, то выполняется поиск имени первичного файла, указанного в свойстве SSPROP_INIT_FILENAME, и присоединяется база данных с именем, указанным в свойстве DBPROP_INIT_CATALOG. Если база данных уже была присоединена, то SQL Server ее снова не присоединяет.
SSPROP_INIT_MARSCONNECTION Тип: VT_BOOL.

Ч/З Чтение/запись

Значение по умолчанию: VARIANT_FALSE

Описание. Указывает, включен ли для подключения множественный активный результирующий набор. Перед установлением соединения с базой данных этот параметр должен быть установлен в значение true. Дополнительные сведения см. в разделе Использование множественных активных результирующих наборов (MARS).
SSPROP_INIT_NETWORKADDRESS Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Сетевой адрес сервера, на котором запущен экземпляр SQL Server, указанный в свойстве DBPROP_INIT_DATASOURCE.
SSPROP_INIT_NETWORKLIBRARY Тип: VT_BSTR

Ч/З Чтение/запись

Описание. Имя сетевой библиотеки (DLL), используемой для связи с экземпляром SQL Server. Не должно включать путь или расширение DLL.

Значение по умолчанию можно настроить с помощью средства настройки клиента SQL Server.

Примечание. Это свойство поддерживает только TCP и именованные каналы. Если указан префикс, то это приведет к образованию двойного префикса и вызовет ошибку, поскольку это свойство создает префиксы внутри себя.
SSPROP_INIT_PACKETSIZE Тип: VT_I4

Ч/З Чтение/запись

Описание: размер сетевого пакета в байтах. Значение свойства «размер пакета» должно находиться в диапазоне от 512 до 32 767. Размер сетевого пакета поставщика OLE DB по умолчанию SQL Server Native Client составляет 4096.
SSPROP_INIT_TAGCOLUMNCOLLATION Тип: BOOL

Ч/З запись

Значение по умолчанию: FALSE

Описание. Используется при обновлении базы данных, если применяются курсоры на стороне сервера. Это свойство добавляет к данным сведения о параметрах сортировки, полученные с сервера, а не кодовую страницу клиента. В настоящее время это свойство используется только процессом обработки распределенных запросов, поскольку он знает параметры сортировки данных назначения и может правильно их преобразовать.
SSPROP_INIT_TRUST_SERVER_CERTIFICATE Тип: VT_BOOL.

Ч/З Чтение/запись

Значение по умолчанию: VARIANT_FALSE

Описание. Используется для включения и отключения проверки сертификата сервера. Это свойство доступно для чтения и записи, но попытка его установки после установления соединения приведет к ошибке.

Это свойство не используется, если на клиенте настроен запрос проверки сертификата. Однако приложение может использовать его вместе со свойством SSPROP_INIT_ENCRYPT, чтобы обеспечить шифрование соединения с сервером, даже если на клиенте не установлен сертификат и не настроен запрос проверки сертификата.

Клиентские приложения могут запрашивать это свойство после открытия соединения для получения используемых параметров шифрования и проверки.

Примечание. Использование шифрования без проверки сертификата обеспечивает частичную защиту от перехвата пакетов, однако не защищает от атак типа "злоумышленник в середине". Оно лишь позволяет шифровать имя входа и данные, передаваемые на сервер, без проверки сертификата сервера.

Дополнительные сведения см. в статье Использование шифрования без проверки.
SSPROP_INIT_USEPROCFORPREP Тип: VT_I4

Ч/З Чтение/запись

Значение по умолчанию: SSPROPVAL_USEPROCFORPREP_ON

Описание. Использование хранимой процедуры SQL Server. Определяет использование временных хранимых процедур SQL Server для поддержки интерфейса ICommandPrepare. Это свойство имело значение только при соединении с сервером SQL Server 6.5. Для более поздних версий это свойство не используется.

SSPROPVAL_USEPROCFORPREP_OFF: временная хранимая процедура не создается при подготовке команды.

SSPROPVAL_USEPROCFORPREP_ON: временная хранимая процедура создается при подготовке команды. Временные хранимые процедуры удаляются при освобождении сеанса.

SSPROPVAL_USEPROCFORPREP_ON_DROP: временная хранимая процедура создается при подготовке команды. Процедура удаляется при отмене подготовки команды методом ICommandPrepare::Unprepare, при определении новой команды для объекта команды методом ICommandText::SetCommandText или при освобождении приложением всех ссылок на команду.
SSPROP_INIT_WSID Тип: VT_BSTR

Ч/З Чтение/запись

Описание. строка, идентифицирующая рабочую станцию.

В наборе свойств конкретного поставщика DBPROPSET_SQLSERVERDATASOURCEINFO поставщик SQL Server Native Client OLE DB определяет дополнительные свойства. Дополнительные сведения см. в разделе Data Source Information Properties.

Строка поставщика OLE DB для собственного клиента SQL Server

Поставщик SQL Server Native Client OLE DB распознает синтаксис, подобный ODBC, в значениях свойств строки поставщика. Свойство строки поставщика задается как значение свойства инициализации DBPROP_INIT_PROVIDERSTRING при установлении соединения с источником данных OLE DB. Это свойство содержит данные для подключения, определяемые поставщиком OLE DB и необходимые для установления соединения с источником данных OLE DB. В этой строке элементы разделяются точкой с запятой. За последним элементом в строке также должна стоять точка с запятой. Каждый элемент состоит из ключевого слова, символа «=» и значения, переданного при инициализации. Пример:

Server=MyServer;UID=MyUserName;  

При использовании поставщика SQL Server Native Client OLE DB потребителю никогда не нужно использовать свойство строки поставщика. Потребитель может задать любое свойство инициализации, отраженное в строке поставщика, с помощью OLE DB или SQL Server Native Client свойств инициализации поставщика OLE DB.

Список ключевых слов, доступных в поставщике SQL Server Native Client OLE DB, см. в статье Использование ключевых слов строки подключения с SQL Server Native Client.

См. также:

Объекты источников данных (OLE DB)