You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server Always Encrypt查询报错:无法通过AZURE_KEY_VAULT解密列加密密钥

解决Always Encrypt + Azure Key Vault解密失败问题

针对你遇到的无法解密加密列、无法通过Azure Key Vault解密列加密密钥的问题,按以下步骤排查修复:

  • 验证列主密钥(CMK)与Azure Key Vault的关联
    执行以下查询确认数据库中CMK的配置:

    SELECT name, key_store_provider_name, key_path FROM sys.column_master_keys;
    

    检查key_path是否指向Azure Key Vault中存在的有效密钥,同时确认该密钥未被删除、禁用或过期。

  • 检查AKV访问权限
    确保执行查询的身份(无论是SSMS登录账户还是应用服务主体)拥有Azure Key Vault的Get和Unwrap Key权限。如果是通过SSMS连接,需确认使用的Azure AD账户已被授予这些权限;如果是应用程序,需检查服务主体的AKV权限配置。

  • 确认列加密密钥(CEK)的有效性
    执行查询查看CEK的详细信息:

    SELECT name, column_master_key_name, encrypted_value FROM sys.column_encryption_keys;
    

    将查询结果中encrypted_value的最后10个字节转换为XX-XX-XX格式,对比错误提示中的63-02-3F-0A-FD-F3-FF-DB-1B-03,确认是同一个CEK。同时验证该CEK关联的CMK是当前可用的那个。

  • 检查客户端连接与环境

    • 确认连接字符串中Column Encryption Setting=enabled拼写正确,无语法错误。
    • 确保客户端工具(如SSMS)或应用程序使用的SQL驱动支持Always Encrypted与Azure Key Vault集成,建议使用最新版的Microsoft.Data.SqlClient驱动。
  • 排查AKV网络限制
    如果Azure Key Vault配置了防火墙或虚拟网络规则,需确认客户端所在的IP地址或虚拟网络已被添加到AKV的允许访问列表中,避免网络层面的访问阻断。

内容的提问来源于stack exchange,提问作者Ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:20:30