SSIS:在Azure密钥存储中使用CMK插入始终加密的表时,ODBC提供程序出错

SSIS:在Azure密钥存储中使用CMK插入始终加密的表时,ODBC提供程序出错,ssis,odbc,azure-sql-database,azure-keyvault,always-encrypted,Ssis,Odbc,Azure Sql Database,Azure Keyvault,Always Encrypted,我正在尝试使用SSIS(Visual Studio 2017)将数据插入Azure SQL表,该表包含通过始终加密进行加密的列,以及存储在Azure密钥库中的列主密钥,但我不断收到错误 根据我在其他文章中找到的建议,我将ADO.NET目标与ODBC数据提供程序一起使用。该用户是在Azure SQL数据库中设置的Azure Active Directory用户,因此可以登录。它拥有密钥库访问策略中授予它的所有密钥权限 我的ODBC连接字符串如下所示: DRIVER=ODBC Driver 17 f

我正在尝试使用SSIS(Visual Studio 2017)将数据插入Azure SQL表,该表包含通过始终加密进行加密的列,以及存储在Azure密钥库中的列主密钥,但我不断收到错误

根据我在其他文章中找到的建议,我将ADO.NET目标与ODBC数据提供程序一起使用。该用户是在Azure SQL数据库中设置的Azure Active Directory用户,因此可以登录。它拥有密钥库访问策略中授予它的所有密钥权限

我的ODBC连接字符串如下所示:

DRIVER=ODBC Driver 17 for SQL Server;SERVER=[dbs].database.windows.net;UID=[uid@example.com];PWD=[password];Authentication=ActiveDirectoryPassword;DATABASE=[database];ColumnEncryption=Enabled;KeyStoreAuthentication=KeyVaultPassword;KeyStorePrincipalId=[uid@example.com];KeyStoreSecret=[password]
我希望将其插入表中,但它会导致以下错误:

[ADO NET Destination[2]]错误:数据传输过程中发生异常 插入时,从提供程序返回的消息为:ERROR[CE269] [Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]错误12038 向错误发送请求 [CE263][Microsoft][SQL Server的ODBC驱动程序17][SQL Server]错误 验证ECEK的签名。错误[CE202][Microsoft][ODBC驱动程序17 对于SQL Server][SQL Server]密钥库提供程序AZURE_KEY_VAULT 无法解密ECEK 具有 RSA_OAEP


我能够通过SSMS和自定义控制台应用程序成功地插入到表中,并验证加密是否按预期工作。这个错误只发生在SSI中。

我最近花了很多时间来让它正常工作。如果ECEK出现错误12038,那么您需要在Azure SQL db中更新主密钥,而不需要:443。这会在ODBC连接尝试将url与AKV中的url匹配时产生错误。这是简单的答案。我计划在有时间时尽快提供整个解决方案。

这是最好的答案。救了我一天。如果您使用SSMS配置始终加密的列,它会将:443追加到AKV密钥的路径。斯雷的解决方案很有魅力。