Błąd 1069 występuje podczas uruchamiania usługi SQL Server

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 282254

Summary

Błąd 1069 "Usługa nie została uruchomiona z powodu błędu logowania", występuje, gdy usługa SQL Server lub SQL Server Agent nie może zalogować się przy użyciu skonfigurowanego konta usługi. W tym artykule wyjaśniono, jak usunąć błąd 1069, gdy wpisy dziennika zdarzeń systemu pokazują identyfikator zdarzenia programu Service Control Manager 7041 lub identyfikator zdarzenia 7038. Przyczyny obejmują brak prawa „Logowanie jako usługa”, wyłączone lub zablokowane konto, wygasłe lub nieprawidłowe hasło oraz domenę, która nie jest osiągalna podczas uruchamiania.

Symptomy

Podczas próby ponownego uruchomienia programu Microsoft SQL Server lub agenta programu SQL Server usługa nie zostanie uruchomiona i zostanie wyświetlony następujący komunikat o błędach, w zależności od tego, jak próbujesz uruchomić usługę:

  • Korzystając z apletu Usługi:

    System Windows nie może uruchomić usługi SQL Server na komputerze lokalnym.
    Błąd 1069: Usługa nie została uruchomiona z powodu błędu logowania.

  • Za pomocą wiersza polecenia:

    Wystąpił błąd systemu 1069.
    Usługa nie została uruchomiona z powodu błędu logowania.

W dzienniku zdarzeń systemu mogą znajdować się komunikaty o identyfikatorze zdarzenia 7041 lub 7038.

Przyczyna

Ten problem występuje, ponieważ występuje problem z samym kontem usługi lub informacjami, które są obecnie zapisywane dla konta usługi.

Która rozdzielczość ma zastosowanie do identyfikatora zdarzenia

Użyj identyfikatora zdarzenia i tekstu błędu w dzienniku zdarzeń systemu, aby wybrać rozwiązanie:

Identyfikator zdarzenia Tekst błędu w zdarzeniu Resolution
7041 Niepowodzenie logowania: użytkownikowi nie przyznano żądanego typu logowania na tym komputerze. Rozwiązanie dla zdarzenia o identyfikatorze 7041
7038 Ten użytkownik nie może się zalogować, ponieważ to konto jest obecnie wyłączone. Konto jest wyłączone
7038 Przed zalogowaniem należy zmienić hasło użytkownika. Należy zmienić hasło
7038 Nazwa użytkownika lub hasło jest niepoprawne. Niepoprawne hasło lub flaga gMSA
7038 Przywoływane konto jest obecnie zablokowane i nie można się na nie zalogować. Konto jest zablokowane
7038 Określona domena nie istnieje lub nie można się z nią połączyć. Nie można skontaktować się z domeną

Rozwiązanie dla zdarzenia o identyfikatorze 7041

Wpis o identyfikatorze zdarzenia 7041 w dzienniku zdarzeń systemu może zawierać następujący komunikat o błędzie:

Niepowodzenie logowania: użytkownikowi nie przyznano żądanego typu logowania na tym komputerze.

Pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7041
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as NT Service\MSSQLSERVER with the currently configured password due to the following error:
Logon failure: the user has not been granted the requested logon type at this computer.

Service: MSSQLSERVER  
Domain and account: <AccountName>

This service account does not have the required user right "Log on as a service."

User Action

Assign "Log on as a service" to the service account on this computer. You can use Local Security Settings (Secpol.msc) to do this.
If this computer is a node in a cluster, check that this user right is assigned to the Cluster service account on all nodes in the cluster.

If you have already assigned this user right to the service account, and the user right appears to be removed,
check with your domain administrator to find out if a Group Policy object associated with this node might be removing the right.

Aby rozwiązać ten problem, sprawdź, które prawa użytkownika są przypisane do konta usługi programu SQL Server.

  1. Uruchom przystawkę Zasady zabezpieczeń lokalnych (secpol.msc).

  2. Rozwiń węzeł Zasady lokalne , a następnie wybierz pozycję Przypisanie praw użytkownika.

  3. Sprawdź, czy wymagane prawa użytkownika są przypisane do konta usługi, postępując zgodnie z instrukcjami w Uprawnienia i prawa systemu Windows. Ręcznie przypisz wszystkie brakujące uprawnienia.

  4. Sprawdź, czy konto usługi ma przypisane jakiekolwiek prawa użytkownika typu Odmowa. Usuń wszelkie prawa użytkownika typu Odmowa z konta usługi SQL Server, a następnie ponownie przetestuj.

    Jeśli na przykład konto usługi ma przypisane Odmowa logowania jako usługa wraz z SeServiceLogonRightSeDenyServiceLogonRight, cofnij SeDenyServiceLogonRight to prawo logowania i uruchom ponownie SQL Server.

Rozwiązanie dla zdarzenia o identyfikatorze 7038

W wpisach dziennika powiązanych ze zdarzeniem o identyfikatorze 7038 mogą znajdować się następujące komunikaty o błędach:

Ten użytkownik nie może się zalogować, ponieważ to konto jest obecnie wyłączone

Pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
This user can't sign in because this account is currently disabled.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Aby rozwiązać ten problem, użyj jednej z następujących metod w zależności od scenariusza:

  • Jeśli konto uruchamiania programu SQL Server jest kontem użytkownika lokalnego na komputerze, otwórz przystawkę Zarządzanie komputerem (compmgmt.msc) i sprawdź, czy konto usługi jest wyłączone w obszarze Użytkownicy i grupy lokalne. Jeśli konto jest wyłączone, włącz je i uruchom ponownie usługę SQL Server.

  • Jeśli konto uruchamiania programu SQL Server jest kontem domeny Windows, sprawdź, czy konto jest wyłączone w Użytkownicy i komputery usługi Active Directory. Jeśli konto jest wyłączone, włącz konto i uruchom ponownie usługę programu SQL Server.

Przed zalogowaniem się należy zmienić hasło użytkownika

Pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący wpis:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The user's password must be changed before signing in.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Aby rozwiązać ten problem, użyj jednej z następujących metod w zależności od scenariusza:

  • Jeśli konto uruchamiania SQL Server jest kontem użytkownika lokalnego na komputerze:

    1. Otwórz przystawkę Zarządzanie komputerem (compmgmt.msc).
    2. Wybierz pozycję Lokalni użytkownicy i grupy, a następnie wybierz pozycję Użytkownicy, aby zlokalizować konto.
    3. Kliknij dwukrotnie konto użytkownika, aby otworzyć jego właściwości.
    4. Wyczyść pole Użytkownik musi zmienić hasło przy następnym logowaniu dla konta startowego SQL Server i wybierz przycisk OK.
    5. Uruchom ponownie usługę programu SQL Server.
  • Jeśli konto uruchamiania SQL Server jest kontem domeny Windows:

    1. Otwórz Użytkownicy i komputery usługi Active Directory na kontrolerze domeny.
    2. Wybierz pozycję Użytkownicy pod właściwą domeną.
    3. Kliknij dwukrotnie konto domeny używane jako konto usługi SQL Server, aby otworzyć jego Właściwości.
    4. Przejdź do karty Konto, aby sprawdzić, czy opcja Użytkownik musi zmienić hasło przy następnym logowaniu jest włączona. Jeśli opcja jest włączona, wyczyść tę opcję lub zaloguj się interaktywnie na komputerze klienckim z systemem Windows, a następnie ustaw nowe hasło.
    5. Jeśli zmieniłeś hasło, zaktualizuj nowe hasło dla usługi SQL Server przy użyciu narzędzia SQL Server Configuration Manager.

Niepoprawna nazwa użytkownika lub hasło

W przypadku problemu z nieprawidłowym hasłem pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący wpis:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The user name or password is incorrect.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Aby rozwiązać ten problem, wykonaj następujące kroki:

Scenariusz 1. Nieprawidłowe hasło

Wpis komunikatu o błędzie wskazuje, że bieżąca nazwa logowania lub hasło jest niepoprawne. Aby sprawdzić i rozwiązać ten problem, wykonaj następujące kroki:

  1. Użyj opcji runas, aby przetestować poświadczenia konta usługi:

    1. Otwórz wiersz polecenia systemu Windows.

    2. Uruchom następujące polecenie:

      runas /user:<localmachine>\<SQLServiceAccount> cmd
      
  2. Jeśli polecenie powiedzie się, dokładnie wpisz te same poświadczenia w Menedżerze konfiguracji programu SQL Server, Usługach, usłudze SQL Server i To konto.

  3. Jeśli polecenie zakończy się niepowodzeniem i zgłosi ten sam problem, zresetuj hasło do logowania Windows.

  4. Jeśli konto uruchamiania programu SQL Server jest kontem użytkownika lokalnego na komputerze, otwórz przystawkę Zarządzanie komputerem (compmgmt.msc) i zresetuj hasło użytkownika lokalnego.

  5. Jeśli konto uruchamiania usługi SQL Server jest kontem domeny systemu Windows, otwórz Użytkownicy i komputery usługi Active Directory, a następnie zaktualizuj hasło dla konta w obszarze Użytkownicy. Po zaktualizowaniu poświadczeń wróć do SQL Server Configuration Manager, usług, programu SQL Server i wprowadź te same poświadczenia.

  6. Uruchom ponownie usługę SQL Server.

    Aby wpisać poprawne hasło dla konta usługi SQL Server na komputerze hosta SQL Server, wykonaj procedury z Usługi SCM — zmienianie hasła używanych kont.

Scenariusz 2. Flaga isManagedAccount usługi gMSA jest niepoprawnie ustawiona

Jeśli używasz konta usługi zarządzanego przez grupę (gMSA), aby uruchomić usługę SQL Server, a flaga IsManagedAccount dla danej usługi ma wartość false, może zostać wyświetlony identyfikator zdarzenia programu Service Control Manager 7038, gdy tylko sekret przechowywany w pamięci podręcznej jest nieprawidłowy.

Aby zidentyfikować i rozwiązać ten problem, wykonaj następujące kroki:

  1. Sprawdź, czy używane konto jest kontem gMSA. Kontynuuj tylko po potwierdzeniu gMSA.

    • Jeśli następujące polecenie powiedzie się względem konta, używasz konta usługi gMSA.
    • Jeśli wystąpi niepowodzenie z Cannot find an object with identity: 'account', konto usługi nie jest kontem gMSA.
    Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet
    

    Aby uzyskać więcej informacji, zobacz Sprawdź konto gMSA.

  2. Uruchom następujące polecenie w wierszu polecenia i sprawdź stan IsManagedAccount. Żądany wynik to true. Jeśli jest false, przejdź dalej.

    sc qmanagedaccount <YourSQLServiceName>
    

    Przykład nazwanej instancji programu SQL Server SQLPROD:

    sc qmanagedaccount MSSQL$SQLPROD
    
  3. Ustaw flagę na true zgodnie z potrzebami.

    sc managedaccount <YourSQLServiceName> TRUE
    

    Przykład nazwanej instancji programu SQL Server o nazwie SQLPROD:

    sc managedaccount MSSQL$SQLPROD TRUE
    
  4. Spróbuj ponownie uruchomić usługę.

Aby uzyskać więcej kroków rozwiązywania problemów specyficznych dla gMSA, zobacz Rozwiązywanie problemów z błędami uruchamiania usługi SQL Server za pomocą gMSA.

Przywoływane konto jest obecnie zablokowane i nie można się na nie zalogować

Pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The referenced account is currently locked out and may not be logged on to.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Aby rozwiązać ten problem, użyj jednej z następujących metod w zależności od scenariusza:

  • Jeśli konto uruchamiania SQL Server jest kontem użytkownika lokalnego na komputerze:

    1. Otwórz przystawkę Zarządzanie komputerem (compmgmt.msc) i przejdź do Użytkownicy i grupy lokalne. Następnie wybierz pozycję Użytkownicy.
    2. Usuń zaznaczenie pola wyboru Konto jest zablokowane dla konta startowego programu SQL Server w obszarze Lokalni użytkownicy i grupy i wybierz OK.
    3. Uruchom ponownie usługę programu SQL Server.
  • Jeśli konto uruchamiania SQL Server jest kontem domeny Windows:

    1. Otwórz Active Directory — użytkownicy i komputery na kontrolerze domeny.
    2. W obszarze Użytkownicy kliknij dwukrotnie konto uruchamiania programu SQL Server i przejdź do karty Konto.
    3. Sprawdź, czy konto jest oznaczone jako zablokowane.
    4. Jeśli konto jest zablokowane, zaznacz pole wyboru Odblokuj konto , a następnie wybierz przycisk OK. Ustaw silne hasło.
    5. Następnie użyj tych samych poświadczeń dla konfiguracji konta usługi programu SQL Server w programie SQL Server Configuration Manager, Services i SQL Server.
    6. Uruchom ponownie usługę SQL Server.

Określona domena nie istnieje lub nie można nawiązać połączenia z domeną

Pełny wpis komunikatu w dzienniku zdarzeń przypomina następujący:

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as xxx with the currently configured password due to the following error:
The specified domain either does not exist or could not be contacted.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Aby rozwiązać ten problem, użyj jednej z następujących metod w zależności od scenariusza:

  • Skonfiguruj opóźnione uruchamianie SQL Server dla określonych serwerów Windows, co gwarantuje, że inne usługi Windows, takie jak Netlogon, uruchomią się najpierw, a SQL Server uruchamia się bez problemów. Jest to domyślna konfiguracja programu SQL Setup, począwszy od programu SQL Server 2022.

  • Jeśli opcja opóźnionego uruchamiania nie rozwiąże problemu dla danego scenariusza, zmień opcje odzyskiwania dla usług SQL Server. Ustaw Uruchom ponownie usługę jako działanie dla opcji awarii. Wykonaj tę czynność z apletu Usługi w Narzędziach administracyjnych przy użyciu znanych interfejsów programu Service Control Manager.

    • Ta opcja nie jest zalecana w przypadku wystąpień klastra trybu failover SQL (FCI) lub grup dostępności (AG), ponieważ ustawienie może spowodować opóźnienia podczas automatycznych scenariuszy trybu failover.
  • Jeśli żadna z poprzednich opcji nie jest możliwa, skonfiguruj usługę SQL Server, aby mieć zależność od usługi Netlogon, uruchamiając następujące polecenie w konsoli wiersza polecenia z podwyższonym poziomem uprawnień:

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    Przykład nazwanej instancji programu SQL Server o nazwie SQLPROD:

    sc config MSSQL$SQLPROD depend=keyiso/netlogon