Имена участника-службы в клиентских соединениях (OLE DB)
В этом разделе описываются свойства OLE DB и функции элементов, поддерживающие имена участника-службы (SPN) в клиентских приложениях. Дополнительные сведения об именах субъектов-служб в клиентских приложениях см. в статье Поддержка имени участника-службы в клиентских соединениях. Пример можно найти в статье Интеграция проверки подлинности Kerberos (OLE DB).
Ключевые слова строки инициализации поставщика
Следующие ключевые слова строки инициализации поставщика поддерживают имена участников-служб в приложениях OLE DB. В следующей таблице значения в столбце ключевых слов используются строкой поставщика в методе IDBInitialize::Initialize. Значения в столбце описания используются в строках инициализации при соединении с помощью объектов данных ActiveX или метода IDataInitialize::GetDataSource.
Ключевое слово | Описание | Значение |
---|---|---|
ServerSPN | Имя участника-службы сервера | Имя участника-службы для сервера. Значением по умолчанию является пустая строка, из-за которой SQL Server Native Client будет использовать имя субъекта-службы по умолчанию, созданное поставщиком. |
FailoverPartnerSPN | Имя участника-службы партнера по обеспечению отработки отказа | Имя участника-службы для партнера по обеспечению отработки отказа. Значением по умолчанию является пустая строка, из-за которой SQL Server Native Client будет использовать имя субъекта-службы по умолчанию, созданное поставщиком. |
Свойства инициализации источника данных
Следующие свойства набора свойств DBPROPSET_SQLSERVERDBINIT
позволяют приложениям указывать имена участников-служб.
Имя | Тип | Использование |
---|---|---|
SSPROP_INIT_SERVERSPN | VT_BSTR, чтение и запись | Задает имя участника-службы для сервера. Значением по умолчанию является пустая строка, из-за которой SQL Server Native Client будет использовать имя субъекта-службы по умолчанию, созданное поставщиком. |
SSPROP_INIT_FAILOVERPARTNERSPN | VT_BSTR, чтение и запись | Указывает имя участника-службы для партнера по обеспечению отработки отказа. Значением по умолчанию является пустая строка, из-за которой SQL Server Native Client будет использовать имя субъекта-службы по умолчанию, созданное поставщиком. |
Свойства источника данных
Следующие свойства набора свойств DBPROPSET_SQLSERVERDATASOURCEINFO
позволяют приложениям распознавать метод проверки подлинности.
Имя | Тип | Использование |
---|---|---|
SSPROP_INTEGRATEDAUTHENTICATIONMETHOD | VT_BSTR, только для чтения | Возвращает метод проверки подлинности, используемый для соединения. Значение, возвращаемое приложению, — это значение, которое Windows возвращает SQL Server Native Client. Возможные следующие значения. — "NTLM", который возвращается при открытии подключения с использованием проверки подлинности NTLM. — "Kerberos", который возвращается при открытии подключения с использованием проверки подлинности Kerberos. Если при открытом соединении нельзя определить метод проверки подлинности, то возвращается значение VT_EMPTY. Это свойство доступно для чтения только в том случае, если инициализирован источник данных. При попытке считывания свойства до инициализации источника данных, IDBProperties::GetProperies соответственно вернет ошибку DB_S_ERRORSOCCURRED или DB_E_ERRORSOCCURRED и для атрибута DBPROPSET_PROPERTIESINERROR данного свойства будет установлено значение DBPROPSTATUS_NOTSUPPORTED. Это поведение соответствует основной спецификации OLE DB. |
SSPROP_MUTUALLYAUTHENICATED | VT_BOOL, только для чтения | Если при соединении серверов была выполнена взаимная проверка подлинности, возвращает значение VARIANT_TRUE. В противном случае возвращает VARIANT_FALSE. Это свойство доступно для чтения только в том случае, если инициализирован источник данных. При попытке считывания свойства до инициализации источника данных, IDBProperties::GetProperies соответственно вернет ошибку DB_S_ERRORSOCCURRED или DB_E_ERRORSOCCURRED и для атрибута DBPROPSET_PROPERTIESINERROR данного свойства будет установлено значение DBPROPSTATUS_NOTSUPPORTED. Это поведение соответствует основной спецификации OLE DB. Если этот атрибут запрашивается соединением, не использующим проверку подлинности Windows, возвращается значение VARIANT_FALSE. |
Поддержка OLE DB API для имен участников-служб
В следующей таблице описываются функции-члены OLE DB, поддерживающие имена участников-служб в клиентских соединениях.
Функция-член | Description |
---|---|
IDataInitialize::GetDataSource | pwszInitializationString может содержать новые ключевые ServerSPN слова и FailoverPartnerSPN . |
IDataInitialize::GetInitializationString | Если SSPROP_INIT_SERVERSPN и SSPROP_INIT_FAILOVERPARTNERSPN имеют значения, отличные от значений по умолчанию, они будут включены в строку инициализации через ppwszInitString в качестве ключевое слово значений для ServerSPN и FailoverPartnerSPN . В противном случае эти ключевые слова не будут включены в строку инициализации. |
IDBInitialize::Initialize | Если запрос включается путем установки свойства DBPROP_INIT_PROMPT в свойствах инициализации источника данных, будет отображаться диалоговое окно входа OLE DB. Это позволяет ввести имена участников-служб как для основного сервера, так и для его партнера по обеспечению отработки отказа. Строка поставщика в DPPROP_INIT_PROVIDERSTRING, если она задана, распознает новые ключевые ServerSPN слова и FailoverPartnerSPN использует их значения, если они есть, для инициализации SSPROP_INIT_SERVER_SPN и SSPROP_INIT_FAILOVER_PARTNER_SPN.Можно вызвать метод IDBProperties::SetProperties, чтобы установить свойства SSPROP_INIT_SERVER_SPN и SSPROP_INIT_FAILOVER_PARTNER_SPN перед вызовом IDBInitialize::Initialize. Это является альтернативой использованию строки поставщика. Если свойство устанавливается в нескольких местах, заданное программно значение имеет приоритет над значением, указанным в строке поставщика. Значение, заданное в строке инициализации, имеет приоритет над значением, заданным в диалоговом окне входа. Если одно ключевое слово появляется в строке поставщика несколько раз, приоритет имеет первое значение. |
IDBProperties::GetProperties | Чтобы получить значения новых свойств инициализации источника данных SSPROP_INIT_SERVERSPN и SSPROP_INIT_FAILOVERPARTNERSPN, а также новых свойств источника данных SSPROP_AUTHENTICATIONMETHOD и SSPROP_MUTUALLYAUTHENTICATED, можно вызвать IDBProperties::GetProperties. |
IdbProperties::GetPropertyInfo | IdbProperties::GetPropertyInfo будет включать новые свойства инициализации источника данных SSPROP_INIT_SERVERSPN и SSPROP_INIT_FAILOVERPARTNERSPN или новые свойства источника данных SSPROP_AUTHENTICATION_METHOD и SSPROP_MUTUALLYAUTHENTICATED. |
IDBProperties::SetProperties | IDBProperties::SetProperties можно вызвать, чтобы установить значения новых свойств инициализации источника данных SSPROP_INITSERVERSPN и SSPROP_INIT_FAILOVERPARTNERSPN. Эти свойства можно задать в любое время, но если источник данных уже открыт, будет возвращена следующая ошибка: DB_E_ERRORSOCCURRED, «Многошаговая операция OLE DB сформировала ошибки. Проверьте каждое значение состояния OLE DB (если возможно). Работа не была выполнена». |