Udostępnij za pomocą


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

Podczas uruchamiania usługi SQL Server występuje błąd 1069, co powoduje niepowodzenie logowania. Ten artykuł zawiera rozwiązania dotyczące zdarzeń związanych z błędem 1069.

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 282254

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ę:

  • Za pomocą apletu Usługi:

    System Windows nie może uruchomić usługi PROGRAMU 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.

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 zasady zabezpieczeń lokalnych (Uruchom —> 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 temacie Uprawnienia i prawa systemu Windows. Ręcznie przypisz wszystkie brakujące uprawnienia.

  4. Sprawdź, czy do konta usługi przypisano jakiekolwiek uprawnienia Odmów*. Usuń wszystkie uprawnienia Odmów* z konta usługi SQL, a następnie ponownie przetestuj.

    Jeśli na przykład konto usługi zostało przypisane Odmowa logowania jako usługa wraz z logowaniem jako usługąSeDenyServiceLogonRightSeServiceLogonRight, odwołaj SeDenyServiceLogonRight prawo logowania i uruchom ponownie program SQL Server.

Rozwiązanie dla zdarzenia o identyfikatorze 7038

W wpisach dziennika, które są powiązane ze zdarzeniem o identyfikatorze 7038, mogą zostać wyświetlone 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 plik *Zarządzanie komputerem (compmgmt.msc) i sprawdź, czy konto usługi jest wyłączone w obszarze Użytkownicy i grupy lokalne. Jeśli to ustawienie jest wyłączone, włącz konto i uruchom ponownie usługę programu SQL Server.

  • Jeśli konto uruchamiania programu SQL Server jest kontem domeny systemu Windows, sprawdź, czy konto jest wyłączone w Użytkownicy i komputery usługi Active Directory. Jeśli to ustawienie 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:

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 programu SQL Server jest kontem użytkownika lokalnego na komputerze:

    1. Otwórz przystawkę Zarządzanie komputerem (compmgmt.msc).
    2. Wybierz pozycję Użytkownicy i grupy lokalne, 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 User must change password at next logon property for SQL Server Startup Account (Użytkownik musi zmienić hasło przy następnym logowaniu dla konta startowego programu SQL Server) i naciśnij przycisk OK.
    5. Uruchom ponownie usługę programu SQL Server.
  • Jeśli konto uruchamiania programu SQL Server jest kontem domeny systemu Windows:

    1. Otwórz Użytkownicy i komputery usługi Active Directory na kontrolerze domeny.
    2. Wybierz pozycję Użytkownicy w odpowiedniej domenie.
    3. Kliknij dwukrotnie konto domeny, które jest używane jako konto usługi programu SQL Server, aby otworzyć jego właściwości.
    4. Przejdź do karty Konto, aby sprawdzić, czy użytkownik musi zmienić hasło przy następnym logowaniu jest włączony. 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 zmieniono hasło, zaktualizuj nowe hasło dla usługi PROGRAMU SQL Server przy użyciu narzędzia SQL Server Configuration Manager .

Niepoprawna nazwa użytkownika lub hasło

W przypadku nieprawidłowego problemu z hasłem 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 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 obecnie ustawiona nazwa logowania lub hasło są niepoprawne. Aby sprawdzić i rozwiązać ten problem, wykonaj następujące kroki:

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

    1. Otwórz wiersz polecenia systemu Windows.

    2. Uruchom następujące polecenie:

      runas /user:<localmachine>\<SQLSerivceAccount> 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 tym koncie.

  3. Jeśli polecenie zakończy się niepowodzeniem i zgłosi ten sam problem, musisz zresetować hasło logowania systemu 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 programu 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 Menedżera konfiguracji programu SQL Server, usług, programu SQL Server i wprowadź te same poświadczenia.

  6. Uruchom ponownie usługę SQL Server.

    Aby wpisać poprawne hasło na koncie usługi programu SQL Server na komputerze hosta programu SQL Server, wykonaj procedury z usług SCM — zmień hasło używanego konta.

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ę programu SQL Server, a IsManagedAccount flaga dla danej usługi ma wartość false, może zostać wyświetlony identyfikator zdarzenia programu Service Control Manager 7038, gdy tylko wpis tajny 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 konta zarządzanego przez usługę .

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

    Aby uzyskać więcej informacji, zobacz Sprawdzanie konta gMSA.

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

    sc qmanagedaccount <YourSQLServiceName>
    

    Przykład wystąpienia sql o nazwie SQLPROD:

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

    sc managedaccount <YourSQLServiceName> TRUE
    

    Przykład wystąpienia sql o nazwie SQLPROD:

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

Przywoływane konto jest obecnie zablokowane i może nie być zalogowane do

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 programu SQL Server jest kontem użytkownika lokalnego na komputerze:

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

    1. Otwórz Użytkownicy i komputery usługi Active Directory 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, wybierz pole Odblokuj konto i 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 się z tym skontaktować

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 uruchamianie programu SQL Server w celu opóźnienia uruchamiania dla określonych serwerów z systemem Windows, co zapewnia, że inne usługi systemu Windows, takie jak NetLogon, zostały ukończone jako pierwsze, a program SQL Server zostanie uruchomiony 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, alternatywną opcją jest zmiana opcji odzyskiwania dla usług programu SQL Server. Określ opcję "Uruchom ponownie usługę" jako akcję dla opcji niepowodzenia. Tę opcję można wykonać z apletu Usługi Narzędzi administracyjnych przy użyciu znanych interfejsów Menedżera kontroli usług.

    • Ta opcja nie jest zalecana w przypadku wystąpień klastra trybu failover SQL 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, możesz skonfigurować usługę SQL Server tak, aby miała zależność od usługi NETLOGON przy użyciu następującego polecenia w konsoli wiersza polecenia z podwyższonym poziomem uprawnień:

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    Przykład wystąpienia sql o nazwie SQLPROD:

    sc config MSSQL$SQLPROD depend=keyiso/netlogon