Поделиться через


Ошибка 1069 возникает при запуске службы SQL Server

При запуске службы SQL Server возникает ошибка 1069, которая приводит к сбою входа. В этой статье приводятся разрешения для связанных событий ошибки 1069.

Исходная версия продукта: SQL Server
Исходный номер базы знаний: 282254

Симптомы

При попытке перезапустить Microsoft SQL Server или агент SQL Server служба не запускается, и вы получите следующие сообщения об ошибках в зависимости от способа запуска службы:

  • Используя applet служб, выполните следующие действия.

    Windows не удалось запустить службу SQL Server на локальном компьютере.
    Ошибка 1069: служба не запускалась из-за сбоя входа.

  • С помощью командной строки:

    Произошла системная ошибка 1069.
    Служба не была запущена из-за сбоя входа.

Вы можете найти сообщения с идентификатором события 7041 или 7038, вошедшего в журнал системных событий.

Причина

Эта проблема возникает из-за проблемы либо с самой учетной записью службы, либо с информацией, которая в настоящее время сохраняется для учетной записи службы.

Разрешение для идентификатора события 7041

Запись с идентификатором события 7041 в журнале событий системы может содержать следующее сообщение об ошибке:

Вход в систему не произведен: выбранный режим входа для данного пользователя на этом компьютере не предусмотрен

Полная запись сообщения в журнале событий похожа на следующую:

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.

Чтобы устранить эту проблему, проверьте, какие права пользователя назначены учетной записи службы SQL Server.

  1. Запустите локальную политику безопасности (пуск —> Secpol.msc).

  2. Разверните локальную политику и выберите назначение прав пользователя.

  3. Убедитесь, что необходимые права пользователя назначены учетной записи службы, следуя инструкциям в разделе "Привилегии и права Windows". Вручную назначьте отсутствующие разрешения.

  4. Проверьте, назначена ли учетная запись службы разрешения Deny*. Удалите все разрешения Deny* из учетной записи службы SQL, а затем повторите тестирование.

    Например, если учетная запись службы была назначена запретить вход в качестве службы SeServiceLogonRightвместе со службойSeDenyServiceLogonRight, отмените SeDenyServiceLogonRight право входа в систему и перезапустите SQL Server.

Разрешение для идентификатора события 7038

В записях журнала, относящихся к идентификатору события 7038, можно найти следующие сообщения об ошибках:

Этот пользователь не может войти, так как эта учетная запись в настоящее время отключена

Полная запись сообщения в журнале событий похожа на следующую:

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).

Чтобы устранить эту проблему, используйте один из следующих методов на основе сценария:

  • Если учетная запись запуска SQL Server является учетной записью локального пользователя на компьютере, откройте *Управление компьютерами (compmgmt.msc) и проверьте, отключена ли учетная запись службы в локальных пользователях и группах. Если она отключена, включите учетную запись и перезапустите службу SQL Server.

  • Если учетная запись запуска SQL Server является учетной записью домена Windows, проверьте, отключена ли учетная запись в Пользователи и компьютеры Active Directory. Если она отключена, включите учетную запись и перезапустите службу SQL Server.

Перед входом необходимо изменить пароль пользователя.

Полная запись сообщения в журнале событий похожа на следующую:

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).

Чтобы устранить эту проблему, используйте один из следующих методов на основе сценария:

  • Если учетная запись запуска SQL Server является локальной учетной записью пользователя на компьютере:

    1. Откройте управление компьютерами (compmgmt.msc).
    2. Выберите локальные пользователи и группы , а затем выберите "Пользователи ", чтобы найти учетную запись.
    3. Дважды щелкните учетную запись пользователя, чтобы открыть ее свойства.
    4. Снимите пароль пользователя при следующем свойстве входа в учетную запись запуска SQL Server и нажмите кнопку ОК.
    5. Перезапустите службу SQL Server.
  • Если учетная запись запуска SQL Server является учетной записью домена Windows:

    1. Откройте Пользователи и компьютеры Active Directory на контроллере домена.
    2. Выберите пользователей в правильном домене.
    3. Дважды щелкните учетную запись домена, используемую в качестве учетной записи службы SQL Server, чтобы открыть его свойства.
    4. Перейдите на вкладку "Учетная запись" , чтобы проверить, должен ли пользователь изменить пароль при следующем входе . Если этот параметр включен, удалите этот параметр или войдите в интерактивном режиме на клиентском компьютере Windows, а затем задайте новый пароль.
    5. Если вы изменили пароль, обновите новый пароль для службы SQL Server с помощью средства диспетчер конфигурации SQL Server.

Неправильное имя пользователя или пароль

В случае неправильной проблемы с паролем полная запись сообщения в журнале событий похожа на следующую:

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).

Чтобы устранить проблему, выполните указанные ниже действия.

Сценарий 1. Неправильный пароль

Запись сообщения об ошибке указывает на то, что неправильно указано текущее имя для входа или пароль. Чтобы проверить и устранить проблему, выполните следующие действия.

  1. runas Используйте параметр для проверки учетных данных учетной записи службы:

    1. Откройте командную строку Windows.

    2. Выполните следующую команду:

      runas /user:<localmachine>\<SQLSerivceAccount> cmd
      
  2. Если команда выполнена успешно, тщательно введите те же учетные данные в диспетчер конфигурации SQL Server, Службах, службе SQL Server и этой учетной записи.

  3. Если команда завершается ошибкой и сообщает о той же проблеме, необходимо сбросить пароль для входа в Систему Windows.

  4. Если учетная запись запуска SQL Server является учетной записью локального пользователя на компьютере, откройте службу управления компьютерами (compmgmt.msc) и сбросьте пароль локального пользователя.

  5. Если учетная запись запуска SQL Server является учетной записью домена Windows, откройте Пользователи и компьютеры Active Directory, а затем обновите пароль для учетной записи в разделе "Пользователи". После обновления учетных данных вернитесь к диспетчер конфигурации SQL Server, службам, SQL Server и введите те же учетные данные.

  6. Перезапустите службу SQL Server.

    Чтобы ввести правильный пароль в учетной записи службы SQL Server на хост-компьютере SQL Server, выполните процедуры из служб SCM. Измените пароль используемых учетных записей.

Сценарий 2. Флаг isManagedAccount isManagedAccount установлен неправильно

Если вы используете учетную запись управляемой службы группы (gMSA) для запуска службы SQL Server, а IsManagedAccount флаг для данной службы имеет значение false, вы можете получить идентификатор события Service Control Manager 7038, как только кэшированный секрет недопустим.

Чтобы определить и устранить проблему, выполните следующие действия.

  1. Убедитесь, что используемая учетная запись является учетной записью gMSA. Продолжайте только после подтверждения gMSA.

    • Если следующая команда успешно выполняется в учетной записи, вы используете учетную запись gMSG.
    • Если это не удается, Cannot find an object with identity: 'account'учетная запись службы не является учетной записью gMSA.
    Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet
    

    Дополнительные сведения см. в разделе "Проверка учетной записи gMSA".

  2. Выполните следующую команду в командной строке и проверьте состояние IsManagedAccount. Требуемый результат является истинным. Если значение равно false, перейдите дальше.

    sc qmanagedaccount <YourSQLServiceName>
    

    Пример для SQL Server с именем экземпляра SQLPROD:

    sc qmanagedaccount MSSQL$SQLPROD
    
  3. Задайте для флага значение true по мере необходимости.

    sc managedaccount <YourSQLServiceName> TRUE
    

    Пример для SQL Server с именем экземпляра SQLPROD:

    sc managedaccount MSSQL$SQLPROD TRUE
    
  4. Повторите попытку запуска службы.

Указанная учетная запись в настоящее время заблокирована и может не входить в систему.

Полная запись сообщения в журнале событий похожа на следующую:

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).

Чтобы устранить эту проблему, используйте один из следующих методов на основе сценария:

  • Если учетная запись запуска SQL Server является локальной учетной записью пользователя на компьютере:

    1. Откройте службу управления компьютерами (compmgmt.msc) и перейдите к локальным пользователям и группам. Затем выберите "Пользователи".
    2. Снимите флажок "Заблокированная учетная запись" для учетной записи запуска SQL Server в разделе "Локальные пользователи и группы" и нажмите кнопку "ОК".
    3. Перезапустите службу SQL Server.
  • Если учетная запись запуска SQL Server является учетной записью домена Windows:

    1. Откройте Пользователи и компьютеры Active Directory на контроллере домена.
    2. В разделе "Пользователи" дважды щелкните учетную запись запуска SQL Server и перейдите на вкладку "Учетная запись ".
    3. Проверьте, помечена ли учетная запись как заблокированная.
    4. Если учетная запись заблокирована, выберите поле "Разблокировать учетную запись " и нажмите кнопку "ОК", задайте надежный пароль.
    5. Затем используйте те же учетные данные для конфигурации учетной записи службы SQL Server в диспетчер конфигурации SQL Server, службах и SQL Server.
    6. Перезапустите службу SQL Server.

Указанный домен либо не существует, либо не удалось связаться

Полная запись сообщения в журнале событий похожа на следующую:

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).

Чтобы устранить эту проблему, используйте один из следующих методов на основе сценария:

  • Настройте запуск SQL Server для отложенного запуска для определенных серверов Windows, что гарантирует выполнение других служб Windows, таких как NetLogon, сначала и SQL Server запускается без проблем. Это конфигурация по умолчанию при установке SQL, начиная с SQL Server 2022.

  • Если параметр отложенного запуска не удается устранить проблему для вашего сценария, альтернативным вариантом является изменение параметров восстановления для служб SQL Server. Укажите "Перезапустить службу" в качестве действия для параметров сбоя. Это можно сделать в приложении "Службы" средств администрирования с помощью привычных интерфейсов диспетчера служб.

    • Этот параметр не рекомендуется использовать для экземпляров отказоустойчивого кластера SQL (FCIs) или групп доступности (AG), так как это может привести к задержкам в сценариях автоматической отработки отказа.
  • Если ни из предыдущих параметров не существует возможности, можно настроить службу SQL Server для зависимости от службы NETLOGON с помощью следующей команды в консоли командной строки с повышенными привилегиями:

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    Пример для SQL Server с именем экземпляра SQLPROD:

    sc config MSSQL$SQLPROD depend=keyiso/netlogon