Począwszy od Microsoft SQL Server 2008, domyślnie grupa administratorów lokalnych nie jest już dodawana do administratorów SQL Server podczas instalacji, można to zrobić tylko ręcznie.
W rezultacie, jeśli grupa administratora nie została dodana podczas lub po instalacji, zdarzają się sytuacje, w których traci się dostęp administracyjny do SQL Server. Może się to zdarzyć, gdy użytkownik, z którego przeprowadzono instalację jest nieznany lub hasło do tego samego konta zostało utracone lub gdy poprzedni administrator bazy danych odszedł i jego konto Windows, jako jedyne z uprawnieniami administratora SQL Server, zostało usunięte .
Zwykle w tym przypadku używany jest zwykły mechanizm z restartem pojedynczego użytkownika SQL Server. Takie podejście wymaga jednak przestojów, a w niektórych systemach jest to niedopuszczalne.
Istnieje bardzo bezbolesny sposób na rozwiązanie tego problemu bez przestojów, jeśli spełnione są określone warunki. Wielu słyszało i używało narzędzi Marka Russinovicha – Windows Sysinternals. Ten zestaw zawiera narzędzie PsExec, które umożliwia uruchomienie procesu na komputerze lokalnym lub zdalnym.
Jedną z zalet tego narzędzia jest możliwość uruchamiania procesów w imieniu konta NT AUTHORITY\SYSTEM , który – w przeciwieństwie do „zwykłych” kont administratorów – ma domyślnie dostęp do SQL Server.
Aby ta metoda działała, SQL Server musi mieć włączone uwierzytelnianie systemu Windows i działać jako konto NT AUTHORITY\SYSTEM, w przeciwnym razie konto NT AUTHORITY\SYSTEM będzie miało tylko prawa publiczne, a nie administrator.
Przygotowanie do przywrócenia dostępu administracyjnego do SQL Server
1. Upewnij się, że usługa SQL Server działa w imieniu konta NT AUTHORITY\SYSTEM.
2. Pobierz i zainstaluj aktualną wersję SQL Server Management Studio (SSMS) na swoim serwerze SQL, na przykład tutaj
3. Pobierz i rozpakuj archiwum na serwer SQL aktualną wersję zestawu narzędzi PsTools (dołączony jest do niego PsExec), na przykład PSTools.
Dodatki do administratora serwera SQL
1. Uruchom wiersz poleceń z podwyższonymi uprawnieniami na serwerze SQL (Shift + prawy przycisk myszy, „Uruchom jako administrator”) i przejdź do folderu, w którym rozpakowano narzędzie PsExec.
2. Wykonaj poniższe polecenie, korygując aktualną ścieżkę do Management Studio:
PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
Ustawienia:
- -i – wskazuje, że konieczne jest uruchomienie procesu w trybie interaktywnym
- -s – wskazuje, że musisz uruchomić proces w imieniu konta systemowego NT ZARZĄDZANIE\SYSTEM.
Otrzymasz mniej więcej następujące informacje (przy pierwszym uruchomieniu zobaczysz okno z umową licencyjną):
i uruchomi się SSMS.
3 Kliknięcie Połącz pozwoli Ci się połączyć i zobaczyć listę obiektów na serwerze.
4. Teraz przejdź do Zabezpieczenia> Loginy i dodaj swoje konto jako administrator systemu i zaktualizuj to samo hasło, ogólnie zrób wszystko, co konieczne, aby Twoja instancja była zarządzana.
Zaloguj się i dodaj swoje konto jako administrator systemu i zaktualizuj hasło sa, ogólnie zrób wszystko, co konieczne, aby twoja instancja była zarządzalna” width=”300″ height=”160″ title=””>
Ta metoda, chociaż ma wiele ograniczeń, ale pozwala przywrócić zarządzanie serwerem SQL bez zatrzymywania serwera bazy danych.