要求澄清这份文件。
以下方面不支持加密:
具有IDENTITY属性的列
我想确保其中一个列可以是一个身份列,如果它不是加密的,而是涉及一个外键约束,其中指向它的外国对应物确实是加密的。
假设在Server 2016或更高版本中,我们有一个客户端表:
id int IDENTITY (1,1) NOT NULL [column is primary key]
clientname varchar(100)注意:客户id具有很高的基数。这张桌子上有近20万名客户。
和一张MEDICALPROCEDURES表:
id int PK
procedurecode varchar(10)
clientid int现在有一个外键约束:
ALTER TABLE MEDICALPROCEDURES
ADD CONSTRAINT FK_MEDICALPROCEDURES_CLIENT
FOREIGN KEY(clientid) REFERENCES CLIENT(id)现在,如果对列MEDICALPROCEDURES.clientid进行了确定性加密,而列CLIENT.id未加密,那么外键约束会成功吗?
像下面这样的查询会透明地成功吗?
select
C.clientname, MP.procedurecode
from CLIENT c inner join MEDICALPROCEDURES MP
on C.id=MP.clientid
where C.clientid=12345发布于 2019-05-23 15:36:30
这是行不通的。
从文档中不支持以下内容:“使用随机加密或使用确定性加密时,如果引用列和引用列使用不同的密钥或算法,则引用外键约束中的列”。因此,您需要对id和clientid使用相同的确定性加密。
https://stackoverflow.com/questions/56277795
复制相似问题