Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Przywracanie dostępu do instancji SQL Server bez ponownego uruchamiania

​​

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.

Połącz instancję SQL Server bez użycia Management Studio – używając SqlCmd


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instrukcja ExecuteNonQuery for SELECT sql nie zwraca żadnych wierszy

  2. Konwertuj obiekt SQL Server DateTime na BIGINT (takty .Net)

  3. DATETIMEFROMPARTS() Przykłady w SQL Server (T-SQL)

  4. Jak usunąć ograniczenie w SQL Server (T-SQL)

  5. In-Memory OLTP:Co nowego w SQL Server 2016