元の製品バージョン: SQL Server
元の KB 番号: 282254
Summary
エラー 1069「ログオンの失敗が原因でサービスが開始されませんでした」は、SQL Server または SQL Server エージェント サービスが構成されたサービス アカウントを使用してサインインできない場合に発生します。 この記事では、システム イベント ログ エントリに Service Control Manager イベント ID 7041 またはイベント ID 7038 が表示されている場合のエラー 1069 を解決する方法について説明します。 原因には、"サービスとしてのログオン" 権限の不足、無効またはロックされたアカウント、期限切れまたは正しくないパスワード、および起動時に到達できないドメインが含まれます。
症状
Microsoft SQL Server またはSQL Server エージェントを再起動しようとすると、サービスが起動せず、サービスの開始方法に応じて次のエラー メッセージが表示されます。
サービス アプレットを使用すると:
Windows がローカル コンピューターで SQL Server サービスを開始できませんでした。
エラー 1069: ログオンに失敗したため、サービスを開始できませんでした。コマンド プロンプトを使用して:
システム エラー 1069 が発生しました。
ログオンエラーのため、サービスが開始されませんでした。
イベント ID 7041 または 7038 のメッセージがシステム イベント ログに記録されている場合があります。
原因
この問題は、サービス アカウント自体またはサービス アカウント用に現在保存されている情報に問題があるために発生します。
イベント ID に適用される解像度
システム イベント ログのイベント ID とエラー テキストを使用して、対処方法を選択してください。
| イベント ID | イベントのエラー テキスト | Resolution |
|---|---|---|
| 7041 | ログオン失敗: このコンピューター上では、要求された種類のログオンは、ユーザーに許可されていません。 | イベント ID 7041 の解決 |
| 7038 | このアカウントは現在無効になっているため、このユーザーはサインインできません。 | アカウントは無効です |
| 7038 | サインインする前に、ユーザーのパスワードを変更する必要があります。 | パスワードを変更する必要がある |
| 7038 | ユーザー名またはパスワードが間違っている。 | パスワードまたは gMSA フラグが正しくありません |
| 7038 | 参照されているアカウントは現在ロックアウトされており、ログオンできない可能性があります。 | アカウントがロックアウトされています |
| 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 サービス アカウントに割り当てられているユーザー権限を確認します。
ローカル セキュリティ ポリシー スナップイン (
secpol.msc) を起動します。[ ローカル ポリシー ] を展開し、[ ユーザー権利の割り当て ] を選択します。
Windows の特権と権限 の手順に従って、必要なユーザー権限がサービス アカウントに割り当てられていることを確認します。 不足しているアクセス許可を手動で割り当てます。
サービス アカウントに 拒否に設定されたユーザー権利が割り当てられているかどうかを確認します。 SQL Server サービス アカウントから拒否のユーザー権限をすべて削除してから、再テストします。
たとえば、サービス アカウントにサービスとしてのログオンの拒否が割り当てられている場合、サービスとしてログオン
SeServiceLogonRightとともにSeDenyServiceLogonRightそのログオン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) を開き、ローカル ユーザーとグループでサービス アカウントが無効になっているかどうかを確認します。 無効になっている場合は、アカウントを有効にして、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スタートアップ アカウントがコンピューター上のローカル ユーザー アカウントの場合:
- Computer Management (compmgmt.msc) を開きます。
- ローカル ユーザーとグループを選択し、次にユーザーを選択してアカウントを見つけます。
- ユーザー アカウントをダブルクリックして、そのプロパティを開きます。
- SQL Serverスタートアップ アカウントの[次回ログオン時にユーザーがパスワードを変更する必要がある]プロパティのチェックを外し、[OK]を選択します。
- SQL Server サービスを再起動してください。
SQL Serverスタートアップ アカウントが Windows ドメイン アカウントの場合:
- ドメイン コントローラーでActive Directory ユーザーとコンピューターを開きます。
- 適切なドメインの下でUsersを選択します。
- SQL Server サービス アカウントとして使用するドメイン アカウントをダブルクリックして、そのプロパティを開きます。
- Account タブに移動して、ユーザーは次回ログオン時にパスワードを変更する必要がある が有効になっているか確認します。 このオプションが有効になっている場合は、このオプションをオフにするか、Windows クライアント コンピューターに対話形式でサインインしてから、新しいパスワードを設定してください。
- パスワードを変更した場合は、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: パスワードが正しくない
エラー メッセージ エントリは、現在のサインイン名または設定されたパスワードが正しくないことを示します。 問題を確認して解決するには、次の手順に従います。
runasオプションを使用して、サービス アカウントの資格情報をテストします。Windows コマンド プロンプトを開きます。
次のコマンドを実行してください:
runas /user:<localmachine>\<SQLServiceAccount> cmd
コマンドが成功した場合は、SQL Server 構成マネージャー、Services、SQL Server サービス、および このアカウント に同じ資格情報を慎重に入力します。
コマンドが失敗し、同じ問題が報告された場合は、Windows サインインのパスワードをリセットしてください。
SQL Server スタートアップ アカウントがコンピューターのローカル ユーザー アカウントの場合は、コンピューターの管理 (compmgmt.msc) を開き、ローカル ユーザーのパスワードをリセットします。
SQL Server スタートアップ アカウントが Windows ドメイン アカウントの場合は、Active Directory ユーザーとコンピューターを開き、Users のアカウントのパスワードを更新します。 資格情報が更新されたら、SQL Server 構成マネージャー、Services、SQL Server に戻り、同じ資格情報を入力してください。
SQL Server サービスを再起動します。
SQL Server ホスト コンピューター上の SQL Server サービス アカウントに正しいパスワードを入力するには、「 SCM サービス - 使用されるアカウントのパスワードの変更」の手順に従います。
シナリオ 2: gMSA IsManagedAccount フラグが正しく設定されていない
グループ管理サービス アカウント (gMSA) を使用して SQL Server サービスを実行していて、指定されたサービスの IsManagedAccount フラグが false に設定されている場合は、キャッシュされたシークレットが無効になるとすぐに Service Control Manager のイベント ID 7038 が記録されることがあります。
問題を特定して解決するには、次の手順に従います。
使用しているアカウントが gMSA アカウントであることを確認してください。 gMSA を確認した後にのみ続行します。
- そのアカウントに対して次のコマンドが成功する場合は、gMSA アカウントを使用しています。
-
Cannot find an object with identity: 'account'で失敗した場合、サービス アカウントは gMSA アカウントではありません。
Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet詳細については、「 gMSA アカウントの確認を参照してください。
コマンド プロンプトで次のコマンドを実行し
IsManagedAccountの状態を確認してください。 望ましい結果は trueです。 falseの場合は、先に進んでください。sc qmanagedaccount <YourSQLServiceName>SQL Server 名前付きインスタンス SQLPROD の例:
sc qmanagedaccount MSSQL$SQLPROD必要に合わせてフラグを true に設定します。
sc managedaccount <YourSQLServiceName> TRUESQL Server 名前付きインスタンス SQLPROD の例:
sc managedaccount MSSQL$SQLPROD TRUEサービスをもう一度開始してください。
gMSA に固有のトラブルシューティング手順の詳細については、「gMSA を使用した 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 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スタートアップ アカウントがコンピューター上のローカル ユーザー アカウントの場合:
- コンピューターの管理 (compmgmt.msc) を開き、ローカル ユーザーとグループに移動します。 次に、 Users を選択します。
- ローカル ユーザーとグループ で、SQL Server スタートアップ アカウントの アカウントがロックアウト チェック ボックスをオフにし、OK を選択します。
- SQL Server サービスを再起動します。
SQL Serverスタートアップ アカウントが Windows ドメイン アカウントの場合:
- ドメイン コントローラーでActive Directory ユーザーとコンピューターを開きます。
- Usersで、SQL Server スタートアップ アカウントをダブルクリックし、アカウント タブに移動します。
- アカウントがロック済みとしてマークされているかどうかを確認します。
- アカウントがロックされている場合は、[ アカウントのロック解除 ] チェック ボックスをオンにし、[ OK ] を選択します。 強力なパスワードを設定してください。
- 次に、SQL Server 構成マネージャー、サービス、および SQL Server の 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 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 サービスの回復オプションを変更します。 障害時のオプションのアクションとして サービスを再起動する を指定します。 使い慣れた Service Control Manager インターフェイスを使用して、管理ツールの [サービス] アプレットからこのオプションを実行します。
- このオプションは、SQL フェールオーバー クラスター インスタンス (FCI) または可用性グループ (AG) には推奨されません。このオプションを設定すると、自動フェールオーバー シナリオ中に遅延が発生する可能性があります。
上記のいずれのオプションも実行できない場合は、管理者特権のコマンド ライン コンソールで次のコマンドを実行して、netlogon サービスに依存するように SQL Server サービスを構成します。
sc config <YourSQLServiceName> depend=keyiso/netlogonSQL Server 名前付きインスタンス SQLPROD の例:
sc config MSSQL$SQLPROD depend=keyiso/netlogon