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

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Собственный клиент SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для разработки новых приложений. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server или последний драйвер Microsoft ODBC для SQL Server . Сведения о 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)