невозможно добавить пользователя в роль системного администратора в SQL Server

9

Я использую SQL Server 2008 Management Studio. Текущая учетная запись входит в группу локальных администраторов компьютера. Я использую режим встроенной безопасности Windows в SQL Server 2008.

Моя проблема заключается в том, что после входа в SQL Server Management Studio я выбираю свое имя для входа в разделе «Безопасность / Входы», затем выбираю вкладку «Роли сервера», затем выбираю последний элемент - sysadmin, чтобы присоединиться к этой группе / роли, но там написано, что я не имеют достаточного разрешения. Есть идеи, что не так? Я думаю, что местный администратор должен быть в состоянии сделать что-нибудь. :-)

George2
источник
это то , что Microsoft поставляет об этой проблеме: msdn.microsoft.com/en-us/library/dd207004.aspx я могу рекомендовать этот скрипт: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/...

Ответы:

6

У входа в сеанс, в котором вы пытаетесь установить разрешения, должны быть разрешения.

Итак, логин, который вы используете - это локальный админ Это означает, что локальной группе администраторов не хватает прав.

GUI тоже запустит этот sp_addsrvrolemember . Хотя это говорит

Требуется членство в роли, к которой добавляется новый участник.

Итак, группа локальных администраторов не является членом sysadmin.

Редактировать:

Чтобы решить: используйте логин с правами. Вы можете найти один, используя sp_helpsrvrolemember

ГБН
источник
Какой ваш совет, чтобы решить мою проблему?
George2
Не уверен, если какие-либо обходные пути или решения без переустановки всего SQL Server 2008 снова! :-(
George2
«Использовать логин с правами» - как мне получить список логинов с достаточными правами?
George2
Спасибо, я считаю, что единственный член из списка EXEC sp_helpsrvrolemember 'sysadmin' называется sa, это пользователь Windows? Я не могу найти такого пользователя из списка пользователей Windows. Любые идеи?
George2
1
Это зарезервированный логин SQL, а не пользователь Windows. На моей тестовой установке SQL 2008 указана учетная запись, которая установила SQL Server.
ГБН
4

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

«Запустите экземпляр SQL Server в однопользовательском режиме с помощью параметров -m или -f. После этого любой член локальной группы« Администраторы »компьютера может подключиться к экземпляру SQL Server в качестве члена фиксированной серверной роли sysadmin. "

К сожалению, смысл запуска в однопользовательском режиме не является интуитивно понятным. Также, по моему опыту, членство в локальной группе администраторов моего компьютера не давало статус sysadmin моей учетной записи «user».

Эта история началась, когда для решения проблемы членства в моем домене не-DC-сервером (следствие смены ISP) я перестроил DC в Windows Server 2008 R2 с 2008 года. Это решило пару мелких проблем, но не решило проблему. вопрос о членстве ошибочным сервером. Для этого потребовалось исправление, предложенное в ServerFault (в моем случае это был вопрос сброса winsock и tcpip).

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

Я вошел в систему как администратор локального сервера, который был рядом, когда был установлен Sql Server, но, хотя это позволило мне получить доступ к Management Studio, я быстро обнаружил, что BUILTIN \ Administrators играют только «общедоступную» роль сервера.

После долгих исследований и экспериментов я наткнулся на статью, в которой описываются особенности однопользовательского входа в систему http://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Чтобы подготовиться к этому шагу, вы должны выключить Sql Server (который в большинстве случаев работает по умолчанию). Используйте SQL Configuration Manager, чтобы остановить «Sql Server».

Затем в командной строке перейдите к расположению этого программного файла (или эквивалентному на вашем компьютере) и введите команду «sqlservr.exe -m». Если вы видите поток активности, зарегистрированный в командной строке, вы добились успеха. Если он не запускается, возможно, у вас уже запущен SQL Server. Закрой это.

Разрешить однопользовательскому экземпляру присоединять свои базы данных. Когда активность журнала прекратится, откройте Management Studio. Вы будете автоматически в однопользовательском режиме, и, следовательно, любая учетная запись, которую вы представляете, будет системным администратором. Используйте эти возможности для настройки имен безопасности и ролей сервера.

В моем случае мне пришлось воссоздать учетные записи домена в новом домене, затем удалить их тезки в SQL Server и восстановить их (из-за ситуации с SID / GUID), переназначая разрешения для определенных баз данных по мере необходимости.

Майкл Брошчат
источник
Есть также другой способ установить параметры: открыть сервис, менеджер, выбрать сервис и затем свойства из контекстного меню. На вкладке «Общие» есть редактирование «Начальные параметры». Введите необходимые параметры там. Затем запустите службу с помощью кнопки «Пуск» на этой странице , установленные там параметры не являются постоянными и действительны только при запуске службы из диалогового окна «Свойства».
ldsandon
3

SQL Server 2008 больше не добавляет BUILTIN \ Administrators в качестве членов предопределенной роли сервера sysadmin.

Это правда, НО в этом случае вы можете выйти из этой ситуации, запустив службу SQL Server в однопользовательском режиме (аварийный режим), и любой локальный администратор сможет войти в систему.

Смотрите MSDN .

abatishchev
источник
2

По умолчанию SQL добавляет группу BUILTIN \ Administrators к роли sysadmin, что означает, что любой локальный администратор NT автоматически является системным администратором SQL. В Vista из-за UAC вы должны работать в режиме «Администратор», чтобы воспользоваться этой привилегией.

  • Если вы работаете в Vista, запустите инструмент клиента (SSMS) «как администратор», а затем попробуйте добавить себя в качестве системного администратора.
  • Если группа BUILTIN \ Administrators была удалена из роли sysadmin случайно, то вы должны войти с другим именем входа sysadmin. Если нет другого входа в систему сисадмина, вы должны войти с аутентификацией SQL как sa и использовать пароль sa, который был установлен во время установки. После входа в систему в качестве члена sysadmin, ad BUILTIN \ Admisnitrators возвращается к роли sysadmin. Если вход в систему SQL отключен, то поздравляю, вы просто заблокируете себя из установки SQL.
  • Если группа BUILTIN \ Administrators была намеренно удалена из роли sysadmin (согласно KB932881 ), то вы пытаетесь взломать систему, к которой у вас нет разрешения.
Ремус Русану
источник
Привет Ремус, я запутался, что в процессе установки я не настраиваю пароль для sa, есть пароль по умолчанию?
George2
Другая путаница заключается в том, что от запуска процедуры store sp_helpsrvrolemember до поиска всех пользователей роли sysadmin в списке указывается только sa, других пользователей из группы локальных администраторов компьютеров нет, есть идеи, почему?
George2
Для sa нет пароля по умолчанию. Пароль sa устанавливается во время настройки, если включена смешанная аутентификация. Вам нужно будет попросить администратора вашей базы данных предоставить вам доступ, если вам нужно.
Ремус Русану
«Если вход в систему SQL отключен, то поздравляю, вы просто блокируете себя из установки SQL». В этом случае см. Ответ Jordi ниже, чтобы запустить SQL Server в однопользовательском режиме.
Michiel van Oosterhout
1

По умолчанию SQL Server 2008 больше не добавляет BUILTIN \ Administrators в качестве членов предопределенной роли сервера sysadmin. Когда вы проходите через установщик, он спрашивает, какая учетная запись или учетные записи должны иметь права системного администратора. Есть кнопка, которая в основном говорит «сделать меня системным администратором», которая добавляет учетную запись пользователя, выполняющего установку в качестве системного администратора.

Если они не добавили других пользователей в качестве системных администраторов, то только этот пользователь в настоящее время является системным администратором. Вам необходимо будет войти в систему SQL Server и предоставить права администратора с правами администратора.

mrdenny
источник
0

Я размышлял над той же проблемой после новой установки, пока не зарегистрировал сервер на SQL Server 2008, затем все прошло как надо


источник