Назад | Перейти на главную страницу

Исправление SQL Server 2005 после понижения уровня сервера из Active Directory

Позвольте мне предварить это, заявив, что я больше сторонник UNIX, и это заставляет меня выдергивать волосы. У меня есть сервер Windows 2003, на котором работает SQL Server 2005 для системы виртуальной инфраструктуры VMware. Теоретически эту систему можно было сделать контроллером Active Directory, но мы решили пока отложить это. Я понизил уровень сервера из области Active Directory (больше не контроллер или член какой-либо Active Directory). К сожалению, когда я это сделаю, служба SQL Server больше не запустится.

Когда я захожу в диспетчер конфигурации SQL Server и пытаюсь изменить вход в систему с учетной записью администратора или одной из встроенных учетных записей, я получаю сообщение об ошибке «Нет сопоставления между именами учетных записей и идентификаторами безопасности».

Как я могу исправить SQL Server, чтобы он не думал о разрешениях Active Directory и идентификаторах учетных записей?

Типа грубого подхода, но пробовали ли вы удалить и переустановить SQL Server? Если это не позволит вам, вы можете попробовать эти шаги.

В качестве другого варианта вы можете попробовать эти шаги чтобы исправить проблему с SID локальной учетной записи, но это похоже на боль.

Я не создавал тестовый экземпляр, чтобы воспроизвести это на своем собственном компьютере, но похоже, что в приведенном ниже ключе хранятся три значения реестра, которые относятся к SID групп, созданных установкой SQL Server 2005:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\Setup

Значения: AGTGROUP, FTSGROUP и SQLGROUP. Для заполнения этих значений использовались следующие группы SID (с заменой имени вашего серверного компьютера и имени экземпляра SQL):

SQLServer2005MSSQLUser$SERVER-NAME$INSTANCE-NAME
SQLServer2005MSFTEUsers$SERVER-NAME$INSTANCE-NAME
SQLServer2005SQLAgentUsers$SERVER-NAME$INSTANCE-NAME 

Из того, что я вижу (опять же, без повторения этого сам), вам необходимо создать эти группы для этого сервера, затем получить SID для новых групп и поместить их в реестр. Похоже, что «ремонт» установки SQL Server сделает это. Взгляните на эту статью в Microsoft Connect: http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=202561

Найдите в этой статье фразу «Одна или несколько групп безопасности SQL каким-то образом были удалены» и прочтите там обходной путь. Похоже, очистка старых групп и запуск установки в режиме восстановления сделает то, что вы хотите. Я бы доверял этому лучше, чем пытаться воссоздать их вручную, как предлагают некоторые сообщения в блогах и на форумах.

Сказав все это, сделайте резервную копию как минимум той части реестра и ваших баз данных, прежде чем вы начнете что-то менять. Наличие хороших резервных копий заставляет вещи «просто работать» ... <smile>