Обзор 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. В этом случае не нужно указывать имя сервера, имя пользователя домена или пароль.

    Примечание.

    Учетная запись, которая запускает средство, должна быть учетной записью локального администратора. Сведения о запуске приложения от имени администратора или другого пользователя см. в статье Использование запуска для запуска приложения от имени администратора.

После успешного подключения все связанные имена субъектов-служб отображаются на следующем снимке экрана.

Снимок экрана: представление всех трех вкладок в Configuration Manager Kerberos.

На этом снимке экрана пользовательский интерфейс содержит следующие вкладки:

  • Система: отображает сведения о пользователе и компьютере.

  • Имя субъекта-службы. Отображает сведения об имени субъекта-службы (SPN) о каждом из экземпляров SQL Server, которые находятся на целевом сервере, и содержит такие сведения, как требуемое имя субъекта-службы и его состояние.

  • Создание. Помогает найти отсутствующие и настроенные имена субъектов-служб. Он также помогает создать скрипт создания имени субъекта-службы.

    1. Выберите Генерировать.
    2. В открывшемся диалоговом окне укажите имя (в данном случае "generateSPNss"), задайте тип сохранить как файл Kerberos Config Mgr(.cmd) и нажмите кнопку Сохранить.

    Диалоговое окно с именем 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.

    Действие. Выполните следующие действия, чтобы проверка, устранены ли проблемы с именами субъектов-служб.

    1. Выберите Исправить , чтобы просмотреть сведения в диалоговом окне Предупреждение .
    2. Выберите Да , чтобы добавить отсутствующий имя субъекта-службы в Active Directory.
    3. Если у вашей учетной записи домена есть необходимые разрешения для обновления Active Directory, необходимое имя субъекта-службы будет добавлено в Active Directory.
    4. Если у вашей учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Создать или Создать все , чтобы создать скрипт, который поможет администратору Active Directory добавить отсутствующие имена субъектов-служб.
    5. После добавления имен субъектов-служб снова запустите Kerberos Configuration Manager, чтобы убедиться, что проблемы с именами субъектов-служб устранены.
  • Состояние — для использования конфигурации Kerberos необходимо включить ПРОТОКОЛ TCP.

    Дополнительные сведения. Это состояние отображается, если tcp не включен на клиентском компьютере.

    Действие. Выполните следующие действия, чтобы включить протокол TCP/IP для экземпляра SQL Server.

    1. В диспетчер конфигурации SQL Server — Консоль разверните узел SQL Server Конфигурация сети.

    2. В консоли выберите Протоколы для <instance name>.

    3. В разделе Сведения выберите TCP/IP , а затем выберите Включить.

    4. В консоли выберите службы SQL Server.

    5. В разделе Сведения выберите SQL Server для <instance name>.

    6. Выберите Перезапустить, чтобы остановить и перезапустить службу SQL Server. Дополнительные сведения см. в разделе Включение или отключение сетевого протокола сервера.

  • Состояние — динамический порт

    Дополнительные сведения. Это состояние отображается для именованных экземпляров, использующих динамические порты (конфигурация по умолчанию). В средах, в которых необходимо использовать Kerberos для подключения к SQL Server, следует задать для именованного экземпляра статический порт и использовать этот порт при регистрации имени субъекта-службы. В противном случае имя субъекта-службы, зарегистрированное в Active Directory, станет недействительным при следующем прослушивании именованного экземпляра на новом порту, отличном от того, в который зарегистрировано имя субъекта-службы.

    Примечание.

    Эта рекомендация применяется только к средам, которые зависят от регистрации имени субъекта-службы вручную.

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

    1. В диспетчер конфигурации SQL Server — консоль разверните узел SQL Server конфигурация сети, разверните узел Протоколы для <instance name>, а затем дважды щелкните TCP/IP.
    2. В разделе Свойства TCP/IP выберите Прослушивать все в протоколе.
    3. Если параметр Прослушивать все имеет значение Да, переключитесь на IP-адреса и прокрутите экран до нижней части окна, чтобы найти параметр IPAll .
    4. Удалите текущее значение в разделе Динамические порты TCP и введите номер порта в поле TCP-порт.
    5. Нажмите кнопку ОК, а затем перезапустите экземпляр SQL Server. Дополнительные сведения см. в разделе Настройка сервера для прослушивания определенного TCP-порта.
    6. Если параметр Listen All имеет значение Нет, переключитесь на IP-адреса и проверка каждый IP-адрес, отображаемый в узлах IP1 и IP2. Для адресов, для которых задано значение Включено, удалите текущее значение в разделе Динамические порты TCP, а затем задайте значение в поле Порт TCP.
    7. Нажмите кнопку ОК, а затем перезапустите экземпляр SQL Server, чтобы параметры вступили в силу. Дополнительные сведения см. в разделе Настройка сервера для прослушивания определенного TCP-порта.
  • Состояние — повторяющееся имя субъекта-службы

    Дополнительные сведения. Вы можете столкнуться с этим сценарием, если одно и то же имя субъекта-службы зарегистрировано в разных учетных записях в Active Directory.

    Действия. Чтобы добавить имя субъекта-службы в Active Directory, выполните следующие действия.

    1. Выберите Исправить.

    2. Проверьте сведения в диалоговом окне Предупреждение .

    3. Выберите Да , чтобы добавить отсутствующий имя субъекта-службы в Active Directory.

      • Если у вашей учетной записи домена есть необходимые разрешения для обновления Active Directory, неправильное имя субъекта-службы будет удалено.

      • Если у вашей учетной записи домена нет необходимых разрешений для обновления Active Directory, используйте команду Создать или Создать все , чтобы создать необходимый скрипт, который можно предоставить администратору Active Directory для удаления повторяющихся имен субъектов-служб.

    4. После удаления имен субъектов-служб повторно запустите 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.

Дополнительные параметры

Чтобы создать список имени субъекта-службы из командной строки, выполните следующие действия:

  1. Перейдите в командную строку.

    Примечание.

    Чтобы устранить проблемы с подключением, влияющие на службы SSRS, откройте окно командной строки администратора.

  2. Перейдите в папку, содержащую KerberosConfigMgr.exe.

  3. Введите KerberosConfigMgr.exe -q -l.

  4. Для получения дополнительных параметров командной строки введите KerberosConfigMgr.exe -h.

Чтобы сохранить сведения о конфигурации Kerberos сервера, выполните следующие действия.

  1. Подключитесь к целевому серверу Windows.
  2. Выберите Сохранить.
  3. Укажите расположение, в которое нужно сохранить файл. Он может находиться на локальном диске или в общей сетевой папке. Файл будет сохранен в .xml формате.

Чтобы просмотреть сведения о конфигурации Kerberos сервера из сохраненного файла, выполните следующие действия:

  1. Выберите Загрузить.
  2. Откройте XML-файл, созданный Kerberos Configuration Manager.

Чтобы просмотреть файлы журналов для этого средства, выполните следующие действия:

По умолчанию при каждом запуске приложения в папке данных приложения создается один файл журнала: %APPDATA%\Microsoft\KerberosConfigMgr.

Чтобы получить помощь, используйте любой из следующих методов:

  • Наведите указатель мыши на команду, чтобы создать подсказку.
  • Запустите KerberosConfigMgr.exe -h в командной строке.
  • Нажмите кнопку Справка на панели инструментов.

См. также