nie można połączyć się z serwerem SQL w trybie pojedynczego użytkownika

10

Zacząłem moją SQL Server 2008 sqlcst02\inst01in Single User Modeprzez dołączenie ;-mdo końca parametrów startowych dla tej instancji w SQL Server Configuration Manager. Zatrzymałem się SQL Server Agentdla inst01instancji. Moje konto jest członkiem Domain Admin groupi próbowałem się zalogować przy użyciu sqlcmd -S sqlcst02\inst01i nadal pojawia się błąd, że usługa jest Single User Modezalogowana i tylko jeden administrator może się zalogować. Próbowałem dodać ;-m"sqlcmd"parametry uruchamiania, aby ograniczyć połączenie tylko, sqlcmdale dostaję te same wyniki. Próbowałem zalogować się jako własne konto i zalogować się jako konto administratora lokalnego. Uruchomiłem wiersz polecenia jako ja i jako administrator, ale otrzymuję te same wyniki. Próbowałem podłączenia za pomocą ADMIN:sqlcst02\inst01w SSMS. Brak szczęścia.

Próbuję zresetować sahasło, ponieważ żadna z tych informacji nie została mi pozostawiona przez poprzedniego administratora. To szaleje. Robiłem to wcześniej na innych komputerach bez żadnych problemów.


źródło
1
Czy Twoje konto domeny (jawnie lub za pośrednictwem grupy) należy do roli serwera sysadmin w wystąpieniu programu SQL Server?
Brian Knight
Nie wiem Wiem, że jestem członkiem grupy Domain Admin i grupy SQL ADMINS oraz że grupa SQL ADMINS jest członkiem roli sysadmin na wszystkich innych serwerach. ale założę się, że na tym komputerze tak nie jest.
czy Twój SQL działa w klastrze? w tej klastrze usługa ma otwarte połączenie z SQL przed tobą. Inną możliwością jest usługa lub aplikacja, która nawiązuje połączenie z serwerem SQL jako sysadmin, zanim administrator będzie mógł się połączyć.
SQL Learner
Nie ma nic złego w połączeniu i nic złego w logowaniu. Jeśli dojdziesz do punktu, w którym widzisz błąd trybu pojedynczego użytkownika, musisz dowiedzieć się, co jeszcze łączy się z instancją, i zapobiec temu przynajmniej tak długo, jak długo trzeba będzie, aby nawiązać połączenie samodzielnie.
Jon Seigel

Odpowiedzi:

6

Inna alternatywa dla odzyskiwania dostępu do programu SQL Server została opisana w tym artykule i nie wymaga ponownego uruchomienia w trybie pojedynczego użytkownika:

http://www.mssqltips.com/sqlservertip/2682/recover-access-to-a-sql-server-instance/

Zasadniczo pobierz PSExec , a następnie uruchom go za pomocą następującego wiersza polecenia (podaj swoją lokalizację SSMS.exe):

PsExec -s -i "C:\Program Files (x86)\...\ssms.exe"

Zostaniesz poproszony o nawiązanie połączenia - trybem uwierzytelnienia będzie uwierzytelnianie systemu Windows i stałe zakodowanie NT AUTHORITY\SYSTEM. Po nawiązaniu połączenia będziesz mógł przejść do zabezpieczeń i naprawić hasło sa, dodać siebie jako admin, dodać innych administratorów itp.

W powyższym artykule jest kilka zastrzeżeń, które powinieneś przeczytać przed wypróbowaniem tego. Możesz również przejrzeć komentarze na dole.

Aaron Bertrand
źródło
1

Właśnie mnie ugryzł. Zapomniałem uruchomić monit CMD jako administrator. To nie jest domyślne w Windows 2008 R2. Kiedy to zrobiłem, wszystko było dobrze. Jeden z moich kolegów zasugerował ten problem i hej wszystko naprawione. Czuję się jak idiota, ale pomyślałem, że podzielę się, aby ocalić innych.

Po prostu John
źródło
0

OK - jeśli nie jesteś w roli sysadmin na SQL Server, nie będziesz mógł wejść w trybie pojedynczego użytkownika. Jeśli jesteś administratorem samego serwera, możesz skorzystać z odpowiedzi w tym poście, aby ci pomóc.

Brian Knight
źródło
Jeśli jesteś administratorem samego serwera, możesz zalogować się w trybie pojedynczego użytkownika zgodnie z opisem w dokumentacji, a połączenie będzie traktowane tak, jakbyś sysadminpełnił tę rolę. Co, o ile wiem, jest dokładnie tym, co robi post na blogu, do którego prowadzi link z innego linku.
Martin Smith,
0

Miałem podobny problem polegający na tym, że klaster spadł, ponieważ ustawiłem maxmem na 12 (zamiast 120000, moje zero najwyraźniej zostało złamane)

Zauważyłem, że kiedy użyłem normalnego monitu o parametry uruchamiania i sqlcmd -AI otrzymywałem limity czasu logowania i komunikaty o błędach informujące, że DAC prawdopodobnie nie został podłączony.

Uruchomiłem usługi sql, kopiując parametry uruchamiania z menedżera konfiguracji do administracyjnego monitu PowerShell i dodałem parametry -cf.

W innym oknie mogłem użyć sqlcmd, ale nie z parametrem -A, tylko standardowe połączenia.

W tym momencie mogłem uruchomić zapytania i sp_configured moje wyjście. To było z kontem domeny.

ConstantineK
źródło