启用加密后,事件 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. 如果同时看到 Events 26010 和 33565,请执行以下步骤:

    注意

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

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

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

      注意

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

    4. 选择计算机帐户。

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

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

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

      注意

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

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

参考

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