UPDATE 子句
UPDATE 子句用于指定要对哪些列进行脱敏,以及采用何种转换方式。你可以在单个策略中对多个列进行脱敏。
示例:
- 简单脱敏:
UPDATE email = '***masked***' - 部分脱敏:
UPDATE email = concat(substring(email, 1, 3), '***@***.***') - 基于哈希的脱敏:
UPDATE email = concat('masked_', substring(hex(cityHash64(email)), 1, 8)) - 多列:
UPDATE email = '***@***.***', phone = '***-***-****'
WHERE 子句
WHERE 子句允许根据行中的值按条件进行脱敏处理。只有满足条件的行才会应用脱敏处理。
示例:
TO 子句
TO 部分中,指定该策略适用于哪些用户和角色。
TO user1, user2:适用于特定用户/角色TO ALL:适用于所有用户TO ALL EXCEPT user1, user2:适用于除指定用户外的所有用户
与行策略不同,脱敏策略不会影响未被应用该策略的用户。如果某个用户不适用任何脱敏策略,则会看到原始数据。
PRIORITY 子句
PRIORITY 子句用于确定其应用顺序。策略会按照优先级从高到低依次应用。
默认优先级为 0。优先级相同的策略会以未定义的顺序应用。
示例:
性能注意事项
- 脱敏策略对查询性能的影响取决于表达式的复杂度
- 对于启用了脱敏策略的表,某些优化可能会被禁用