Добавьте текущего пользователя-администратора в SQL Server Express 2008
Мне удалось (в "экспериментах") удалить обоих моих пользователей Windows из моего экземпляра SQL Express. Теперь я вошел в систему как администратор Windows и заново создал соответствующий логин SQL, но я не могу назначить права sysadmin. Я получаю ошибку:
Пользователь не имеет разрешения на выполнение этого действия. (Microsoft SQL Server, ошибка: 15247)
Если админ не может этого сделать, я должен начать искать маленького животного, чтобы пожертвовать им?
3 ответа
Возможно, ваша учетная запись администратора Windows не имеет прав администратора - это зависит от того, что вы настроили. Вам нужно будет войти в систему с учетной записью, у которой есть права, или войти как пользователь sa.
Если у вас не включена аутентификация SQL, вы можете активировать ее с помощью настройки реестра. Я думаю, что это правильный ключ:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode
Он должен быть установлен в смешанный режим (2), но, конечно, вам все равно нужно знать, какой пароль был при установке экземпляра.
Обновите разрешения на запуск службы экземпляра SQL Server, включив в него "-m" или -m"Microsoft SQL Server Management Studio - Query", если вы предпочитаете использовать SSMS вместо sqlcmd/osql.
Затем используйте эту команду для подключения через командную строку:
sqlcmd -E -S HOSTNAME\INSTANCENAME
Или подключитесь через SSMS с:
\\.\pipe\hostname\instancename\sql\query
И используйте это, чтобы добавить свой логин и роль:
CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO
После того, как вы можете удалить опции -m в сервисе и запустить его как обычно.
См. http://msdn.microsoft.com/en-us/library/ms188236.aspx для получения подробной информации.
В CodePlex есть скрипт, который автоматизирует восстановление после потери прав системного администратора на локальный экземпляр SQL Server, если у вас есть доступ к учетной записи администратора Windows: