Мне удалось (в «экспериментах») удалить обоих пользователей Windows из экземпляра SQL Express. Теперь я вошел в систему как администратор Windows и повторно создал соответствующий вход SQL, но я не могу назначить права системного администратора. Я получаю сообщение об ошибке:
У пользователя нет разрешения на выполнение этого действия. (Microsoft SQL Server, ошибка: 15247)
Если администратор не может этого сделать, стоит ли мне искать маленькое животное для жертвоприношения?
Возможно, ваша учетная запись администратора Windows не имеет прав администратора - это зависит от того, что вы настроили. Вам нужно будет войти в систему с учетной записью, у которой есть права, или войти в систему как пользователь sa.
Если у вас не включена аутентификация SQL, вы можете активировать ее с помощью настройки реестра. Думаю, это правильный ключ:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode
Он должен быть установлен в смешанный режим (2), но, конечно, вам все равно нужно знать, какой был пароль sa при установке экземпляра.
Обновите разрешения запуска службы экземпляра 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: