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).
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.
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.
- 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
- Otwórz Edytor rejestru (
regedit.exe
) i przejdź do klucza rejestru usługi SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER; - 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
- uruchom serwer SQL:
net start MSSQLSERVER
- 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;
- 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
- przejdź do Security-> Zaloguj się i znajdź użytkownika sa. Użytkownik sa jest domyślnie wyłączony;
- 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);
- 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)
- 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
- 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
); - Uruchom usługę SQL Server normalnie;
- 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 również użyć narzędzia wiersza poleceń sqlcmd, aby zresetować hasło SA i przyznać dostęp do SQL Server:
- Uruchom SQL Server w trybie pojedynczego użytkownika, jak opisano powyżej;
- Otwórz wiersz polecenia i połącz się z instancją SQL Server:
sqlcmd –S localhost
- 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 - 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.