【发布时间】:2017-05-05 18:21:01
【问题描述】:
目前我正在将我的数据库迁移到始终加密的 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 行 [批次 Start Line 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 = '确定性',加密算法名称 = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'TestCEK', column_encryption_key_database_name = 'CustDb1')。
【问题讨论】:
标签: sql-server stored-procedures encryption always-encrypted