啟動 SQL Server 服務時發生錯誤 1069
啟動 SQL Server 服務時,您會收到錯誤 1069,這會導致登入失敗。 本文提供錯誤 1069 相關事件的解決方案。
原始產品版本:SQL Server
原始 KB 編號: 282254
徵兆
當您嘗試重新啟動Microsoft SQL Server 或 SQL Server Agent 時,服務不會啟動,而且您會收到下列錯誤訊息,視您嘗試啟動服務的方式而定:
使用服務小程式:
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 服務帳戶。
啟動本機 安全策略 (Start -> Secpol.msc)。
展開 [ 本機原則 ],然後選取 [ 用戶權力指派]。
遵循 Windows Privileges 和 Rights 中的指示,確認必要的用戶權力已指派給服務帳戶。 手動指派任何遺漏的許可權。
檢查服務帳戶是否已獲指派任何 拒絕* 許可權。 從 SQL 服務帳戶移除任何 Deny* 許可權,然後重新測試。
例如,如果服務帳戶已獲指派拒絕以服務身分登入,以及以服務
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 啟動帳戶是電腦上的本機使用者帳戶:
- 開啟 [計算機管理 ] (compmgmt.msc)。
- 選取 [ 本機使用者和群組 ],然後選取 [ 使用者 ] 以找出帳戶。
- 按兩下使用者帳戶以開啟其 [屬性]。
- 清除 [ 用戶必須在 SQL Server 啟動帳戶的下一個登入 屬性變更密碼],然後按 [ 確定]。
- 重新啟動 SQL Server 服務。
如果 SQL Server 啟動帳戶是 Windows 網域帳戶:
- 在域控制器上開啟 Active Directory 使用者和電腦。
- 選取 正確網域底下的 [使用者 ]。
- 按兩下做為 SQL Server 服務帳戶的網域帳戶,以開啟其 [屬性]。
- 移至 [ 帳戶 ] 索引標籤,檢查使用者是否 必須在下次登入 時變更密碼。 如果啟用此選項,請清除此選項或以互動方式登入 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>\<SQLSerivceAccount> cmd
如果命令成功,請在 SQL Server 組態管理員、Services、SQL Server 服務和此帳戶中仔細輸入相同的認證。
如果命令失敗並回報相同的問題,您必須重設 Windows 登入的密碼。
如果 SQL Server 啟動帳戶是電腦上的本機用戶帳戶,請開啟 [計算機管理 ] (compmgmt.msc),然後重設本機用戶的密碼。
如果 SQL Server 啟動帳戶是 Windows 網域帳戶,請開啟 Active Directory 使用者和電腦,然後更新 [使用者] 底下帳戶的密碼。 更新認證之後,返回 SQL Server 組態管理員、Services、SQL Server,然後輸入相同的認證。
重新啟動 SQL Server 服務。
若要在 SQL Server 主電腦上的 SQL Server 服務帳戶中輸入正確的密碼,請遵循 SCM 服務中的 程式 - 變更使用的帳戶密碼。
案例 2:gMSA IsManagedAccount 旗標設定不當
如果您使用群組受管理的服務帳戶 (gMSA) 帳戶來執行 SQL Server 服務,且 IsManagedAccount
指定服務的旗標設定 為 false,則一旦快取的秘密無效,您可能會收到服務控制管理員事件標識碼 7038。
若要找出並解決問題,請遵循下列步驟:
確認您使用的帳戶是 gMSA 帳戶。 只有在確認 gMSA 之後,才繼續進行。
- 如果下列命令針對帳戶成功,您就會使用 gMSG 帳戶。
- 如果失敗,
Cannot find an object with identity: 'account'
服務帳戶不是 gMSA 帳戶。
Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet
如需詳細資訊,請參閱 檢查 gMSA 帳戶。
在命令提示字元中執行下列命令,並檢查 的狀態
IsManagedAccount
。 所需的結果是正確的。 如果為 false,請繼續進行。sc qmanagedaccount <YourSQLServiceName>
SQL Server 具名實例 SQLPROD 的範例:
sc qmanagedaccount MSSQL$SQLPROD
視需要將旗標設定為 true。
sc managedaccount <YourSQLServiceName> TRUE
SQL Server 具名實例 SQLPROD 的範例:
sc managedaccount MSSQL$SQLPROD TRUE
嘗試再次啟動服務。
參考的帳戶目前已鎖定,且可能無法登入
事件記錄檔中的完整訊息項目類似下列專案:
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),然後移至 [ 本機使用者和群組]。 然後選取 [ 使用者]。
- 清除 [本機使用者和群組] 底下的 [SQL Server 啟動帳戶已鎖定] 複選框,然後選取 [確定]。
- 重新啟動 SQL Server 服務。
如果 SQL Server 啟動帳戶是 Windows 網域帳戶:
- 在域控制器上開啟 Active Directory 使用者和電腦。
- 在 [ 使用者] 底下,按兩下 [SQL Server 啟動帳戶],然後移至 [ 帳戶 ] 索引標籤。
- 檢查帳戶是否標示為鎖定。
- 如果帳戶已鎖定,請選取 [ 解除鎖定帳戶 ] 方塊,然後選取 [ 確定],設定強密碼。
- 然後在 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).
若要修正此問題,請根據您的案例使用下列其中一種方法:
將 SQL Server 啟動設定為針對特定 Windows 伺服器延遲啟動,這可確保 NetLogon 等其他 Windows 服務先完成,SQL Server 會啟動而不會發生問題。 這是 SQL 安裝程式從 SQL Server 2022 開始的預設組態。
如果延遲的啟動選項無法解決您案例的問題,替代選項是變更 SQL Server 服務的復原選項。 指定 [重新啟動服務] 作為失敗選項的動作。 您可以使用熟悉的 [服務控制管理員] 介面,從 [系統管理工具] 的 [服務] Applet 執行此選項。
- 不建議針對 SQL 故障轉移叢集實例 (FCI) 或可用性群組 (AG) 使用此選項,因為設定這可能會在自動故障轉移案例期間造成延遲。
如果上述兩個選項都不可行,您可以在提升許可權的命令行控制台中使用下列命令,將 SQL Server 服務設定為對 NETLOGON 服務的相依性:
sc config <YourSQLServiceName> depend=keyiso/netlogon
SQL Server 具名實例 SQLPROD 的範例:
sc config MSSQL$SQLPROD depend=keyiso/netlogon