2

我在两个不同的表上的 Azure SQL 数据库中实现了始终加密和动态数据屏蔽概念。

但我怀疑“是否可以在同一张表中已加密的列上应用动态数据屏蔽”。

我尝试了上面的场景,它给出了类似“列'SSN'的数据类型不支持数据屏蔽功能'部分'。”的错误。

我运行以下查询以在已加密的列上应用掩码。

ALTER TABLE [dbo].[CustomerTables]
ALTER COLUMN [SSN] ADD MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)');

是否可以对同一张表中已加密的列应用动态数据屏蔽?

4

1 回答 1

3

不,当前加密的列不能被屏蔽。而且,您无法加密已被屏蔽的列。

使用动态数据屏蔽,屏蔽值在服务器端生成。要生成掩码值(尤其是使用部分掩码),SQL Server 需要知道原始值(明文形式)。如果使用 Always Encrypted 对列进行加密,则 SQL Server 只知道密文而无法对其进行解密 - 只有客户端应用程序才能解密存储在加密列中的值。

于 2017-01-20T18:07:29.883 回答