Не удалось назначить SPN учетной записи, ошибка 0x21c7/8647
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами произвели установку Microsoft SQL Server 2019. Двигаемся дальше, и сегодня то же поговорим на тему сиквела, точнее ошибок связанного с ним и AD. При попытке добавить новую SPN запись, у меня появилась ошибка "Не удалось назначить SPN учетной записи, ошибка 0x21c7/8647", давайте посмотрим, где искать описание ошибки, что является основной причиной и как ее полностью устранить.
Описание ошибки 0x21c7/8647
При подготовке к установке SQL Server, будь то для автономного экземпляра или кластерного экземпляра, с использованием экземпляра по умолчанию или именованного экземпляра, вам необходимо позаботиться о нескольких вещах, чтобы уменьшить возможные проблемы, которые может произойти. SPN одно из таких действий.
SPN позволяют подключаться к соответствующему экземпляру SQL Server с удаленного компьютера. Для этого необходимо, чтобы SPN уже существовал. Чтобы это происходило каждый раз при запуске экземпляра SQL Server, необходимо создать соответствующее имя участника-службы. Поскольку ваш экземпляр работает под учетной записью службы, вам необходимо предоставить некоторые разрешения, чтобы это произошло.
Потребовалось мне прописать для одного виртуального сервера SPN запись, как это делать я уже подробно рассказывал. Вместо привычного успешного завершения, я получил вот такую ошибку:
MSSQLSvc/SVTA.Pyatilistni.org
Не удалось назначить SPN учетной записи "CN=run-t,OU=Run-users,DC=Pyatilistnik,DC=org", ошибка 0x21c7/8647 -> Не удалось выполнить операцию, так как значение имени субъекта-службы, предоставленное для добавления или изменения, не является уникальным в пределах леса.
Если попытаться добавить SPN в ручную через оснастку "Active Directory - Пользователи и компьютеры" или через ADSIedit, то ошибка воспроизведется.
Еще данная ситуация может легко появляться, когда вы произвели миграцию компьютера из одного домена в другой, или же произвели восстановление объекта Active Directory из корзины, например такой восстановленный объект вызывал ошибку дублирования SPN ID 11.
Устранение ошибки дублирования SPN
Вообще это нормальное поведение, что служба каталогов Active Directory производит проверку одинаковых SPN, но возможность отключения такого поведения все же есть. Первое, что вы должны сделать, это зайти на любой из контроллеров домена, которые отвечают за домен, где располагается сервер у которого есть дубль SPN. Откройте оснастку просмотр событий или же можете воспользоваться утилитой Windows Admin Center, это не принципиально. Найдите там журнал "ActiveDirectory_DomainService". В этом журнале поищите событие с кодом ID 2974.
CN=СИНИНТ,OU=Technical,DC=root,DC=Pyatilistnik,DC=org Winerror: 8647
dsquery * -filter servicePrincipalName=* | findstr имя объекта
Из ошибки ID 2974, мы видим, где именно уже прописан наш SPN, это учетная запись пользователя СИНИНТ. Давайте зайдем в ее свойства и удалим их.
Далее попробуем заново зарегистрировать SPN записи:
setspn.exe -a MSSQLSvc/SVT.Pyatilistnik.org:1433 PYATILISTNIK\run-t
Теперь все прошло штатно и без проблем "Регистрация ServicePrincipalNames" выполнена и объект добавлен.
На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.