Обзор диспетчера конфигурации Kerberos для SQL Server
Применяется к: SQL Server
Исходный номер базы знаний: 2985455
Неправильная конфигурация Kerberos в сети может вызвать различные ошибки подключения в Microsoft SQL Server. Диспетчер конфигурации Kerberos для SQL Server — это средство диагностики, которое помогает устранять неполадки, связанные с подключением Kerberos, влияющие на SQL Server, службы SQL Server Reporting Services (SSRS) и службы SQL Server Analysis Services (SSAS). В этой статье содержатся сведения об использовании средства Kerberos Configuration Manager и интерпретации выходных данных средства для устранения проблем Kerberos, влияющих на SQL Server.
Примечание.
Диспетчер конфигурации Kerberos предоставляется так же, как и для него нет технической поддержки или обновлений. Он не был обновлен для использования SQL Server 2022 и более поздних версий поставщика WMI. Сведения об устранении неполадок конфигурации Kerberos, связанных с SQL Server, см. в статье SQLCheck.
Функции Диспетчера конфигурации Kerberos
Диспетчер конфигурации Kerberos может выполнять следующие задачи:
- Сбор сведений об ОС, экземплярах Microsoft SQL Server и прослушивателях группы доступности AlwaysOn, установленных на сервере.
- Сообщите обо всех конфигурациях субъекта-службы и делегирования на сервере.
- Определите потенциальные проблемы в имени субъекта-службы и делегированиях.
- Устранение потенциальных проблем с spN.
Сценарии использования
Это средство помогает устранить следующие исключения:
- 401
Примечание. Это сообщение об ошибках HTTP, ошибках SSRS и других аналогичных ошибках.
- Не удается создать контекст SSPI
- Ошибка входа для пользователя NTAUTHORITY\ANONYMOUS LOGON
- Сбой входа для пользователя '(null)'
- Сбой входа для пользователя (пустой)
Примечание.
Прежде чем приступить к устранению неполадок, рекомендуется ознакомиться с предварительными условиями, а затем ознакомиться с общим контрольным списком для устранения ошибок, связанных с подключением.
Примечание.
Если у вас есть доступ администратора к компьютеру на основе SQL Server, вы также можете запустить средство проверки параметров подключения SQL на этом компьютере, а затем просмотреть выходные данные, чтобы проверить конфигурацию имени субъекта-службы экземпляра SQL Server.
Скачивание средства
Это средство доступно для скачивания из Центра загрузки Майкрософт:
Microsoft Kerberos Configuration Manager для SQL Server
Примечание.
Вы можете скачать и установить средство на любом компьютере в домене, который может подключиться к компьютеру на основе SQL Server.
Разрешения
Чтобы устранить проблемы с подключением, влияющие на SQL, SSRS и SSAS, подключитесь к конечному компьютеру (в котором размещена служба) с помощью учетной записи пользователя домена, которая имеет административные разрешения на этот компьютер.
Необязательно. Если вы хотите использовать средство для устранения проблем с поставщиком услуг, которые определены средством, учетная запись домена должна иметь разрешение на проверку записи в имя принципа службы.
Использование средства
После завершения установки запустите двоичный файл KerberosConfigMgr.exe , перейдя к папке установки. По умолчанию расположение — C:\Program Files\Microsoft\Kerberos Configuration Manager для SQL Server.
Сведения о том, как запустить приложение от имени администратора или другого пользователя, см. в разделе "Запуск" для запуска приложения в качестве администратора.
Чтобы начать устранение неполадок, используйте один из следующих вариантов:
Чтобы подключиться к удаленному компьютеру SQL Server, введите соответствующие значения для имени сервера, имени пользователя домена и пароля.
Примечание.
Средство Диспетчер конфигурации Kerberos использует API Windows для запроса и отображения сведений о конфигурации Kerberos для компьютера SQL Server. Поэтому всегда введите имя компьютера, на котором размещен экземпляр SQL Server, даже если вы устраняете неполадки, связанные с Kerberos для именованного экземпляра.
Чтобы подключиться к локальному серверу, выберите "Подключиться ", чтобы проанализировать конфигурацию Kerberos. В этом случае вам не нужно указывать имя сервера, имя пользователя домена или пароль.
Примечание.
Учетная запись, которая запускает средство, должна быть учетной записью локального администратора. Сведения о том, как запустить приложение от имени администратора или другого пользователя, см. в разделе "Запуск" для запуска приложения в качестве администратора.
После успешного завершения подключения все связанные с ним имена субъектов-служб отображаются на следующем снимке экрана.
На этом снимке экрана пользовательский интерфейс содержит следующие вкладки:
Система: отображает сведения о пользователе и сведения о компьютере.
SpN: отображает сведения об имени субъекта-службы (SPN) о каждом экземпляре SQL Server, найденных на целевом сервере, и предоставляет сведения, такие как обязательный номер субъекта-службы и его состояние.
Создание: помогает найти отсутствующие и настроенные имена субъектов-служб. Он также помогает создать скрипт создания имени участника-службы.
- Выберите Создать.
- В открывшемся диалоговом окне укажите имя (в данном случае "generateSPNss"), задайте тип "Сохранить как" в качестве файла Kerberos Config Mgr(.cmd), а затем нажмите кнопку "Сохранить".
Создается generateSPNss.cmd файл, который можно запустить в командной строке. Содержимое файла generateSPNss.cmd будет выглядеть следующим образом:
:: This script is generated by the Microsoft® SQL Server® Kerberos Configuration Manager tool.
:: The script may update the system information, SPN settings and Delegation configurations of a given server.
:: SPN and Delegation configuration updates require Windows Domain Administrator permission to execute.
:: A Domain Admin should review the configurations recommended by this tool and take appropriate actions to enable Kerberos authentication.
:: Please contact Microsoft Support if Kerberos connection problem persists.
:: The file is intended to be run in domain `<DomainName>.com`"
:: Corrections for MSSQLSvc/`<HostName>.<DomainName>.com` **SetSPN -s MSSQLSvc/`<HostName>`. `<DomainName>`.com UserName**
Используйте SetSPN , чтобы создать имя субъекта-службы в учетной записи службы для SQL Server.
Используйте исправление проблем и добавление имен субъектов-служб. Вы можете добавить имя субъекта-службы только в том случае, если у вас есть необходимые разрешения. При нажатии кнопки "Исправить" отображается следующий подсказка:
Примечание.
Средство предоставляет команды "Исправление и создание " только для экземпляров по умолчанию и именованных экземпляров, имеющих статические порты. Для именованных экземпляров, использующих динамические порты, рекомендуется переключаться с динамических на статические порты или предоставлять необходимые разрешения для регистрации и отмены регистрации имени субъекта-службы при каждом запуске службы SQL. В противном случае необходимо вручную отменить регистрацию и повторно зарегистрировать соответствующие spNs при запуске службы. Дополнительные сведения см. в разделе Регистрация имени участника-службы для соединений Kerberos.
Делегирование. Используйте делегирование для выявления проблем, влияющих на конфигурацию учетной записи службы для делегирования. Это особенно полезно при устранении неполадок связанного сервера. Например, если проверка имени участника-службы является нормальной, но возникают проблемы, влияющие на запросы связанного сервера, это может указывать на то, что учетная запись службы не настроена для делегирования учетных данных. Дополнительные сведения см. в разделе "Книги в Интернете" в разделе "Настройка связанных серверов для делегирования".
Интерпретация и выполнение диагностики из Диспетчера конфигурации Kerberos
Просмотрите диагностику из средства, указав столбец "Состояние ". В зависимости от состояния выполните соответствующие действия, чтобы устранить проблему.
Состояние — хорошее
Дополнительные сведения: проверяемый элемент настроен правильно. Перейдите к следующему элементу в выходных данных.
Действие. Действие не требуется.
Состояние— отсутствует обязательное имя субъекта-службы
Дополнительные сведения: это состояние сообщается, если имя субъекта-службы (SPN), указанное в столбце "Обязательный поставщик услуг", отсутствует для учетной записи запуска SQL Server в Active Directory.
Действие. Выполните следующие действия, чтобы проверить, разрешены ли проблемы с spN:
- Нажмите кнопку "Исправление" , чтобы просмотреть сведения в диалоговом окне "Предупреждение ".
- Выберите "Да", чтобы добавить отсутствующий имя участника-службы в Active Directory.
- Если у учетной записи домена есть необходимые разрешения для обновления Active Directory, необходимое имя субъекта-службы будет добавлено в Active Directory.
- Если у учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Generate or Generate All (Создать или создать все ), чтобы создать скрипт, который поможет администратору Active Directory добавить отсутствующие имена субъектов-служб.
- После добавления имени участника-службы запустите Диспетчер конфигурации Kerberos, чтобы убедиться, что проблемы с spN устранены.
Состояние — протокол TCP должен быть включен для использования конфигурации Kerberos.
Дополнительные сведения: это состояние отображается, если tcp не включен на клиентском компьютере.
Действие. Выполните следующие действия, чтобы включить протокол TCP/IP для экземпляра SQL Server:
В диспетчер конфигурации SQL Server — консоль разверните конфигурацию сети SQL Server.
В консоли выберите протоколы для
<instance name>
.В разделе "Сведения" выберите TCP/IP и нажмите кнопку "Включить".
В консоли выберите службы SQL Server.
В разделе "Сведения" выберите SQL Server для
<instance name>
.Выберите "Перезапустить", чтобы остановить и перезапустить службу SQL Server. Дополнительные сведения см. в разделе "Включение или отключение сетевого протокола сервера".
Состояние — динамический порт
Дополнительные сведения: это состояние отображается для именованных экземпляров, использующих динамические порты (конфигурация по умолчанию). В средах, где необходимо использовать Kerberos для подключения к SQL Server, необходимо задать именованный экземпляр для использования статического порта и использовать этот порт при регистрации имени субъекта-службы. В противном случае имя субъекта-службы, зарегистрированное в Active Directory, станет недействительным при следующем запуске именованного экземпляра, прослушивающего новый порт, отличный от зарегистрированного имени субъекта-службы.
Примечание.
Эта рекомендация применяется только к средам, зависящим от регистрации вручную субъекта-службы.
Действие. Выполните следующие действия, чтобы настроить экземпляр SQL Server для использования статического порта:
- В диспетчер конфигурации SQL Server — консоль, разверните конфигурацию сети SQL Server, разверните протоколы для
<instance name>
и дважды щелкните TCP/IP. - В свойствах TCP/IP выберите "Прослушивать все в протоколе".
- Если для параметра "Прослушивание всех " задано значение "Да", переключитесь на IP-адреса и прокрутите страницу в нижней части окна, чтобы найти параметр IPAll .
- Удалите текущее значение в динамических портах TCP и введите номер порта в TCP-порте.
- Нажмите кнопку "ОК", а затем перезапустите экземпляр SQL Server. Дополнительные сведения см. в разделе Настройка сервера для прослушивания определенного TCP-порта.
- Если параметр "Прослушивать все " имеет значение "Нет", переключитесь на IP-адреса и проверьте каждый IP-адрес, отображаемый в узлах IP1 и IP2. Для адресов, для которых задано значение "Включено", удалите текущее значение в динамических портах TCP, а затем задайте значение в TCP-порту.
- Нажмите кнопку "ОК", а затем перезапустите экземпляр SQL Server, чтобы параметры вступили в силу. Дополнительные сведения см. в разделе Настройка сервера для прослушивания определенного TCP-порта.
- В диспетчер конфигурации SQL Server — консоль, разверните конфигурацию сети SQL Server, разверните протоколы для
Состояние — дубликат имени участника-службы
Дополнительные сведения. Этот сценарий может возникнуть, если одна и та же имя субъекта-службы зарегистрировано в разных учетных записях в Active Directory.
Действия. Выполните следующие действия, чтобы добавить имя участника-службы в Active Directory:
Выберите элемент Исправить.
Установите сведения в диалоговом окне "Предупреждение ".
Выберите "Да", чтобы добавить отсутствующий имя участника-службы в Active Directory.
Если у вашей учетной записи домена есть необходимые разрешения для обновления Active Directory, будет удален неверный номер субъекта-службы.
Если у учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Generate or Generate All (Создать или создать все ), чтобы создать необходимый скрипт, который можно предоставить администратору Active Directory для удаления повторяющихся имен субъектов-служб.
После удаления имени субъекта-службы повторно запустите Диспетчер конфигурации Kerberos, чтобы убедиться, что проблемы с spN устранены.
Примечание.
При запуске экземпляра SQL Server ядро СУБД SQL Server пытается зарегистрировать имя субъекта-службы для службы SQL Server. Если экземпляр остановлен, SQL Server попытается отменить регистрацию имени субъекта-службы (SPN). Для этого учетной записи службы SQL Server требуются соответствующие разрешения в Active Directory. Но если у учетной записи службы нет этих прав, автоматическая регистрация имени субъекта-службы не возникает, и администратор Active Directory должен зарегистрировать эти имена субъектов-служб, чтобы экземпляры SQL могли включить проверку подлинности Kerberos. Дополнительные сведения см. в разделе Регистрация имени участника-службы для соединений Kerberos.
Примечание.
В средах, где sql кластеризован, автоматическая регистрация имен субъектов-служб не рекомендуется, так как может потребоваться больше времени для отмены регистрации имени участника-службы и повторной регистрации имени участника-службы в Active Directory, чем время, необходимое для получения в Сети SQL Server. Если регистрация имени субъекта-службы не выполняется вовремя, это может предотвратить подключение SQL Server к интернету, так как администратор кластера не может подключиться к экземпляру SQL Server.
Дополнительные параметры
Чтобы создать список субъектов-службы из командной строки:
Перейдите в командную строку.
Примечание.
Чтобы устранить проблему с подключением, которая влияет на службы SSRS, откройте окно командной строки администрирования.
Перейдите в папку, содержащую KerberosConfigMgr.exe.
Введите
KerberosConfigMgr.exe -q -l
.Для получения дополнительных параметров командной строки введите
KerberosConfigMgr.exe -h
.
Чтобы сохранить сведения о конфигурации Kerberos сервера, выполните следующие действия.
- Подключитесь к целевому серверу Windows.
- Выберите Сохранить.
- Укажите расположение, в которое будет сохранен файл. Он может находиться на локальном диске или сетевом ресурсе. Файл будет сохранен в .xml формате.
Чтобы просмотреть сведения о конфигурации Kerberos сервера из сохраненного файла:
- Выберите Загрузить.
- Откройте XML-файл, созданный Диспетчером конфигурации Kerberos.
Чтобы просмотреть файлы журнала для этого средства, выполните следующие действия.
По умолчанию создается один файл журнала при каждом запуске приложения в папке данных приложения: %APPDATA%\Microsoft\KerberosConfigMgr.
Чтобы получить справку, используйте любой из следующих методов:
- Наведите указатель мыши на команду, чтобы создать подсказку.
- Запустите
KerberosConfigMgr.exe -h
в командной строке. - Нажмите кнопку справки на панели инструментов.