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".
Zatrzymanie serwera MS SQL można również wykonać z konsoli cmd (ang. Command Line):
net stop mssqlserver
W przypadku instancji nazwanych (dla SQL EXPRESS domyślną nazwą instancji jest sqlexpress):
net stop mssql$nazwa_instancji
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".
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;".
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".
Uruchomienie serwera MS SQL można również wykonać z konsoli cmd:
net start mssqlserver
W przypadku instancji nazwanych:
net start mssql$nazwa_instancji
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
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
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
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.
Po połączeniu z serwerem MS SQL można zmienić hasło dla konta "sa".