本文介绍如何修改注册表项以启用 SQL Server 连接器错误和信息日志记录。
用于 Microsoft Azure Key Vault 的 SQL Server 连接器
用于 Microsoft Azure Key Vault 的 SQL Server 连接器使 SQL Server 加密能够使用 Microsoft Azure Key Vault 作为可扩展密钥管理(EKM)提供程序来保护其加密密钥。
下载内容包括 SQL Server 连接器以及示例脚本,使 SQL Server 管理员能够了解如何配置 SQL Server 连接器和启用 SQL Server 加密方案。 有关详细信息,请参阅使用 Key Vault 的可扩展密钥管理(SQL Server)。
使用 Azure Key Vault 论坛 提问、分享见解并讨论 SQL Server 连接器。
注释
在正常执行期间,SQL Server 连接器 DLL 将动态创建注册表项以建立与 Azure Key Vault 的连接,以创建密钥 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider]。 SQL Server 启动帐户必须是本地管理员或其服务帐户必须是 NT SERVICE\MSSQLSERVER
将 SQL Server 连接器升级到最新版本
若要将 SQL Server 连接器(版本:1.0.5.0(发布日期:2025 年 1 月)升级到最新版本的 DLL 加密提供程序,请执行以下步骤。
升级
- 使用 SQL Server Configuration Manager 停止 SQL Server 服务。
- 使用 控制面板>程序程序和>功能卸载旧版本。
- 应用程序名称:用于 Microsoft Azure Key Vault 的 SQL Server 连接器
- 版本:15.0.300.96(或更早版本)
- DLL 文件日期:2018 年 1 月 30 日(或更早)
- 安装(升级)新版本的 SQL Server Connector for Microsoft Azure Key Vault。
- 版本:15.0.2000.440
- DLL 文件日期:2024 年 11 月 9 日
- 启动 SQL Server 服务。
- 可访问测试加密的数据库。
如果数据库处于 RECOVERY PENDING 状态,则需要在加密提供程序上运行命令 ALTER 。 将AzureKeyVault_EKM替换为实际的加密提供程序的名称,可在sys.cryptographic_providers系统视图中找到该名称。
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM DISABLE;
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM ENABLE;
修改加密提供程序后重启 SQL Server 服务。
回退
使用 SQL Server Configuration Manager 停止 SQL Server 服务。
使用 控制面板>程序和功能>卸载新版本。
- 应用程序名称:用于 Microsoft Azure Key Vault 的 SQL Server 连接器
- 版本:15.0.2000.440
- DLL 文件日期:2024 年 11 月 9 日
安装旧版 Microsoft Azure Key Vault 的 SQL Server 连接器。
- 版本:15.0.300.96
- DLL 文件日期:2018 年 1 月 30 日
启动 SQL Server 服务。
检查使用 TDE 的数据库是否可访问。
验证更新是否正常工作后,可以删除旧的 SQL Server 连接器 文件夹(如果选择重命名它,而不是在步骤 3 中卸载)。
注释
- SQL Server 连接器版本 1.0.0.440 及更早版本已被替换,并且不再在生产环境中受支持。 有关排查 SQL Server 连接器问题的详细信息,请参阅 SQL Server 连接器维护与故障排除。
- 从版本 1.0.3.0 开始,SQL Server 连接器向 Windows 事件日志报告相关错误消息,以便进行故障排除。
- 从 1.0.4.0(版本 13.0.811.168)开始,支持私有 Azure 云,包括由世纪互联、Azure 德国和 Azure 政府运营的 Azure。
- 在版本 1.0.5.0 中,指纹算法发生了重大变更。 升级到 1.0.5.0 后,可能会遇到数据库还原失败。 有关详细信息,请参阅 从旧版 SQL Server Connector 还原备份至 Microsoft Azure Key Vault 时出现的错误 33111。
- 从版本 1.0.5.0(文件日期为 2020 年 9 月)开始,SQL Server 连接器支持筛选消息和网络请求重试逻辑。
- 从版本 1.0.5.0(文件日期为 2024 年 11 月 )和 SQL Server 2022 CU17 及更高版本开始,SQL Server 连接器支持使用 Azure 虚拟机上的 SQL Server 托管标识对 Azure Key Vault 进行身份验证。
- SQL Server 连接器的旧版本也是版本: 1.0.5.0(版本 15.0.300.96) – 文件日期 2018 年 1 月。 如果遇到任何问题,请升级到最新的 SQL Server 连接器。
系统要求 - 支持的 SQL Server 版本:
- SQL Server 2022 RTM Enterprise 或 Standard 64 位
- SQL Server 2019 RTM Enterprise 或 Standard 64 位
- SQL Server 2017 RTM Enterprise 64 位
- SQL Server 2016 RTM Enterprise 64 位
- SQL Server 2014 RTM Enterprise 64 位
- SQL Server 2012 SP2 Enterprise 64 位
- SQL Server 2012 SP1 CU6 Enterprise 64 位
- SQL Server 2008 R2 SP2 CU8 Enterprise 64 位
在低于上面所列版本的 SQL Server 2008 和 2012 版本中,需要安装以下知识库文章中指定的修补程序: KB2859713。
用于 Microsoft Azure Key Vault 的 SQL Server 连接器还需要 Azure 上的 Microsoft SQL Server 虚拟机上的 .NET 版本 4.5.1。 安装 SQL Server 连接器之前,应安装此库。
请根据您运行的 SQL Server 版本安装适当版本的 Visual Studio C++ 可分发组件:
对于 SQL Server 版本 2008、2008 R2、2012 和 2014,请安装 2013 Visual C++ Redistributable。
对于 SQL Server 2016、2017、2019,请安装 2015 Visual C++ Redistributable。
修改 Windows 注册表步骤
修改注册表项以启用 Windows 应用程序事件日志中的 SQL Server 连接器日志记录错误和信息事件。
谨慎
请仔细执行本部分中的步骤,并自行承担风险。 如果注册表修改不正确,可能会发生严重问题。 在修改注册表之前,请备份注册表,以便在出现问题时可以还原。
可通过两种方法在 Windows 中打开注册表编辑器:
- 在任务栏上的搜索框中,键入 regedit。 然后,选择注册表编辑器(桌面应用)的最高结果。

- 按住或右键单击“开始”按钮,然后选择“运行”。 在对话框中输入 regedit ,然后选择“ 确定”。

导航到此注册表项:
HKLM\SOFTWARE\Microsoft\SQL Server 加密提供程序\Azure Key Vault\

在 Azure Key Vault 下添加新的密钥,名称为
Log:HKLM\SOFTWARE\Microsoft\SQL Server 加密提供程序\Azure Key Vault\Log\

在 日志 密钥下面,添加一个 DWORD(32 位)值,命名为
Level。HKLM\SOFTWARE\Microsoft\SQL Server 加密提供程序\Azure Key Vault\Log\

将 DWORD 的值设置为适当的日志级别(0,1,2):
- 0 (信息) - 默认值
- 1 (错误)
- 2 (无日志)

本文中所述的注册表项位于这个键下面:
\Computer
\HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\SQL Server Cryptographic Provider
\Azure Key Vault
\Log\
<Level>
(可选)可以使用命令行生成密钥:
--Create the logging parameter using (Administrator) Command Line:
REG ADD "HKLM\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\Log" /v Level /t REG_DWORD /d 1
--Validate the new registry entry
REG QUERY "HKLM\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\Log" /v Level
还可以使用注册表项修复缺少消息的应用程序事件日志条目。 事件日志可以包含消息。 The description for Event ID 0 from source SQL Server Connector for Microsoft Azure Key Vault cannot be found...
--Create the registry entry to enable missing messages (this works with any version)
REG ADD "HKLM\SYSTEM\ControlSet001\Services\EventLog\Application\SQL Server Connector for Microsoft Azure Key Vault" /v EventMessageFile /t REG_EXPAND_SZ /d "C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll"
--Validate the new registry entry
REG QUERY "HKLM\SYSTEM\ControlSet001\Services\EventLog\Application\SQL Server Connector for Microsoft Azure Key Vault" /v EventMessageFile