Имена участника-службы в клиентских соединениях (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.