启用加密后,事件 ID 33565 和 SQL Server 不会启动

适用于: SQL Server

症状

在 Microsoft SQL Server 配置管理器中,预配服务器端证书并启用加密。 使用服务控制管理器启动 SQL Server 服务时,服务不会启动,并且你会收到以下错误消息:

Windows 无法在本地计算机上启动SQL Server (MSSQLSERVER) 。 有关详细信息,请查看系统事件日志。
如果这是非 Microsoft 服务,请与服务提供商联系,并参阅特定于服务的错误代码 -2146885628。

解决方案

  1. 检查应用程序事件日志,并验证是否看到两个类似于以下内容的事件条目:

    Log Name:      Application  
    Source:        MSSQLSERVER  
    Date:          <Datetime>  
    Event ID:      26010  
    Task Category: Server  
    Level:         Information  
    Keywords:      Classic  
    User:          N/A  
    Computer:      <Server name>  
    Description:  
    The server could not load the certificate it needs to initiate an SSL connection.
    It returned the following error: 0x8009030d. Check certificates to make sure they are valid.
    
    Log Name:      Application  
    Source:        MSSQLSERVER  
    Date:          <Datetime>  
    Event ID:      33565  
    Task Category: Server  
    Level:         Error  
    Keywords:      Classic  
    User:          N/A  
    Computer:      <Server name>  
    Description:  
    Found the certificate [Cert Hash(sha1) "<Cert Hash number>"] in the local computer store but the SQL Server service account does not have access to it.
    
  2. 如果同时看到事件 26010 和 33565,请执行以下步骤:

    注意

    • 这两个事件指示SQL Server服务帐户无权访问在 Configuration Manager 中预配的证书。 必须向服务帐户分配所需的权限才能解决此问题。
    • 如果看不到事件 26010 和 33565,则可能遇到本文未解决的其他问题。
    1. 选择“ 开始>运行”,输入 mmc,然后在 MMC 控制台 中打开“证书管理单元 ”。

    2. “控制台 ”菜单上,选择“ 添加/删除管理单元”。

    3. 选择“ 添加>证书”,然后再次选择“ 添加 ”。

      注意

      系统会提示你打开当前用户、服务或计算机帐户的管理单元。

    4. 选择计算机帐户。

    5. 选择“ 本地计算机”,然后选择“ 完成”。

    6. “添加独立管理单元 ”对话框中,选择“ 关闭”。

    7. “添加/删除管理单元 ”对话框中,选择“ 确定”。

      注意

      已安装的证书位于个人容器的“证书”文件夹中。

    8. 右键单击证书,选择“所有任务管理私钥”>,然后向SQL Server服务帐户授予完全权限。

参考

启用到数据库引擎的加密连接