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.