1

目前,我正在将我的数据库迁移到始终加密的 SQL Server 2016。我有 2 个数据库,并通过存储过程从另一个表中的一个数据库中选择数据。使用 DB2 中的存储过程从 DB1 选择或更新加密列时,出现操作数类型冲突:错误。我已经为具有相同名称和相同证书的 2 个数据库创建了列主密钥和列。

use CustDb1

Select  @custSSN = customer 
        from    CustDb2..customer a
        where   a.SSN = @psSSN 

两个数据库中客户中的 SSN 列都已加密,但是当我运行它时,出现以下错误:

消息 33277,级别 16,状态 6,过程 copy_customer,第 891 行 [批处理开始行 167] 列/变量“@psSSN”的加密方案不匹配。列/变量的加密方案是 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'TestCEK', column_encryption_key_database_name = 'CustDb2') 并且行 '940' 附近的表达式期望它是 (encryption_type = ' DETERMINISTIC',encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name = 'TestCEK',column_encryption_key_database_name = 'CustDb1')。

4

1 回答 1

0

此处记录了使用 Always Encrypted 进行数据迁移的最佳实践。请按照博客中指定的说明进行数据迁移。

目前,Always encrypted 不支持对加密数据进行跨数据库比较

于 2016-12-20T16:10:14.103 回答