Zmiana hasła sa w MS SQL Server

Zdarza się, że przejmując opiekę nad serwerem MS SQL nie posiadamy hasła do konta "System Administrator" (wykorzystywanego podczas uwierzytelniania "SQL Server Authentication"), a dodatkowo została usunięta wbudowana grupa "BUILTIN\Administrators" (wykorzystywana podczas uwierzytelniania "Windows Authentication"). Jeżeli jednak posiadamy konto z uprawnieniami do zatrzymywania instancji MS SQL, to możemy spróbować odzyskać pełne uprawnienia do naszego serwera.
1. Zatrzymujemy serwer MS SQL, możemy to zrobić np. przez "SQL Server Configuration Manager". Klikamy na "SQL server" prawym klawiszem myszki i z menu kontekstowego wybieramy "Stop".
Server Configuration Manager - zatrzymanie instancji MS SQL
Zatrzymanie serwera MS SQL można również wykonać z konsoli cmd (ang. Command Line):
        net stop mssqlserver     
      
net stop mssqlserver - zatrzymanie instancji MS SQL
W przypadku instancji nazwanych (dla SQL EXPRESS domyślną nazwą instancji jest sqlexpress):
        net stop mssql$nazwa_instancji    
      
net stop mssql$instancename - zatrzymanie instancji MS SQL
2. Następnie należy ustawić serwer MS SQL do startu w trybie pojedynczego użytkownika (ang. single user mode). Klikamy prawym klawiszem myszy na usługę SQL w "Server Configuration Manager" i z menu kontekstowego wybieramy "właściwości". W nowym oknie przechodzimy do zakładki "Startup Parameters". W polu "Specify a startup parameter" wpisujemy "-m" i klikamy w przycisk "Add" a następnie "OK".
Server Configuration Manager - właściwości instancji MS SQL Właściwości instancji MS SQL - Startup Parameters
W starszych wersjach serwera MS SQL nie będzie zakładki "Startup Parameters". W takim wypadku wybieramy zakładkę "Advanced" i odszukujemy opcję "Startup Parameters", do której dodajemy na początku "-m;".
Właściwości instancji MS SQL - Advanced
3. Uruchomiamy serwer MS SQL (w trybie pojedynczego użytkownika), możemy to zrobić np. przez "SQL Server Configuration Manager". Klikamy na "SQL server" prawym klawiszem myszki i z menu kontekstowego wybieramy "Start".
Server Configuration Manager - uruchomienie instancji MS SQL
Uruchomienie serwera MS SQL można również wykonać z konsoli cmd:
        net start mssqlserver
      
net start mssqlserver - uruchominie instancji MS SQL
W przypadku instancji nazwanych:
        net start mssql$nazwa_instancji
      
net start mssqlserver - uruchominie instancji MS SQL
4. W kolejnym kroku dodamy do serwera MS SQL nowego użytkownika i przypiszemy go do roli SYSADMIN (taka rola serwerowa umożliwia wykonywanie wszystkich czynności związanych z administracją serwera). Skorzystamy w tym celu z narzędzia SQLCMD, z pomocą którego z wiersza poleceń łączymy się z instancją serwera MS SQL:
        SQLCMD -S nazwa_serwera 
      
W przypadku instancji nazwanych:
        SQLCMD -S nazwa_serwera\nazwa_instancji
      
Żeby sprawdzić listę dostępnych serwerów MS SQL można skorzystać z polecenia:
        SQLCMD -L
      
SQLCMD - lista dostępnych serwerów MS SQL
Dodanie nowego użytkownika i przypisanie go do roli SYSADMIN (dla SQL Server 2012 lub późniejszych):
        CREATE LOGIN nazwa_nowego_użytkownika WITH PASSWORD = 'hasło'
        GO
        ALTER SERVER ROLE sysadmin ADD MEMBER nazwa_nowego_użytkownika
        GO
        EXIT
      
SQLCMD - dodanie nowego użytkownika (dla MS SQL 2012 lub późniejszych)
Dodanie nowego użytkownika i przypisanie go do roli SYSADMIN (dla SQL Server 2008 R2 lub wcześniejszych):
        CREATE LOGIN nazwa_nowego_użytkownika WITH PASSWORD = 'hasło'
        GO
        sp_addsrvrolemember 'nazwa_nowego_użytkownika', 'sysadmin'
        GO
        EXIT
      
SQLCMD - dodanie nowego użytkownika (dla MS SQL 2008 R2 lub wcześniejszych)
5. Po dodaniu nowego użytkownika i przypisaniu go do roli SYSADMIN ponownie zatrzymujemy serwer MS SQL (np. korzystając z narzędzia "SQL Server Configuration Manager") i usuwamy dodany wcześniej parametr "-m". Następnie uruchomiamy serwer MS SQL. Teraz można skorzystać z narzędzia do zarzadzania instancjami serwera MS SQL, np. "Microsoft SQL Server Management Studio". W oknie logowania wybieramy sposób uwierzytelniania "SQL Server Authentication", oraz podajemy login i hasło nowego konta.
Microsoft SQL Server Management Studio - łączenie z serwerem MS SQL
Po połączeniu z serwerem MS SQL można zmienić hasło dla konta "sa".
Microsoft SQL Server Management Studio - zmiana hasła dla konta 'sa'
wstecz