1

我已经使用 SQL Server 2016 中的始终加密功能对现有表列进行了加密。我现有的查询很少失败,因为我们在 where 子句、LEN 和子字符串函数中使用了 case 语句。有人可以告诉我如何在始终加密的列上使用这些函数。我收到以下错误 -

子串(SSN,2,5)

列/变量“SSN”的加密方案不匹配。列/变量的加密方案是 (encryption_type = 'DETERMINISTIC', e... 期望它是 (encryption_type = 'PLAINTEXT') (或更弱)。

4

1 回答 1

1

目前,加密列不支持 like、Len 或其他字符串函数。
Always Encrypted 支持两种类型的加密方案:

Deterministic: 支持相等运算
Randomized:不支持任何运算

•<strong>确定性加密始终为任何给定的纯文本值生成相同的加密值。使用确定性加密允许对加密列进行点查找、等式连接、分组和索引。但是,但也可能允许未经授权的用户通过检查加密列中的模式来猜测有关加密值的信息,特别是如果存在一小组可能的加密值,例如 True/False,或 North/South/East/West 区域。确定性加密必须对字符列使用具有 binary2 排序顺序的列排序规则。

•<strong>随机加密使用一种以不太可预测的方式加密数据的方法。随机加密更安全,但会阻止对加密列进行搜索、分组、索引和连接。

希望对您有所帮助,如果您还有其他问题,请在评论部分发表

于 2017-04-05T18:25:30.047 回答