目前,我正在将我的数据库迁移到始终加密的 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')。