Имена участника-службы в клиентских соединениях (OLE DB)
В этом разделе описываются свойства OLE DB и функции элементов, поддерживающие имена участника-службы (SPN) в клиентских приложениях. Дополнительные сведения об именах участника-службы в клиентских приложениях см. в разделе Поддержка имени участника-службы в клиентских соединениях. Образец см. в разделе Интеграция проверки подлинности Kerberos (OLE DB).
Ключевые слова строки инициализации поставщика
Следующие ключевые слова строки инициализации поставщика поддерживают имена участников-служб в приложениях OLE DB. В следующей таблице значения в столбце ключевых слов используются строкой поставщика в методе IDBInitialize::Initialize. Значения в столбце описания используются в строках инициализации при соединении с помощью ADO или метода IDataInitialize::GetDataSource.
Ключевое слово |
Описание |
Значение |
---|---|---|
ServerSPN |
Имя участника-службы сервера |
Имя участника-службы для сервера. Значением по умолчанию является пустая строка, и в этом случае собственный клиент SQL Server использует имя участника-службы по умолчанию, создаваемое поставщиком. |
FailoverPartnerSPN |
Имя участника-службы партнера по обеспечению отработки отказа |
Имя участника-службы для партнера по обеспечению отработки отказа. Значением по умолчанию является пустая строка, и в этом случае собственный клиент SQL Server использует имя участника-службы по умолчанию, создаваемое поставщиком. |
Свойства инициализации источника данных
Следующие свойства набора свойств DBPROPSET_SQLSERVERDBINIT позволяют приложениям указывать имена участников-служб.
Название |
Тип |
Использование |
---|---|---|
SSPROP_INIT_SERVERSPN |
VT_BSTR, чтение и запись |
Задает имя участника-службы для сервера. Значением по умолчанию является пустая строка, и в этом случае собственный клиент SQL Server использует имя участника-службы по умолчанию, создаваемое поставщиком. |
SSPROP_INIT_FAILOVERPARTNERSPN |
VT_BSTR, чтение и запись |
Указывает имя участника-службы для партнера по обеспечению отработки отказа. Значением по умолчанию является пустая строка, и в этом случае собственный клиент SQL Server использует имя участника-службы по умолчанию, создаваемое поставщиком. |
Свойства источника данных
Следующие свойства набора свойств DBPROPSET_SQLSERVERDATASOURCEINFO позволяют приложениям распознавать метод проверки подлинности.
Название |
Тип |
Использование |
---|---|---|
SSPROP_INTEGRATEDAUTHENTICATIONMETHOD |
VT_BSTR, только для чтения |
Возвращает метод проверки подлинности, используемый для соединения. Приложению возвращается значение, которое Windows возвращает собственному клиенту SQL Server. Возможные следующие значения.
Если при открытом соединении нельзя определить метод проверки подлинности, то возвращается значение 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, поддерживающие имена участников-служб в клиентских соединениях.
Функция-член |
Описание |
---|---|
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. Чтобы установить свойства SSPROP_INIT_SERVER_SPN и SSPROP_INIT_FAILOVER_PARTNER_SPN до вызова IDBInitialize::Initialize, можно вызвать метод IDBProperties::SetProperties. Это является альтернативой использованию строки поставщика. Если свойство устанавливается в нескольких местах, заданное программно значение имеет приоритет над значением, указанным в строке поставщика. Значение, заданное в строке инициализации, имеет приоритет над значением, заданным в диалоговом окне входа. Если одно ключевое слово появляется в строке поставщика несколько раз, приоритет имеет первое значение. |
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 (если возможно). Работа не была выполнена». |