次の方法で共有


SQL Server サービスの起動時にエラー 1069 が発生する

SQL Server サービスの起動時にエラー 1069 が発生し、ログオンエラーが発生します。 この記事では、エラー 1069 関連のイベントの解決策について説明します。

元の製品バージョン: SQL Server
元の KB 番号: 282254

現象

Microsoft SQL Server またはSQL Server エージェントを再起動しようとすると、サービスが起動せず、サービスの開始方法に応じて次のエラー メッセージが表示されます。

  • サービス アプレットを使用する方法:

    Windows がローカル コンピューターで SQL Server サービスを開始できませんでした。
    エラー 1069: ログオンに失敗したため、サービスを開始できませんでした。

  • コマンド プロンプトを使用する方法:

    システム エラー 1069 が発生しました。
    ログオンエラーのため、サービスが開始されませんでした。

イベント ID 7041 または 7038 のメッセージがシステム イベント ログに記録されている場合があります。

原因

この問題は、サービス アカウント自体またはサービス アカウント用に現在保存されている情報に問題があるために発生します。

イベント ID 7041 の解決

システム イベント ログのイベント ID 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. ローカル セキュリティ ポリシー (Start -> Secpol.msc) を起動します。

  2. [ローカル ポリシー 展開し ユーザー権利の割り当て 選択

  3. Windows の特権と権限の手順に従って、必要なユーザー権限がサービス アカウントに割り当てられているかどうかを確認します。 不足しているアクセス許可を手動で割り当てます。

  4. サービス アカウントに Deny* アクセス許可が割り当てられているかどうかを確認します。 SQL サービス アカウントから Deny* アクセス許可を削除してから、再テストします。

    たとえば、サービス アカウントがサービスとしてログオン SeDenyServiceLogonRightサービスとしてログオンと共に割り当てられている場合 SeServiceLogonRightログオンのSeDenyServiceLogonRight権限を取り消し、SQL Server を再起動します。

イベント ID 7038 の解決

イベント ID 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 スタートアップ アカウントがコンピューター上のローカル ユーザー アカウントである場合は、*Computer Management (compmgmt.msc) を開き、サービス アカウントが Local Users and Groups で無効になっているかどうかを確認します。 無効になっている場合は、アカウントを有効にして、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. Computer Management (compmgmt.msc) を開きます。
    2. [ユーザーとグループを選択しユーザーを選択してアカウントを見つけます。
    3. ユーザー アカウントをダブルクリックして、その Propertiesを開きます。
    4. ユーザーは、次回ログオン時にパスワードを変更する必要があります SQL Server スタートアップ アカウントのプロパティをオフにして、OK キーを押します。
    5. SQL Server サービスを再起動します。
  • SQL Server スタートアップ アカウントが Windows ドメイン アカウントの場合:

    1. ドメイン コントローラーでActive Directory ユーザーとコンピューターを開きます。
    2. 適切なドメインの下にある Users を選択します。
    3. SQL Server サービス アカウントとして使用されるドメイン アカウントをダブルクリックして、 Properties を開きます。
    4. Account タブに移動してユーザーが次回ログオン時にパスワードを変更する必要があるかどうかを確認します有効になっています。 このオプションが有効になっている場合は、このオプションをオフにするか、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 構成マネージャーServicesSQL Server サービス、および This アカウントに同じ資格情報を慎重に入力

  3. コマンドが失敗し、同じ問題が報告された場合は、Windows ログオンのパスワードをリセットする必要があります。

  4. SQL Server スタートアップ アカウントがコンピューターのローカル ユーザー アカウントの場合は、 Computer Management (compmgmt.msc) を開き、ローカル ユーザーのパスワードをリセットします。

  5. SQL Server スタートアップ アカウントが Windows ドメイン アカウントの場合は、Active Directory ユーザーとコンピューターを開き、Users のアカウントのパスワードを更新します。 資格情報が更新されたら、SQL Server 構成マネージャーServicesSQL Server に戻り同じ資格情報を入力します。

  6. SQL Server サービスを再起動します。

    SQL Server ホスト コンピューター上の SQL Server サービス アカウントに正しいパスワードを入力するには、「 SCM サービス - 使用されるアカウントのパスワードの変更」の手順に従います。

シナリオ 2: gMSA IsManagedAccount フラグが正しく設定されていない

グループ管理サービス アカウント (gMSA) アカウントを使用して SQL Server サービスを実行し、指定されたサービスの IsManagedAccount フラグが false に設定されている場合は、キャッシュされたシークレットが無効になるとすぐに Service Control Manager イベント ID 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. Computer Management (compmgmt.msc) を開き、ローカル ユーザーとグループに移動します。 次に、 Users を選択します。
    2. [ユーザーとグループの割り当てで SQL Server スタートアップ アカウントの [ アカウントがロックアウト] チェック ボックスをオフにしOK 選択します
    3. SQL Server サービスを再起動します。
  • SQL Server スタートアップ アカウントが Windows ドメイン アカウントの場合:

    1. ドメイン コントローラーでActive Directory ユーザーとコンピューターを開きます。
    2. Usersで、SQL Server スタートアップ アカウントをダブルクリックし、Account タブに移動します。
    3. アカウントがロック済みとしてマークされているかどうかを確認します。
    4. アカウントがロックされている場合は、 [アカウントのロック解除 ] ボックスを選択し、[ OKを選択し、強力なパスワードを設定します。
    5. 次に、SQL Server 構成マネージャーServices、および 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).

この問題を解決するには、シナリオに基づいて次のいずれかの方法を使用します。

  • 特定の Windows サーバーに対して SQL Server の起動を遅延開始するように構成します。これにより、NetLogon などの他の Windows サービスが最初に完了し、SQL Server が問題なく起動します。 これは、SQL Server 2022 以降の SQL セットアップの既定の構成です。

  • 遅延開始オプションがシナリオの問題に対処しない場合は、SQL Server サービスの回復オプションを変更することもできます。 エラー オプションのアクションとして、"サービスの再起動" を指定します。 このオプションは、使い慣れたサービス コントロール マネージャー インターフェイスを使用して、管理ツールの [サービス] アプレットから実行できます。

    • このオプションは、SQL フェールオーバー クラスター インスタンス (FCI) または可用性グループ (AG) には推奨されません。このオプションを設定すると、自動フェールオーバー シナリオ中に遅延が発生する可能性があります。
  • 上記のいずれのオプションも実行できない場合は、管理者特権のコマンド ライン コンソールで次のコマンドを使用して、SQL Server サービスを構成して NETLOGON サービスに依存させることができます。

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    SQL Server 名前付きインスタンス SQLPROD の例:

    sc config MSSQL$SQLPROD depend=keyiso/netlogon