无法将总是加密的varbinary加密列转换为任何类型。

问题描述 投票:-1回答:1

我们正试图在我们的Sql服务器2016上实现Always Encrypted.我们想要加密的列是XML类型,我们知道这是不支持的,因此我们已经创建了一个varbinary列来代替。我们已经设法将其加密.现在,我们想将解密后的数据从varbinary转换为XML类型与此查询。select top 10 convert(xml, datavalue2) FROM [TestDB].[dbo].[DataCalc]

对于这种转换,我们得到一个错误。Explicit conversion from data type varbinary(max) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = '*******', column_encryption_key_database_name = 'TestDB') to xml is not allowed.

我们已经尝试用nVarchar和Varchar来做,但得到了同样的错误。

谢谢

sql-server encryption data-conversion always-encrypted
1个回答
0
投票

始终加密列的加密解密是由客户端应用程序通过始终加密的启用驱动程序来完成的。由于数据在服务器上没有解密,所以在T-SQL中不能访问CASTCONVERT所需的解密值。转换需要在客户端应用程序中完成,在那里解密的值是可用的。

© www.soinside.com 2019 - 2024. All rights reserved.