El error 1069 se produce al iniciar el servicio SQL Server

Versión del producto original: SQL Server
Número de KB original: 282254

Summary

Error 1069: "El servicio no se inició debido a un error de inicio de sesión", se produce cuando el servicio SQL Server o Agente SQL Server no puede iniciar sesión con su cuenta de servicio configurada. En este artículo se explica cómo resolver el error 1069 cuando las entradas del registro de eventos del sistema muestran el identificador de evento de Service Control Manager 7041 o el identificador de evento 7038. Las causas incluyen la ausencia del derecho "Iniciar sesión como servicio", una cuenta deshabilitada o bloqueada, una contraseña expirada o incorrecta, y un dominio que no es accesible durante el inicio.

Síntomas

Al intentar reiniciar Microsoft SQL Server o el Agente SQL Server, el servicio no se inicia y recibe los siguientes mensajes de error, en función de cómo intente iniciar el servicio:

  • Usando el applet Services:

    Windows no pudo iniciar el servicio SQL Server en el equipo local.
    Error 1069: El servicio no se inició debido a un error de inicio de sesión.

  • Mediante un símbolo del sistema:

    Error del sistema 1069.
    El servicio no se inició debido a un error de inicio de sesión.

Es posible que encuentre mensajes con el identificador de evento 7041 o 7038 registrado en el registro de eventos del sistema.

Causa

Este problema se produce porque hay un problema o bien con la propia cuenta de servicio o bien con la información que se guarda actualmente para la cuenta de servicio.

¿Qué resolución se aplica a tu identificador de evento?

Use el identificador de evento y el texto de error en el registro de eventos del sistema para seleccionar la resolución:

Id. del evento Texto de error en el evento Resolution
7041 Error de inicio de sesión: el usuario no tiene permisos para el tipo de inicio de sesión solicitado en este equipo. Resolución del identificador de evento 7041
7038 Este usuario no puede iniciar sesión porque esta cuenta está deshabilitada actualmente. La cuenta está deshabilitada
7038 La contraseña del usuario debe cambiarse antes de iniciar sesión. Se debe cambiar la contraseña
7038 El nombre de usuario o la contraseña son incorrectos. Contraseña incorrecta o indicador gMSA
7038 La cuenta a la que se hace referencia está bloqueada actualmente y no se puede iniciar sesión con ella. La cuenta está bloqueada
7038 El dominio especificado no existe o no se pudo establecer contacto con él. No se puede contactar con el dominio

Resolución del identificador de evento 7041

La entrada con el identificador de evento 7041 en el registro de eventos del sistema puede contener el siguiente mensaje de error:

Error de inicio de sesión: el usuario no tiene permisos para el tipo de inicio de sesión solicitado en este equipo.

La entrada de mensaje completa en el registro de eventos es similar a la siguiente:

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.

Para corregir este problema, compruebe qué derechos de usuario se asignan a la cuenta de servicio de SQL Server.

  1. Inicie el complemento Directiva de seguridad local (secpol.msc).

  2. Expanda Directivas locales y, a continuación, seleccione Asignación de derechos de usuario.

  3. Compruebe que los derechos de usuario necesarios se asignan a la cuenta de servicio siguiendo las instrucciones de privilegios y derechos de Windows. Asigne manualmente los permisos que faltan.

  4. Compruebe si a la cuenta de servicio se le asignan derechos de usuario de Denegar. Quite los derechos Denegar de usuario de la cuenta de servicio de SQL Server y vuelva a probar.

    Por ejemplo, si a la cuenta de servicio se le asigna Denegar inicio de sesión como servicioSeDenyServiceLogonRight junto con Iniciar sesión como servicioSeServiceLogonRight, revoque el SeDenyServiceLogonRight derecho de inicio de sesión y reinicie SQL Server.

Solución para el identificador de evento 7038

En las entradas de registro relacionadas con el identificador de evento 7038, es posible que encuentre los siguientes mensajes de error:

Este usuario no puede iniciar sesión porque esta cuenta está deshabilitada actualmente

La entrada de mensaje completa en el registro de eventos es similar a la siguiente:

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

Para corregir este problema, use uno de los métodos siguientes en función de su escenario:

  • Si la cuenta de inicio de SQL Server es una cuenta de usuario local en el equipo, abra Administración de equipos (compmgmt.msc) y compruebe si la cuenta de servicio está deshabilitada en Usuarios y grupos locales. Si está deshabilitado, habilite la cuenta y reinicie el servicio SQL Server.

  • Si la cuenta de inicio de SQL Server es una cuenta de dominio de Windows, compruebe si la cuenta está deshabilitada en Usuarios y equipos de Active Directory. Si está deshabilitado, habilite la cuenta y reinicie el servicio SQL Server.

La contraseña del usuario debe cambiarse antes de iniciar sesión.

La entrada de mensaje completa en el registro de eventos es similar a la siguiente:

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

Para corregir este problema, use uno de los métodos siguientes en función de su escenario:

  • Si la cuenta de inicio de SQL Server es una cuenta de usuario local en el equipo:

    1. Abra Administración de equipos (compmgmt.msc).
    2. Seleccione Usuarios y grupos locales y, a continuación, seleccione Usuarios para buscar la cuenta.
    3. Haga doble clic en la cuenta de usuario para abrir sus propiedades.
    4. Desactive la propiedad El usuario debe cambiar la contraseña en el siguiente inicio de sesión para la cuenta de inicio de SQL Server y seleccione Aceptar.
    5. Reinicie el servicio SQL Server.
  • Si la cuenta de inicio de SQL Server es una cuenta de dominio Windows:

    1. Abra Usuarios y equipos de Active Directory en un controlador de dominio.
    2. Seleccione Usuarios bajo el dominio correcto.
    3. Haga doble clic en la cuenta de dominio que se usa como una cuenta de servicio de SQL Server para abrir sus propiedades.
    4. Vaya a la pestaña Cuenta para comprobar si El usuario debe cambiar la contraseña en el próximo inicio de sesión está habilitado. Si la opción está habilitada, desactive esta opción o inicie sesión de forma interactiva en un equipo cliente windows y, a continuación, establezca una nueva contraseña.
    5. Si ha cambiado la contraseña, actualice la nueva contraseña del servicio SQL Server mediante la herramienta Administrador de configuración de SQL Server.

El nombre de usuario o la contraseña son incorrectos

Para un problema de contraseña incorrecto, la entrada de mensaje completa en el registro de eventos es similar a la siguiente entrada:

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

Siga estos pasos para solucionar este problema:

Escenario 1: Contraseña incorrecta

La entrada del mensaje de error indica que el nombre de inicio de sesión actual o la contraseña establecida es incorrecto. Para comprobar y resolver el problema, siga estos pasos:

  1. Utilice la opción runas para probar las credenciales de la cuenta de servicio:

    1. Abra un símbolo del sistema de Windows.

    2. Ejecute el siguiente comando:

      runas /user:<localmachine>\<SQLServiceAccount> cmd
      
  2. Si el comando se ejecuta correctamente, escriba cuidadosamente las mismas credenciales en Administrador de configuración de SQL Server, Servicios, servicio SQL Server y Esta cuenta.

  3. Si el comando falla e informa del mismo problema, restablezca la contraseña de inicio de sesión de Windows.

  4. Si la cuenta de inicio de SQL Server es una cuenta de usuario local en el equipo, abra Administración de equipos (compmgmt.msc) y restablezca la contraseña del usuario local.

  5. Si la cuenta de inicio de SQL Server es una cuenta de dominio de Windows, abra Usuarios y equipos de Active Directory y actualice la contraseña de la cuenta en Usuarios. Una vez actualizadas las credenciales, vuelva al Administrador de configuración de SQL Server, Servicios, SQL Server y escriba las mismas credenciales.

  6. Reinicie el servicio SQL Server.

    Para introducir la contraseña correcta de la cuenta de servicio de SQL Server en el equipo host de SQL Server, siga los procedimientos de SCM Services: cambiar la contraseña de las cuentas usadas.

Escenario 2: la marca IsManagedAccount de gMSA se establece incorrectamente

Si usa una cuenta de servicio administrada de grupo (gMSA) para ejecutar el servicio SQL Server y la IsManagedAccount marca del servicio determinado está establecida en false, es posible que reciba un identificador de evento de Service Control Manager 7038 en cuanto el secreto almacenado en caché no sea válido.

Para identificar y resolver el problema, siga estos pasos:

  1. Compruebe que la cuenta que usa es una cuenta de gMSA. Continúe solo después de confirmar gMSA.

    • Si el siguiente comando se ejecuta correctamente con la cuenta, usa una cuenta gMSA.
    • Si falla con Cannot find an object with identity: 'account', la cuenta de servicio no es una cuenta de gMSA.
    Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet
    

    Para obtener más información, consulte Comprobar la cuenta de gMSA.

  2. Ejecute el siguiente comando en el símbolo del sistema y compruebe el estado de IsManagedAccount. El resultado deseado es true. Si es false, continúe a continuación.

    sc qmanagedaccount <YourSQLServiceName>
    

    Ejemplo de una instancia de SQL Server denominada SQLPROD:

    sc qmanagedaccount MSSQL$SQLPROD
    
  3. Establezca el indicador en true según se desee.

    sc managedaccount <YourSQLServiceName> TRUE
    

    Ejemplo de una instancia de SQL Server denominada SQLPROD:

    sc managedaccount MSSQL$SQLPROD TRUE
    
  4. Intente volver a iniciar el servicio.

Para obtener más pasos de solución de problemas específicos de gMSA, consulte Solución de problemas de errores de inicio del servicio SQL Server con GMSA.

La cuenta a la que se hace referencia está bloqueada actualmente y es posible que no se pueda iniciar sesión en ella.

La entrada de mensaje completa en el registro de eventos es similar a la siguiente:

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

Para corregir este problema, use uno de los métodos siguientes en función de su escenario:

  • Si la cuenta de inicio de SQL Server es una cuenta de usuario local en el equipo:

    1. Abra Administración de equipos (compmgmt.msc) y vaya a Usuarios y grupos locales. A continuación, seleccione Usuarios.
    2. Desactive la casilla La cuenta está bloqueada para la cuenta de inicio de SQL Server en Usuarios y grupos locales y seleccione Aceptar.
    3. Reinicie el servicio SQL Server.
  • Si la cuenta de inicio de SQL Server es una cuenta de dominio Windows:

    1. Abra Usuarios y equipos de Active Directory en el controlador de dominio.
    2. En Usuarios, haga doble clic en la cuenta de inicio de SQL Server y vaya a la pestaña Cuenta .
    3. Compruebe si la cuenta está marcada como bloqueada.
    4. Si la cuenta está bloqueada, active la casilla Desbloquear cuenta y, a continuación, seleccione Aceptar. Establezca una contraseña segura.
    5. A continuación, use las mismas credenciales para configurar la cuenta de servicio de SQL Server en Administrador de configuración de SQL Server, Servicios y SQL Server.
    6. Reinicie el servicio SQL Server.

El dominio especificado no existe o no se pudo establecer contacto con él

La entrada de mensaje completa en el registro de eventos es similar a la siguiente:

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

Para corregir este problema, use uno de los métodos siguientes en función de su escenario:

  • Configure el inicio de SQL Server como inicio retrasado en determinados servidores Windows, lo que garantiza que otros servicios de Windows como Netlogon se completen primero y que SQL Server se inicie sin problemas. Esta es la configuración predeterminada por el programa de instalación de SQL a partir de SQL Server 2022.

  • Si la opción de inicio retrasado no soluciona el problema de su escenario, cambie las opciones de recuperación de los servicios de SQL Server. Especifique Reiniciar el servicio como acción para las opciones en caso de error. Realice esta tarea desde la aplicación Servicios de Herramientas administrativas mediante las conocidas interfaces de Service Control Manager.

    • Esta opción no se recomienda para instancias de clúster de conmutación por error (FCI) de SQL o grupos de disponibilidad (AG), ya que esta opción podría dar lugar a retrasos durante escenarios de conmutación automática por error.
  • Si ninguna de las opciones anteriores es factible, configure el servicio SQL Server para tener una dependencia en el servicio Netlogon mediante la ejecución del siguiente comando en una consola de línea de comandos con privilegios elevados:

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    Ejemplo de una instancia de SQL Server denominada SQLPROD:

    sc config MSSQL$SQLPROD depend=keyiso/netlogon