В связи с некоторыми обстоятельствами мне пришлось отключиться от компьютера под управлением Windows Server 2012 R2 домена с установленным SQL Server 2014 Business Intelligence Edition. Назовем его mydomain.local. Затем я полностью переустанавливаю роль AD DS на компьютере с контроллером домена и заново создаю домен mydomain.local с нуля. После этого машина SQL Server была снова присоединена к «новому» домену mydomain.local. Теперь я пытаюсь подключиться к Database Engine с SSMS как «mydomain \ Administrator» и получаю сообщение об ошибке:
Не удается подключиться к SQLSERVER.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Не удалось войти в систему для пользователя mydomain \ Administrator. (Microsoft SQL Server, ошибка: 18456) Для получения справки щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476
Ошибка 18456 имеет несколько состояний, которые можно просмотреть в журнале ошибок SQL Server, и в моем случае это состояние 5. Дано объяснение состояний ошибки Вот.
Я все еще могу войти в SQL Server как локальный администратор. Я понимаю, что причина проблемы в том, что «новый» логин с таким же именем имеет другой sid. И я думаю, что мне следует отказаться от входа в систему «mydomain \ Administrator» и повторно добавить «новый» вход и назначить ему роль sysadmin. Но сброс логина также является проблемой из-за:
Логин «mydomain \ Administrator» владеет одной или несколькими базами данных. Измените владельца базы данных перед тем, как отказаться от входа в систему.
Конечно, я могу изменить владельца базы данных, например, на локального администратора и переключить его обратно после повторного добавления входа в систему для пользователя домена. Но мне любопытно, есть ли какие-нибудь более разумные способы заменить «старый» логин на «новый»?
Вероятно, есть способ «взломать» sys.syslogins, но я бы не рекомендовал пробовать. Возможно, будет проще просто воссоздать учетную запись.