gpt4 book ai didi

java - 更改加密 key 后,适用于 Java 的 Microsoft JDBC 驱动程序无法找到 Azure Always Encrypted 列加密 key

转载 作者:行者123 更新时间:2023-12-02 10:28:47 24 4
gpt4 key购买 nike

我使用 Java 和 Spring Framework,通过 Microsoft JDBC Driver 连接到 SQL 数据库。

数据库中的一个表有一列使用 Azure 始终加密进行加密。我最近更改了列的加密 key (使用旧 key 解密数据,使用新 key 加密数据),即使 Java 服务使用经过身份验证的客户端来访问这两个列加密 key ,我也会在 Java 应用程序中收到消息:

SQL Error: 33294, SQLState: S0004

com.microsoft.sqlserver.jdbc.SQLServerException: Some parameters or columns of the batch require to be encrypted, but the corresponding column encryption key cannot be found. Use sp_refresh_parameter_encryption to refresh the module parameters metadata.

我尝试重新部署该服务,但没有成功。我还尝试运行过程 sp_refresh_parameter_encryption,但它需要一个模块或一个存储过程作为参数,而且我没有看到任何明显的存储过程可以提供给它。

最佳答案

我发现一个或多个过程是使用旧的列加密 key 缓存的。通过运行查询

更改数据库范围配置清除PROCEDURE_CACHE;

缓存已清除,新 key 已加载,一切顺利。

关于java - 更改加密 key 后,适用于 Java 的 Microsoft JDBC 驱动程序无法找到 Azure Always Encrypted 列加密 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53726869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com