2 lutego, 2022

jak zresetować hasło SA na Microsoft SQL Server?

w tym artykule przyjrzymy się, jak zresetować hasło SA (administratora systemu) w Microsoft SQL Server 2019/2017/2014/2012 . Ten przewodnik pomoże Ci przywrócić dostęp do bazy danych MSSQL, jeśli nie możesz uwierzytelnić się za pomocą konta sa (hasło sa zostało zapomniane/utracone/konto zostało wyłączone) lub jako użytkownik systemu Windows (jeśli nie ma użytkowników z uprawnieniami MS SQL sysadmin).

lokalny sa jest dobrze znanym kontem administracyjnym w SQL Server. W większości przypadków jest wyłączony, ale można go włączyć, ustawić / zresetować hasło i przywrócić dostęp do serwera SQL.

aby przywrócić dostęp do bazy danych bez całkowitej ponownej instalacji instancji MS SQL (i z utratą głównej bazy danych), musisz uruchomić SQL Server w trybie pojedynczego użytkownika. W tym trybie można zalogować się do SQL Server pod dowolnym kontem z uprawnieniami administratora lokalnego na komputerze, na którym zainstalowany jest MS SQL Server. Następnie możesz zresetować hasło konta sa i / lub przyznać uprawnienia administracyjne określonym kontom systemu Windows.

Począwszy od SQL Server 2008, rola sysadmin na serwerze SQL nie jest domyślnie przypisana do lokalnej grupy Administratorzy systemu Windows.

aby uruchomić MS SQL Server w trybie pojedynczego użytkownika, Zaloguj się do hosta MSSQL pod dowolnym kontem z uprawnieniami administratora lokalnego w systemie Windows.

  1. Zatrzymaj instancję SQL Server (w naszym przykładzie nazwa instancji MSSQL to MSSQLSERVER) z wiersza polecenia net stop MSSQLSERVER lub za pomocą PowerShell: Get-Service MSSQLSERVER| Stop-Service zatrzymaj serwer MSSQLS poprzez cli
  2. Otwórz Edytor rejestru (regedit.exe) i przejdź do klucza rejestru usługi SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;
  3. zmień wartość parametru ImagePath, dodając opcję-m jako argument do sqlservr.exe. Na przykład ustaw następujący ciąg startowy: "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m  SQL server uruchom w trybie pojedynczego użytkownika za pośrednictwem rejestru
  4. uruchom serwer SQL: net start MSSQLSERVER
  5. Twój serwer SQL jest teraz uruchomiony w trybie pojedynczego użytkownika i pozwala każdemu członkowi lokalnej grupy Administratorzy (lub wbudowanemu administratorowi systemu Windows) połączyć się z instancją SQL Server z uprawnieniami sysadmin;
  6. Otwórz SQL Server Management Studio (SSMS) i połącz się z silnikiem bazy danych SQL Server za pomocą konta należącego do lokalnej grupy Administratorzy; połącz się z SQL serve w trybie pojedynczego użytkownika za pomocą SQL Server Management Studio
  7. przejdź do Security-> Zaloguj się i znajdź użytkownika sa. Użytkownik sa jest domyślnie wyłączony;  użytkownik sa jest domyślnie wyłączony w MS SQL Server
  8. otwórz jego właściwości, przejdź do zakładki Ogólne i ustaw nowe hasło SA. Następnie włącz To konto na karcie Status (Logowanie – > włączone); SQL Server: Reset hasła SA
  9. aby umożliwić połączenie z MSSQL w ramach lokalnych kont SQL (w tym sa), musisz włączyć tryb uwierzytelniania SQL Server i Windows we właściwościach serwera na karcie bezpieczeństwo. W przeciwnym razie podczas łączenia się z lokalnym kontem sa pojawi się błąd:
    Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

    włącz tryb uwierzytelniania serwera i systemu Windows uwierzytelnianie w MSSQL

  10. również w sekcji logowania możesz dodać wymaganych użytkowników systemu Windows (lokalnych lub domenowych) i przypisać mu tole Sysadmin (na karcie role serwera). Możesz też dodać rolę do użytkownika z sqlcmd cli:
    EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
    GO

    przyznaj rolę sysadmin serwera sql użytkownikowi systemu windows
  11. pozostaje ponownie zatrzymać usługę MSSQL, zwrócić wartość początkową parametru rejestru ImagePart, usuwając przełącznik „- m” (C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER);
  12. Uruchom usługę SQL Server normalnie;
  13. możesz teraz połączyć się z SQL server na koncie sa w trybie uwierzytelniania SQL Server lub na Koncie Użytkownika Windows, któremu przyznano uprawnienia sysadmin w SQL Server.
Możesz uruchomić SQL Server w trybie pojedynczego użytkownika za pomocą Menedżera konfiguracji SQL Server. Aby to zrobić, przejdź do zakładki parametry uruchamiania we właściwościach wymaganej instancji SQL i dodaj opcję-m startup.

konfiguracja serwera sql dodaj parametry stratup

Możesz również użyć narzędzia wiersza poleceń sqlcmd, aby zresetować hasło SA i przyznać dostęp do SQL Server:

  1. Uruchom SQL Server w trybie pojedynczego użytkownika, jak opisano powyżej;
  2. Otwórz wiersz polecenia i połącz się z instancją SQL Server: sqlcmd –S localhost
  3. aby zmienić hasło użytkownika SA i włączyć je, uruchom następujące polecenia T-SQL:
    ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
    GO
  4. aby przyznać uprawnienia sysadmin w MSSQL dla konta Windows (w tym przykładzie użytkownik lokalny), użyj poleceń:
    CREATE LOGIN FROM WINDOWS
    GO
    ALTER SERVER ROLE sysadmin ADD MEMBER
    GO

w tym artykule pokazaliśmy, jak przywrócić dostęp do SQL Server w trybie pojedynczego użytkownika. W tym trybie możesz zresetować hasło sa (i innych użytkowników SQL) lub przyznać uprawnienia administratora SQL kontom użytkowników systemu Windows. Tryb pojedynczego użytkownika może być również użyty do przywrócenia bazy danych temdb w serwerze MSSQL.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.