Обзор Configuration Manager Kerberos для SQL Server
Применяется к: SQL Server
Исходный номер базы знаний: 2985455
Неправильная конфигурация Kerberos в сети может привести к различным ошибкам подключения в Microsoft SQL Server. Kerberos Configuration Manager для SQL Server — это средство диагностики, которое помогает устранять связанные с Kerberos проблемы с подключением, влияющие на SQL Server, SQL Server Reporting Services (SSRS) и SQL Server Analysis Services (SSAS). В этой статье содержатся сведения об использовании средства kerberos Configuration Manager и интерпретации выходных данных средства для устранения проблем Kerberos, влияющих на SQL Server.
Примечание.
Kerberos Configuration Manager предоставляется как есть, и для него не предлагается техническая поддержка или обновления. Он не был обновлен для использования SQL Server 2022 и более поздних версий поставщика WMI. Сведения об устранении неполадок и диагностике проблем, связанных с конфигурацией Kerberos SQL Server, см. в статье SQLCheck.
Функции Configuration Manager Kerberos
Kerberos Configuration Manager может выполнять следующие задачи:
- Сбор сведений об ОС, экземплярах Microsoft SQL Server и прослушивателях группы доступности Always On, установленных на сервере.
- Сообщите обо всех конфигурациях имени субъекта-службы и делегирования на сервере.
- Определите потенциальные проблемы в именах субъектов-служб и делегированиях.
- Устранение потенциальных проблем с имени субъекта-службы.
Сценарии использования
Это средство помогает устранять следующие исключения:
- 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, введите соответствующие значения в полях Имя сервера, Имя пользователя домена и Пароль.
Примечание.
Средство Configuration Manager Kerberos использует API Windows для запроса и отображения сведений о конфигурации Kerberos для SQL Server компьютера. Поэтому всегда введите имя компьютера, на котором размещен экземпляр SQL Server, даже если вы устраняете неполадки, связанные с Kerberos для именованного экземпляра.
Чтобы подключиться к локальному серверу, выберите Подключить , чтобы проанализировать конфигурацию Kerberos. В этом случае не нужно указывать имя сервера, имя пользователя домена или пароль.
Примечание.
Учетная запись, которая запускает средство, должна быть учетной записью локального администратора. Сведения о запуске приложения от имени администратора или другого пользователя см. в статье Использование запуска для запуска приложения от имени администратора.
После успешного подключения все связанные имена субъектов-служб отображаются на следующем снимке экрана.
На этом снимке экрана пользовательский интерфейс содержит следующие вкладки:
Система: отображает сведения о пользователе и компьютере.
Имя субъекта-службы. Отображает сведения об имени субъекта-службы (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.
Используйте исправление , чтобы устранить проблемы и добавить имена субъектов-служб. Имя субъекта-службы можно добавить только при наличии необходимых разрешений. При нажатии кнопки Исправить отображается следующая подсказка:
Примечание.
Средство предоставляет команды Fix и Generate только для экземпляров по умолчанию и именованных экземпляров, имеющих статические порты. Для именованных экземпляров, использующих динамические порты, рекомендуется переключиться с динамических портов на статические или предоставить учетным записям службы необходимые разрешения на регистрацию и отмену регистрации имени субъекта-службы при каждом запуске службы SQL. В противном случае вам придется вручную отменять регистрацию и повторно регистрировать соответствующие имена субъектов-служб при каждом запуске службы. Дополнительные сведения см. в разделе Регистрация имени субъекта-службы для Connections Kerberos.
Делегирование. Используйте делегирование для выявления проблем, влияющих на конфигурацию учетной записи службы для делегирования. Это особенно полезно при устранении проблем со связанным сервером. Например, если проверка имени субъекта-службы в порядке, но у вас по-прежнему возникают проблемы, влияющие на запросы связанного сервера, это может означать, что учетная запись службы не настроена для делегирования учетных данных. Дополнительные сведения см. в разделе электронной документации по настройке связанных серверов для делегирования.
Интерпретация и выполнение диагноза из Configuration Manager Kerberos
Проверьте диагностику из средства, сославшись на столбец Состояние . В зависимости от состояния выполните соответствующие действия, чтобы устранить проблему.
Состояние — хорошо
Дополнительные сведения: Флажок настроен правильно. Перейдите к следующему элементу в выходных данных.
Действие: никаких действий не требуется.
Состояние — отсутствует обязательное имя субъекта-службы
Дополнительные сведения. Это состояние отображается, если имя субъекта-службы, указанное в столбце Обязательное имя субъекта-службы, отсутствует для учетной записи запуска SQL Server в Active Directory.
Действие. Выполните следующие действия, чтобы проверка, устранены ли проблемы с именами субъектов-служб.
- Выберите Исправить , чтобы просмотреть сведения в диалоговом окне Предупреждение .
- Выберите Да , чтобы добавить отсутствующий имя субъекта-службы в Active Directory.
- Если у вашей учетной записи домена есть необходимые разрешения для обновления Active Directory, необходимое имя субъекта-службы будет добавлено в Active Directory.
- Если у вашей учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Создать или Создать все , чтобы создать скрипт, который поможет администратору Active Directory добавить отсутствующие имена субъектов-служб.
- После добавления имен субъектов-служб снова запустите Kerberos Configuration Manager, чтобы убедиться, что проблемы с именами субъектов-служб устранены.
Состояние — для использования конфигурации Kerberos необходимо включить ПРОТОКОЛ TCP.
Дополнительные сведения. Это состояние отображается, если 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-порта.
- Если параметр Listen All имеет значение Нет, переключитесь на IP-адреса и проверка каждый IP-адрес, отображаемый в узлах IP1 и IP2. Для адресов, для которых задано значение Включено, удалите текущее значение в разделе Динамические порты TCP, а затем задайте значение в поле Порт TCP.
- Нажмите кнопку ОК, а затем перезапустите экземпляр SQL Server, чтобы параметры вступили в силу. Дополнительные сведения см. в разделе Настройка сервера для прослушивания определенного TCP-порта.
- В диспетчер конфигурации SQL Server — консоль разверните узел SQL Server конфигурация сети, разверните узел Протоколы для
Состояние — повторяющееся имя субъекта-службы
Дополнительные сведения. Вы можете столкнуться с этим сценарием, если одно и то же имя субъекта-службы зарегистрировано в разных учетных записях в Active Directory.
Действия. Чтобы добавить имя субъекта-службы в Active Directory, выполните следующие действия.
Выберите Исправить.
Проверьте сведения в диалоговом окне Предупреждение .
Выберите Да , чтобы добавить отсутствующий имя субъекта-службы в Active Directory.
Если у вашей учетной записи домена есть необходимые разрешения для обновления Active Directory, неправильное имя субъекта-службы будет удалено.
Если у вашей учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Создать или Создать все , чтобы создать необходимый скрипт, который можно предоставить администратору Active Directory для удаления повторяющихся имен субъектов-служб.
После удаления имен субъектов-служб повторно запустите Kerberos Configuration Manager, чтобы убедиться, что проблемы с именами субъектов-служб устранены.
Примечание.
При запуске экземпляра ядра СУБД SQL Server SQL Server пытается зарегистрировать имя субъекта-службы для службы SQL Server. При остановке экземпляра SQL Server пытается отменить регистрацию имени субъекта-службы. Для этого учетной записи службы SQL Server требуются соответствующие разрешения в Active Directory. Но если у учетной записи службы нет этих прав, автоматическая регистрация имени субъекта-службы не выполняется, и необходимо сотрудничать с администратором Active Directory, чтобы зарегистрировать эти имена субъектов-служб, чтобы экземпляры SQL могли включить проверку подлинности Kerberos. Дополнительные сведения см. в разделе Регистрация имени субъекта-службы для Connections 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 Configuration Manager.
Чтобы просмотреть файлы журналов для этого средства, выполните следующие действия:
По умолчанию при каждом запуске приложения в папке данных приложения создается один файл журнала: %APPDATA%\Microsoft\KerberosConfigMgr.
Чтобы получить помощь, используйте любой из следующих методов:
- Наведите указатель мыши на команду, чтобы создать подсказку.
- Запустите
KerberosConfigMgr.exe -h
в командной строке. - Нажмите кнопку Справка на панели инструментов.