Устранение неполадок при появлении сообщения об ошибке «Cannot generate SSPI context»

Переводы статьи Переводы статьи
Код статьи: 811889 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье подробно описаны способы устранения типичных причин появления сообщения об ошибке «Cannot generate SSPI context». Данное сообщение об ошибке может появляться в следующих случаях.
  • Осуществляется подключение к серверу SQL Server.
  • Используется объединенная безопасность.
  • Для делегирования безопасности используется Kerberos.

Терминология Kerberos и имя участника службы (SPN)

Драйвер SQL Server на клиентском компьютере с помощью объединенной безопасности использует маркер безопасности Windows, связанный с учетной записью пользователя, для успешного подключения к компьютеру, на котором запущен SQL Server. Маркер безопасности Windows делегируется клиентом компьютеру, на котором запущен SQL Server. Драйвер SQL Server выполняет делегирование, когда один компьютер делегирует маркер безопасности пользователя другому компьютеру с помощью одной из следующих конфигураций:
  • NTLM через именованные каналы (без использования интерфейса поставщика поддержки безопасности [SSPI])
  • NTLM через сокеты TCP/IP с использованием SSPI
  • Kerberos через сокеты TCP/IP с использованием SSPI
Интерфейс поставщика поддержки безопасности (SSPI) — это набор API-интерфейсов Windows, которые разрешают делегирование и взаимную проверку подлинности с помощью транспортного уровня общих данных, такого как сокеты TCP/IP. Поэтому интерфейс SSPI разрешает компьютеру под управлением операционной системы Windows безопасно делегировать маркер безопасности пользователя другому компьютеру с помощью любого транспортного уровня, поддерживающего передачу необработанных данных.

Ошибка «Cannot generate SSPI context» появляется, когда интерфейс SSPI использует Kerberos для делегирования через протокол TCP/IP, а Kerberos не может завершить операции, необходимые для успешного делегирования маркера безопасности пользователя конечному компьютеру, на котором запущен SQL Server.

Выбор NTLM или Kerberos в интерфейсе поставщика поддержки безопасности

Kerberos использует идентификатор, называемый именем участника службы (SPN). Имя SPN — это уникальный идентификатор домена или леса для некоторого экземпляра в сетевых ресурсах сервера. Имя SPN может иметь веб-служба, служба SQL или служба SMTP. Можно также иметь несколько экземпляров веб-служб на одном и том же физическом компьютере, обладающем уникальным именем SPN.

Имя SPN сервера SQL Server состоит из следующих элементов:
  • Класс_службы. Определяет общий класс службы. Для SQL Server всегда используется MSSQLSvc.
  • Узел. Это DNS полного имени домена компьютера, на котором запущено приложение SQL Server.
  • Порт. Номер порта, который прослушивается службой.
Например, типичное имя SPN для компьютера, на котором запущен SQL Server, выглядит следующим образом:
MSSQLSvc/SQLSERVER1.northamerica.corp.mycompany.com:1433
Формат имени SPN для экземпляра по умолчанию не отличается от формата имени SPN для именованного экземпляра. Привязка имени SPN к определенному экземпляру осуществляется с помощью номера порта.

Если для подключения к SQL Server драйвер SQL Server на клиентском компьютере использует интегрированную безопасность, код драйвера на клиентском компьютере пытается разрешить полное имя домена компьютера, на котором запущен SQL Server, с помощью сетевых API-интерфейсов WinSock. Для этого код драйвера вызывает API-интерфейсы WinSock gethostbyname и gethostbyaddr. Даже если IP-адрес или имя узла передается в виде имени компьютера, на котором запущен SQL Server, драйвер сервера SQL Server пытается разрешить полное имя DNS компьютера, если компьютер использует интегрированную безопасность.

Когда драйвер SQL Server на клиентском компьютере разрешает полное имя DNS компьютера, на котором запущено приложение SQL Server, соответствующее имя DNS используется для формирования имени SPN этого компьютера. Поэтому любые проблемы, связанные с разрешением IP-адреса или имени узла в полное имя DNS интерфейсом WinSock, могут привести к тому, что драйвер SQL Server создаст неправильное имя SPN компьютера, на котором запущено приложение SQL Server.

Например, неправильные имена SPN, которые драйвер SQL Server может сформировать на стороне клиента в качестве разрешенного полного имени DNS, выглядят следующим образом:
  • MSSQLSvc/SQLSERVER1:1433
  • MSSQLSvc/123.123.123.123:1433
  • MSSQLSvc/SQLSERVER1.antartica.corp.mycompany.com:1433
  • MSSQLSvc/SQLSERVER1.dns.northamerica.corp.mycompany.com:1433
Когда драйвер SQL Server формирует неправильное имя SPN, проверка подлинности продолжает выполняться, потому что интерфейс SSPI пытается найти имя SPN в службе каталогов Active Directory и не находит его. Если интерфейс SSPI не находит имя SPN, проверка подлинности Kerberos не выполняется. В этом случае уровень SSPI переключается на режим проверки подлинности NTLM. Проверка подлинности NTLM, которая используется при входе, обычно выполняется успешно. Если драйвер SQL Server формирует правильное имя SPN, но для него не назначен правильный контейнер, драйвер пытается использовать имя SPN, однако не может сделать этого, поэтому появляется сообщение об ошибке «Cannot generate SSPI context». Если в качестве начальной учетной записи для запуска SQL Server используется локальная системная учетная запись, соответствующим контейнером является имя компьютера. В случае использования любой другой учетной записи соответствующим контейнером является начальная учетная запись для запуска SQL Server. Поскольку при проверке подлинности используется первое найденное имя SPN, убедитесь в отсутствии неправильно назначенных имен SPN. Это значит, что каждое имя SPN должно быть назначено только одному контейнеру.

Главный фактор успешной проверки подлинности Kerberos – это правильность выполнения функций DNS в сети. Чтобы проверить выполняемые функции на клиентском и серверном компьютере, используйте команду Ping. Чтобы получить IP-адрес сервера, на котором запущен SQL Server (SQLServer1 — это имя компьютера, на котором запущен SQL Server), на клиентском компьютере выполните следующую команду:
ping sqlserver1
Чтобы выяснить, разрешает ли средство командной строки Ping полное DNS-имя компьютера SQLServer1, выполните следующую команду:
ping -a IP-адрес
Например:
C:\>ping SQLSERVER1

Pinging SQLSERVER1 [123.123.123.123] with 32 bytes of data:
	
Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128
	
Ping statistics for 123.123.123.123: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum =  0ms, Average =  0ms
C:\>ping -a 123.123.123.123
	
Pinging SQLSERVER1.northamerica.corp.mycompany.com [123.123.123.123] with 32 bytes of data:
	
Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Reply from 123.123.123.123: bytes=32 time<10ms TTL=128 Ping statistics for 123.123.123.123: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum =  0ms, Average =  0ms

C:\>
Когда командаping -a IP-адрес разрешает правильное полное DNS-имя компьютера, на котором запущено приложение SQL Server, разрешение на стороне клиента также выполняется успешно.

Создание имени участника службы SQL Server

Это один из самых важных этапов взаимодействия Kerberos и SQL Server. Чтобы запустить службу SQL Server с помощью приложения SQL Server, используйте одну из следующих учетных записей: учетную запись LocalSystem, учетную запись локального пользователя или учетную запись пользователя домена. После запуска экземпляр службы SQL Server пытается зарегистрировать собственное имя SPN в службе каталогов Active Directory, вызвав API-интерфейс DsWriteAccountSpn. В случае неудачного вызова в окне «Просмотр событий» появляется следующее предупреждение.

Источник: MSSQLServer Код события: 19011 Описание: SuperSocket info: (SPNRegister): Ошибка 8344.

Для получения дополнительных сведений о функции DsWriteAccountSpn посетите веб-узел Майкрософт:
http://msdn2.microsoft.com/en-us/library/ms676056.aspx

Упрощенное описание

Если служба SQL Server запускается под учетной записью LocalSystem, имя SPN регистрируется автоматически, а Kerberos успешно взаимодействует с компьютером, на котором запущено приложение SQL Server. Если служба SQL Server запущена с помощью учетной записи пользователя домена или с помощью локальной учетной записи, попытка создания имени SPN в большинстве случаев не будет успешной, так как учетная запись домена и локальная учетная запись не имеют права задавать собственные имена SPN. Если имя SPN создать не удалось, это означает, что компьютер, на котором запущено приложение SQL Server, не будет иметь имени SPN. Если в ходе проверки в качестве учетной записи службы SQL Server используется учетная запись администратора домена, удается создать имя SPN, так как существуют учетные данные уровня администратора домена, необходимые для создания имени SPN.

Так как для запуска службы SQL Server учетная запись администратора домена может не использоваться (в целях предотвращения угрозы безопасности), компьютер, на котором запущено приложение SQL Server, не может создать собственное имя SPN. Если при подключении к компьютеру, на котором запущено приложение SQL Server, требуется использовать Kerberos, необходимо создать имя SPN вручную. Необходимо сделать это и в том случае, если приложение SQL Server запущено с помощью учетной записи администратора домена или локальной учетной записи. Создаваемое имя SPN должно быть назначено учетной записи службы SQL Server на этом компьютере. Имя SPN нельзя назначить контейнеру компьютера, если для запуска компьютера с приложением SQL Server используется локальная системная запись. Имя SPN должно быть единственным и должно быть назначено соответствующему контейнеру. Обычно таким контейнером является текущая учетная запись службы SQL Server. Тем не менее, это учетная запись компьютера с локальной системой.

Проверка домена

Убедитесь, что домен, используемый для входа, может обмениваться данными с доменом, к которому принадлежит компьютер с запущенным приложением SQL Server. Проверьте, что разрешение имен в домене выполняется правильно.
  1. Если домен, используемый для входа, совпадает с доменом, к которому принадлежит компьютер с запущенным приложением SQL Server, для входа в SQL Server используйте проверку подлинности Windows. Если проверку подлинности выполнить не удалось, неполадка связана с учетной записью Windows или учетной записью домена и ее необходимо устранить. Обратитесь к администратору безопасности или к администратору сети, чтобы проверить наличие соответствующих разрешений у учетной записи Windows или у учетной записи домена.
  2. Если домен, используемый для входа, отличается от домена, к которому принадлежит компьютер с запущенным приложением SQL Server, проверьте доверительные отношения между доменами.
  3. Необходимо, чтобы домен сервера и учетная запись домена, которая используется для подключения, принадлежали к одному лесу. Выполнение этого условия необходимо для работы интерфейса SSPI.
  4. При запуске SQL Server используйте параметр Учетная запись доверена для делегирования компонента «Пользователи и компьютеры Active Directory».
  5. Используйте служебную программу Manipulate Service Principal Names for Accounts (SetSPN.exe), входящую в состав пакета ресурсов Windows 2000 Resource Kit. Учетные записи администраторов домена Windows 2000 или учетные записи администраторов домена Windows 2003 могут использовать эту служебную программу для управления именами SPN, которые назначаются службе и учетной записи. SQL Server может иметь только одно имя SPN. Имя SPN должно быть присвоено соответствующему контейнеру. Таким контейнером в большинстве случаев является текущая учетная запись службы SQL Server и учетная запись компьютера, если приложение SQL Server запускается с помощью локальной системной учетной записи. Если при запуске SQL Server пользователь уже вошел в систему с помощью учетной записи LocalSystem, выполняется автоматическая настройка имени SPN. Если для запуска SQL Server используется учетная запись домена или учетная запись, используемая для запуска SQL Server, была изменена, необходимо запустить служебную программу SetSPN.exe, чтобы удалить просроченные имена SPN. Затем нужно добавить действительное имя SPN. Дополнительные сведения см. в разделе «Security Account Delegation» библиотеки SQL Server 2000 Books Online. Для это посетите веб-узел Майкрософт:
    http://msdn2.microsoft.com/en-us/library/aa905162(SQL.80).aspx
    Для получения дополнительных сведений о Windows 2000 Resource Kits посетите веб-узел Майкрософт:
    http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true
  6. Проверьте правильность разрешения имен. В разрешении имен могут участвовать службы DNS и WINS, файлы HOSTS и LMHOSTS. Дополнительные сведения о неполадках при разрешении имен и их устранении см. в следующей статье базы знаний Майкрософт.
    169790 Устранение основных неполадок, возникающих при использовании протокола TCP/IP
  7. Дополнительные сведения об устранении неполадок в службе каталогов Active Directory, связанных со специальными возможностями и межсетевым экраном, см. в следующих статьях базы знаний Майкрософт.
    291382 Вопросы и ответы о службе DNS в Windows 2000 и Windows Server 2003
    224196 Назначение порта для трафика репликации Active Directory и трафика клиента RPC. (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Настройка службы SQL Server для динамического создания имен SPN для экземпляров Microsoft SQL Server

Чтобы настроить службу SQL Server для динамического создания имен SPN, необходимо изменить параметры управления доступом для учетной записи в службе каталогов Active Directory. Предоставьте учетной записи сервиса SQL Server разрешения "Read servicePrincipalName" и "Write servicePrincipalName".

Внимание! Неправильное изменение атрибутов объектов Active Directory с помощью оснастки «Редактирование ADSI», средства LDP или любого другого клиента LDAP версии 3 может привести к возникновению серьезных неполадок. В некоторых случаях для их устранения потребуется переустановить Windows 2000 Server, Windows Server 2003, Exchange 2000 Server, Exchange Server 2003 или операционную систему Windows одновременно с сервером Exchange. Корпорация Майкрософт не гарантирует решения проблем, возникающих по причине неправильного изменения объектов Active Directory. Ответственность за результаты произведенных действий несет пользователь.

Примечание. Для предоставления соответствующих разрешений и прав пользователя учетной записи SQL Server необходимо войти в систему с учетной записью администратора домена или попросить администратора домена выполнить эту задачу.

Чтобы настроить службу SQL Server для динамического создания имен SPN выполните следующие действия:
  1. выберите в меню Пуск пункт Выполнить, введите команду adsiedit.msc и нажмите кнопку .
  2. в оснастке «Редактирование ADSI» разверните Домен [имя_домена], потом разверните DC= имя_корневого_домена, и CN=Users, щелкните правой кнопкой мыши CN= имя_учетной_записи, а затем щелкните Свойства.

    Примечания.
    • имя_домена — это имя вашего домена.
    • имя_корневого_домена — это имя вашего корневого домена.
    • имя_учетной_записи — учетная запись службы SQL Server.
    • Если для запуска службы SQL Server выбрана системная учетная запись, то имя_учетной_записи — это учетная запись, которая использовалась для входа в Microsoft Windows.
    • Если для запуска службы SQL Server выбрана учетная запись пользователя домена, то имя_учетной_записи — это учетная запись пользователя домена.
  3. В диалоговом окне CN= имя_учетной_записи Свойства щелкните вкладку Безопасность.
  4. На вкладке Безопасность нажмите кнопку Дополнительно.
  5. Убедитесь, что в диалоговом окне Дополнительные параметры безопасности в списке Элементы разрешений присутствует параметр SELF.

    Если параметр SELF отсутствует, нажмите кнопку Добавить для добавления SELF.
  6. В спискеr Элементы разрешений щелкните SELF, а затем Edit.
  7. В диалоговом окне Элемент разрешения откройте вкладку Параметры.
  8. Во вкладке Параметры установите флажок Только для этого объекта в списке Применить к, и удостоверьтесь, что установлены флажки для следующих разрешений в списке Разрешения:
    • чтение servicePrincipalName
    • запись servicePrincipalName
  9. Нажмите OK три раза и закройте оснастку редактирования ADSI.
Для получения справок по данной процедуре обратитесь в службу поддержки Active Directory, упомянув данную статью базы знаний Майкрософт.

Проверка среды сервера

Проверьте основные параметры компьютера, на котором установлено приложение SQL Server.
  1. Пакет Kerberos не поддерживается компьютерами под управлением Windows 2000, на которых запущена служба кластеризации Windows, если не установлен пакет обновления 3 (SP3) (или более поздней версии) для Windows 2000. Поэтому все попытки использовать проверку подлинности SSPI на кластере SQL Server могут быть неудачными. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
    235529 Поддержка проверки подлинности Kerberos в кластерах серверов под управлением Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  2. Убедитесь, что сервер работает под управлением Windows 2000 с пакетом обновления 1 (SP1). Дополнительные сведения о поддержке Kerberos на серверах под управлением Windows 2000 см. в следующей статье базы знаний Майкрософт:
    267588 Сообщение об ошибке «Cannot generate SSPI context» при подключении к SQL Server 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  3. Если на кластере изменилась учетная запись, использовавшаяся для запуска SQL Server, SQL Server Agent или служб поиска текста (например, изменился пароль), выполните действия, описанные в следующей статье базы знаний Майкрософт:
    239885 Изменение учетных записей служб для кластеризованного компьютера с установленным SQL Server (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  4. Убедитесь, что используемая учетная запись для запуска SQL Server обладает соответствующими разрешениями. Если используемая учетная запись не является членом группы «Локальные администраторы», подробный список разрешений, которыми должна обладать учетная запись, приведен в разделе «Setting up Windows Services Accounts» в библиотеке SQL Server Books Online:
    http://msdn2.microsoft.com/en-us/library/aa176564(SQL.80).aspx

Проверка среды клиента

Проверьте следующие параметры на стороне клиента.
  1. Убедитесь, что на стороне клиента правильно установлен и запущен поставщик поддержки безопасности NTLM. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
    269541 Сообщение об ошибке «Cannot generate SSPI context» при подключении к SQL Server, если отсутствует раздел реестра, связанный с поставщиком поддержки безопасности NT LM Windows (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  2. Определите, используются ли кэшированные учетные данные. Если для входа в клиентский компьютер используются кэшированные учетные данные, выйдите из системы, а затем снова войдите в нее, если есть возможность подключиться к контроллеру домена и предотвратить использование кэшированных учетных данных. Дополнительные сведения об определении возможного использования кэшированных учетных данных см. в следующей статье базы знаний Майкрософт:
    242536 Отсутствует оповещение, когда для входа используются кэшированные учетные данные (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  3. Проверьте правильность дат на клиентском компьютере и на сервере. Если даты существенно различаются, сертификаты могут считаться недействительными.
  4. Интерфейс SSPI использует файл Security.dll. Если какое-либо другое приложение установит файл с таким именем, вместо исходного файла SSPI может использовать другой файл. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
    253577 Ошибка: 80004005 - MS ODBC SQL Server driver cannot initialize SSPI package (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
  5. Если на клиентском компьютере установлена операционная система Microsoft Windows 98, на этом компьютере необходимо установить компонент «Клиент для сетей Microsoft». Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
    267550 ОШИБКА: Сообщение об ошибке «Assertion failed» при использовании протокола TCP/IP для подключения к SQL Server (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Проверка служебной программы CNU

Служебная программа CNU (Client Network Utility) поставляется вместе с компонентами MDAC и используется для настройки подключения к компьютерам, на которых запущен SQL Server. Используйте служебную программу CNU Cliconfg.exe, входящую в состав MDAC, для настройки подключения.
  1. Способ определения протоколов на вкладке General зависит от версии MDAC. При использовании более ранних версий MDAC можно выбрать протокол «по умолчанию». Если используется одна из последних версий MDAC, при подключении к SQL Server можно включить один или несколько протоколов с помощью одного, находящегося в верхней части списка. Так как интерфейс SSPI связан только с протоколом TCP/IP, во избежание ошибки можно использовать другой протокол, например именованные каналы (Named Pipes).
  2. В программе CNU перейдите на вкладку Alias, чтобы проверить, определен ли псевдоним для сервера, к которому выполняется подключение. Если псевдоним сервера определен, проверьте параметры подключения этого компьютера к SQL Server. С целью проверки удалите псевдоним сервера и выясните, изменилось ли поведение.
  3. Если псевдоним сервера, к которому выполняется подключение, в программе CNU не определен, добавьте его. При этом можно также явно задать протокол и дополнительно определить IP-адрес и порт.

Сведения, которые необходимо собрать для обращения в службу технической поддержки продуктов Майкрософт

Если причину неполадки не удалось устранить даже с помощью способов, приведенных в этой статье, соберите следующие сведения и обратитесь в службу технической поддержки продуктов Майкрософт.

Полный список телефонов службы поддержки, а также сведения об условиях обслуживания см. на веб-узле Майкрософт по адресу:
http://support.microsoft.com/contactus/?ws=support
  1. С помощью SQL Server создайте отчет sqldiag. Дополнительные сведения см. в разделе «sqldiag Utility» библиотеки SQL Server Books Online.
  2. Сделайте снимок экрана ошибки на клиентском компьютере.
  3. В командной строке на узле, который не может подключиться к SQL Server, введите следующую команду:
    net start > started.txt
    Эта команда создает файл с именем Started.txt в каталоге, где она была запущена.
  4. Сохраните значения раздела реестра в следующем разделе реестра на клиентском компьютере:
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\CLIENT\CONNECTTO
  5. В среде кластера для каждого узла получите значение следующего раздела реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\LMCompatibilityLevel
  6. В среде кластера выясните, существует ли на каждом узле следующий раздел реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTLMSsp
  7. Запишите результаты подключения клиентского компьютера к SQL Server при использовании имени в формате UNC (или имени SQL Network Name на кластере).
  8. Запишите результаты выполнения команды ping для имени компьютера (или имени SQL Network Name на кластере).
  9. Сохраните имена учетных записей пользователей, используемых для запуска каждой службы SQL Server (MSSQLServer, SQLServerAgent, MSSearch).
  10. Специалист службы поддержки должен знать, какой тип проверки подлинности настроен в SQL Server — смешанная проверка подлинности или проверка подлинности Windows.
  11. Выясните, может ли клиентский компьютер подключиться к компьютеру, на котором запущен SQL Server, используя проверку подлинности SQL-сервера.
  12. Выясните, можно ли подключиться с помощью протокола именованных каналов (Named Pipes).

Настройка имени участника службы SQL Server вручную

Для получения дополнительных сведений о настройке имени участника службы SQL Server вручную щелкните следующий номер статьи базы знаний Майкрософт:
319723 Использование проверки подлинности Kerberos в SQL Server (Эта ссылка может указывать на содержимое полностью или частично на английском языке)


Интерфейс поставщика поддержки безопасности (SSPI) - это интерфейс безопасности Microsoft Windows NT, который используется проверкой подлинности Kerberos и поддерживает схему проверки NTLM Security Support Provider. Проверка подлинности выполняется в операционной системе при входе в домен Windows. Проверка подлинности Kerberos доступна только на компьютерах под управлением Windows 2000, в которых включен Kerberos и используется служба каталогов Active Directory.

Интерфейс SSPI используется только для подключений по протоколу TCP/IP. Для создания подключений требуется проверка подлинности Windows. (Проверка подлинности Windows также называется доверенными подключениями или интегрированной безопасностью.) Интерфейс SSPI не используется именованными каналами (Named Pipes) или если подключение поддерживает несколько протоколов. Поэтому во избежание неполадок можно настроить клиентские компьютеры таким образом, чтобы при подключении использовался протокол, отличный от TCP/IP.

Если при подключении к удаленному компьютеру, на котором запущен SQL Server, клиент SQL Server пытается использовать интегрированную безопасность через сокеты TCP/IP, сетевая библиотека клиента SQL Server использует API-интерфейс SSPI для делегирования безопасности. Сетевой клиент SQL Server (Dbnetlib.dll) вызывает функцию AcquireCredentialsHandle и передает значение «negotiate» в параметр pszPackage. Таким образом, основной поставщик безопасности получает уведомление о начале согласованного делегирования. В этом контексте под согласованием понимается попытка выполнения проверки подлинности Kerberos или NTLM на компьютерах под управлением Windows. Другими словами, операционная система Windows использует делегирование Kerberos, если конечный компьютер, на котором запущено приложение SQL Server, имеет связанное с ним и правильно настроенное имя SPN. В противном случае операционная система Windows использует делегирование NTLM.

Примечание. Убедитесь, что для запуска служб SQL Server (MSSQLServer, SQLServerAgent, MSSearch) не используется учетная запись SYSTEM. Ключевое слово SYSTEM может вызвать конфликт с центром распространения ключей (KDC).

Ссылки

Дополнительные сведения о работе Kerberos и безопасности SSPI см. в следующих статьях базы знаний Майкрософт.
266080 Вопросы и ответы о проверке подлинности Kerberos (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
231789 Локальный вход в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
304161 Взаимная проверка подлинности SSPI указывается на стороне клиента, но не указывается на стороне сервера (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
232179 Администрирование Kerberos в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
230476 Описание стандартных ошибок, имеющих отношение к проверке подлинности Kerberos в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
262177 Включение регистрации событий Kerberos (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
277658 Не удается использовать служебную программу Setspn, если имя домена отличается от имени NetBIOS, которое использовалось для регистрации имени SPN для SQL Server (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
244474 Использование протокола TCP вместо UDP в пакетах Kerberos в Windows Server 2003, Windows XP и Windows 2000
326985 Устранение неполадок, связанных с Kerberos, в службах IIS
Для просмотра документа White Paper Microsoft SQL Server 2000 посетите следующий веб-узел корпорации Майкрософт:
http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sp3sec00.mspx

Свойства

Код статьи: 811889 - Последний отзыв: 16 июля 2013 г. - Revision: 21.2
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Ключевые слова: 
kbsqlmanagementtools kbhowtomaster kbhowto KB811889

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com