nie można dodać użytkownika do roli sysadmin w programie SQL Server

9

Korzystam z SQL Server 2008 Management Studio. Bieżące konto logowania należy do lokalnej grupy administratorów komputera. Korzystam z trybu zintegrowanych zabezpieczeń systemu Windows w programie SQL Server 2008.

Mój problem polega na tym, że po zalogowaniu się do SQL Server Management Studio wybieram swoją nazwę logowania w obszarze Bezpieczeństwo / Loginy, następnie wybieram kartę Role serwera, a następnie ostatni element - sysadmin, aby dołączyć do tej grupy / roli, ale mówi nie mam wystarczającej zgody. Wszelkie pomysły, co jest nie tak? Myślę, że lokalny administrator powinien być w stanie zrobić wszystko. :-)

George2
źródło
to, co Microsoft materiały dotyczące tego problemu: msdn.microsoft.com/en-us/library/dd207004.aspx mogę polecić ten skrypt: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/...

Odpowiedzi:

6

Login sesji, w której próbujesz ustawić uprawnienia, musi mieć uprawnienia.

Więc login, którego używasz, to lokalny administrator? Oznacza to, że lokalna grupa administracyjna nie ma wystarczających uprawnień.

GUI uruchomi to zbyt sp_addsrvrolemember . Chociaż to mówi

Wymaga członkostwa w roli, do której dodawany jest nowy członek.

Tak więc lokalna grupa administracyjna nie jest członkiem sysadmin.

Edytować:

Aby rozwiązać: Użyj loginu, który ma uprawnienia. możesz go znaleźć, używając sp_helpsrvrolemember

gbn
źródło
Jaka jest twoja rada, aby rozwiązać mój problem?
George2
Nie jestem pewien, czy jakieś obejścia lub rozwiązania bez ponownej instalacji całego programu SQL Server 2008! :-(
George2
„Użyj loginu, który ma uprawnienia” - jak mogę uzyskać listę logowań, która ma wystarczające uprawnienia?
George2
Dzięki, znajduję jedynego członka z EXEC sp_helpsrvrolemember „sysadmin” nazywa się sa, czy to użytkownik systemu Windows? Nie mogę znaleźć takiego użytkownika z listy użytkowników systemu Windows. Jakieś pomysły?
George2
1
Jest to zastrzeżony login SQL, a nie użytkownik systemu Windows. W mojej testowej instalacji SQL 2008 znajduje się konto, na którym zainstalowano SQL Server.
gbn
4

W innym dobrym artykule Rozwiązywanie problemów: Łączenie z SQL Server, gdy administratorzy systemu są zablokowani , autor mówi nam, że wszystko, co musimy zrobić, aby odzyskać kontrolę nad naszym SQL Server, to

„Uruchom wystąpienie programu SQL Server w trybie pojedynczego użytkownika za pomocą opcji -m lub -f. Każdy członek lokalnej grupy Administratorzy komputera może następnie połączyć się z wystąpieniem programu SQL Server jako członek stałej roli serwera sysadmin. „

Niestety, co oznacza uruchomienie w trybie pojedynczego użytkownika, nie jest intuicyjną sprawą. Ponadto, przynajmniej z mojego doświadczenia, członkostwo w lokalnej grupie Administratora mojego komputera nie przyznało statusu sysadmin mojemu kontowi „użytkownika”.

Ta historia zaczęła się, gdy zajmując się problemem członkostwa w mojej domenie przez serwer inny niż DC (konsekwencja zmiany ISP), przebudowałem DC na Windows Server 2008 R2 od 2008 roku. To rozwiązało kilka drobnych problemów, ale nie rozwiązało kwestia członkostwa przez błędny serwer. Aby to osiągnąć, potrzebna była poprawka sugerowana w ServerFault (w moim przypadku chodziło o zresetowanie winsock i tcpip).

SQL Server 2008 znajduje się na tym drugim serwerze, teraz będącym członkiem domeny. Oto problem. Jak ktoś wskazuje na ServerFault, często instaluje się serwer „pozwól, aby bieżący użytkownik został sysadminem” podczas instalowania Server 2008. Często nie bierze się pod uwagę nikogo innego. Ponieważ ta tożsamość pojedynczego użytkownika była członkiem domeny, która już nie istniała, nikt nie miał uprawnień do administrowania serwerem SQL.

Zalogowałem się jako administrator serwera lokalnego, który istniał już podczas instalacji Sql Server, ale chociaż pozwoliło mi to na dostęp do Management Studio, szybko odkryłem, że BUILTIN \ Administratorzy pełnią tylko rolę „publicznego” serwera.

Po wielu badaniach i eksperymentach natknąłem się na artykuł podający specyfikę logowania dla jednego użytkownika 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

Aby przygotować się do wykonania tego kroku, należy zamknąć serwer Sql (który domyślnie działa w większości przypadków). Użyj SQL Configuration Manager, aby zatrzymać „Sql Server”.

Następnie w wierszu polecenia przejdź do lokalizacji pliku programu (lub odpowiednika na komputerze) i wydaj polecenie „sqlservr.exe -m”. Jeśli zobaczysz strumień aktywności zarejestrowany w wierszu polecenia, oznacza to, że odnosi sukces. Jeśli się nie uruchomi, prawdopodobnie masz już uruchomiony program SQL Server. Zamknij to.

Zezwól instancji jednego użytkownika na dołączenie jego baz danych. Po zakończeniu działania dziennika otwórz Management Studio. Będziesz automatycznie w trybie pojedynczego użytkownika, a zatem każde konto, które reprezentujesz, będzie administratorem systemu. Skorzystaj z tej mocy, aby dostosować loginy zabezpieczeń i role serwera.

W moim przypadku musiałem odtworzyć konta domeny w nowej domenie, a następnie usunąć ich nazwy w programie SQL Server i zrekonstruować je (z powodu sytuacji SID / GUID), w razie potrzeby ponownie przypisując uprawnienia do określonych baz danych.

Michael Broschat
źródło
Istnieje również inny sposób ustawienia parametrów: otwórz usługę, menedżer, wybierz usługę, a następnie właściwości z menu po kliknięciu prawym przyciskiem myszy. W zakładce ogólnej znajduje się edycja „Parametry początkowe”. Wpisz tam potrzebne parametry. Następnie uruchom usługę za pomocą przycisku Start na tej stronie , ustawione tam parametry nie są stałe i ważne tylko wtedy, gdy usługa jest uruchamiana z okna dialogowego Właściwości.
ldsandon
3

SQL Server 2008 nie dodaje już BUILTIN \ Administrators jako członków stałej roli serwera sysadmin

To prawda, ALE w takim przypadku możesz odzyskać sytuację po uruchomieniu usługi SQL Server w trybie pojedynczego użytkownika (tryb awaryjny), a każdy lokalny administrator będzie mógł się zalogować.

Zobacz MSDN .

abatishchev
źródło
2

Domyślnie SQL dodaje grupę BUILTIN \ Administrators do roli sysadmin, co oznacza, że ​​każdy lokalny administrator NT jest automatycznie administratorem SQL. W systemie Vista ze względu na kontrolę konta użytkownika należy uruchomić w trybie „jako administrator”, aby skorzystać z tego uprawnienia.

  • Jeśli korzystasz z systemu Vista, uruchom narzędzie klienta (SSMS) „jako administrator”, a następnie spróbuj dodać siebie jako administratora systemu.
  • Jeśli grupa BUILTIN \ Administratorzy została przypadkowo usunięta z roli sysadmin, musisz zalogować się przy użyciu innego loginu sysadmin. Jeśli nie ma innego loginu sysadmin, musisz zalogować się przy użyciu uwierzytelnienia SQL jako sa i użyć hasła sa, które zostało ustawione podczas instalacji. Po zalogowaniu się jako członek sysadmin ad BUILTIN \ Admisnitrators z powrotem do roli sysadmin. Jeśli logowania SQL są wyłączone, a następnie gratulacje, po prostu blokujesz się przed instalacją SQL.
  • Jeśli grupa BUILTIN \ Administratorzy została celowo usunięta z roli sysadmin (zgodnie z KB932881 ), próbujesz włamać się do systemu, do którego nie masz uprawnień.
Remus Rusanu
źródło
Cześć Remus, jestem zdezorientowany, że podczas procesu instalacji nie konfiguruję żadnego hasła dla sa, czy istnieje domyślne hasło?
George2
Kolejnym nieporozumieniem jest to, że od uruchomienia procedury sklepu sp_helpsrvrolemember w celu znalezienia wszystkich użytkowników roli sysadmin, tylko sa na liście, nie ma innych użytkowników z grupy administratorów lokalnego komputera, jakieś pomysły, dlaczego?
George2
Nie ma domyślnego hasła dla sa. Hasło sa jest ustawiane podczas instalacji, jeśli włączone jest uwierzytelnianie mieszane. Będziesz musiał poprosić administratora swojej bazy danych o udzielenie dostępu, jeśli zajdzie taka potrzeba.
Remus Rusanu,
„Jeśli logowanie SQL jest wyłączone, a następnie gratulacje, po prostu blokujesz się przed instalacją SQL”. W takim przypadku zobacz odpowiedź Jordi poniżej, aby uruchomić SQL Server w trybie pojedynczego użytkownika.
Michiel van Oosterhout
1

Domyślnie SQL Server 2008 nie dodaje już BUILTIN \ Administrators jako członków stałej roli serwera sysadmin. Podczas przechodzenia przez instalatora pojawia się pytanie, które konto lub konta powinny mieć uprawnienia sysadmin. Jest przycisk, który w zasadzie mówi „uczyń mnie sysadminem”, który doda konto użytkownika wykonującego instalację jako sysadmin.

Jeśli nie dodali żadnych innych użytkowników jako sysadmins, wówczas tylko ten użytkownik jest obecnie sysamdin. Musisz mieć tę osobę zalogowaną do SQL Server i przyznać uprawnienia administratora systemu DBA.

mrdenny
źródło
0

Zastanawiałem się nad tym samym problemem po nowej instalacji, dopóki nie zarejestrowałem serwera na SQL Server 2008, a potem wszystko poszło jak należy


źródło