Имена участника-службы в клиентских соединениях (ODBC)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Внимание

SQL Server Native Client (SNAC) не поставляется с:

  • SQL Server 2022 (16.x) и более поздних версий
  • SQL Server Management Studio 19 и более поздних версий

Собственный клиент SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для разработки новых приложений.

Для новых проектов используйте один из следующих драйверов:

Сведения о SQLNCLI, которые поставляется в качестве компонента SQL Server ядро СУБД (версии 2012–2019), см. в этом исключении жизненного цикла поддержки.

В данном разделе рассматриваются атрибуты и функции ODBC, поддерживающие имена участника-службы (SPN) в клиентских приложениях. Дополнительные сведения о именах субъектов-служб в клиентских приложениях см. в разделе "Поддержка имени субъекта-службы" в клиентских подключениях и получение взаимной проверки подлинности Kerberos.

Ключевые слова в строке подключения

Следующие ключевые слова в строках подключения позволяют задавать имена участника-службы в клиентских приложениях.

Ключевое слово Значение
ServerSPN Имя участника-службы для сервера. Значение по умолчанию — пустая строка, которая приводит к тому, что собственный клиент SQL Server будет использовать имя субъекта-службы, созданное по умолчанию.
FailoverPartnerSPN Имя участника-службы для партнера по обеспечению отработки отказа. Значение по умолчанию — пустая строка, которая приводит к тому, что собственный клиент SQL Server будет использовать имя субъекта-службы, созданное по умолчанию.

Атрибуты подключения

Следующие атрибуты соединения позволяют указать имя участника-службы и запросить метод проверки подлинности в клиентском приложении.

Имя. Тип Использование
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, чтение и запись Задает имя участника-службы для сервера. Значение по умолчанию — пустая строка, которая приводит к тому, что собственный клиент SQL Server будет использовать имя субъекта-службы, созданное по умолчанию.

Значение этого атрибута можно запрашивать только после его задания программным путем или после открытия соединения. В противном случае будет возвращено значение SQL_ERROR, а в журнал занесена диагностическая запись с кодом SQLState (равным 08003) и сообщением «Соединение не открыто».

При попытке установить этот атрибут при открытом соединении будет возвращено значение SQL_ERROR и в журнал будет занесена диагностическая запись с кодом SQLState (равным HY011) и сообщением «В настоящее время эта операция недопустима».
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, только чтение Возвращает метод проверки подлинности, используемый для соединения. Значение, возвращаемое приложению, — это значение, возвращаемое Windows в собственный клиент SQL Server. Возможны следующие значения:

Значение «NTLM», которое возвращается в том случае, если соединение установлено с использованием проверки подлинности NTLM.

Значение «Kerberos», которое возвращается в том случае, если соединение установлено с использованием проверки подлинности Kerberos.



Этот атрибут можно прочитать только при открытом соединении, использующем проверку подлинности Windows. При попытке считать его до открытия соединения вернется значение SQL_ERROR и в журнал будет записана ошибка с кодом SQLState 08003 и сообщением «Соединение не открыто».

При попытке запросить значение этого атрибута применительно к соединению, в котором не используется проверка подлинности Windows, возвращается значение SQL_ERROR, а в журнал вносится диагностическая запись с кодом SQLState (равным HY092) и сообщением «Недопустимый идентификатор атрибута или параметра (метод SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD доступен только для доверительных соединений)».

Если не удается определить используемый метод проверки подлинности, происходит возврат значения SQL_ERROR и в журнал вносится диагностическая запись с кодом SQLState (равным HY000) и сообщением «Общая ошибка».
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, только для чтения Происходит возврат значения SQL_TRUE, если сервер соединения прошел взаимную проверку подлинности; в противном случае возвращается значение SQL_FALSE.

Этот атрибут можно прочитать только при открытом соединении. При попытке считать его до открытия соединения вернется значение SQL_ERROR и в журнал будет записана ошибка с кодом SQLState 08003 и сообщением «Соединение не открыто».

При попытке запросить значение этого атрибута применительно к соединению, в котором не используется проверка подлинности Windows, будет возвращено значение SQL_FALSE.

Поддержка задания имен участников-служб с помощью функций ODBC

Клиентские приложения и имена участников-служб поддерживаются следующими функциями ODBC.

См. также

SQL Server Native Client (ODBC)