• 作者:老汪软件技巧
  • 发表时间:2024-09-25 10:01
  • 浏览量:

动态数据脱敏(DDM)动态更改返回给应用程序或用户的数据库记录,以此来实时保护敏感数据,且不会更改静态数据。

DDM 与静态数据脱敏(SDM)不同。SDM 创建原始数据永久更改、不可逆转的副本,而 DDM 则是在访问时对数据进行即时修改。这种动态方法可确保敏感数据在查询执行过程中受到保护,而不会改变静态的基础数据。

(一)应用场景

SDM 的主要应用场景是创建安全、经过「消毒」的产品数据,供非生产环境使用。而 DDM 则主要用于生产环境,根据用户角色、许可或其他关联因素,动态控制对敏感数据的访问。这样,企业就可以保护敏感信息,而无需更改底层数据。因此,DDM 是实时数据访问场景中维护安全性和合规性的有力工具。

(二)数据脱敏复杂度

数据脱敏的复杂度主要源于其动态性质。系统必须根据各种运行环境,实时决定如何以及何时进行数据脱敏。这些环境包括:

用户环境

时间环境

目标数据库列

数据脱敏后怎么进行分析__数据库动态脱敏

应用环境

脱敏算法

性能

鉴于 DDM 的动态特性,其中一个关键挑战是如何最大限度地降低与实时脱敏相关的性能开销。这就需要优化脱敏逻辑,确保其既高效又可扩展,尤其是在高流量环境中。

(三)数据库支持

主流商业数据库都支持 DDM。不过,MySQL 和 PostgreSQL 这两种最流行的开源数据库都不支持开箱即用的 DDM。对于那些受支持的数据库,DDM 是通过扩展 SQL 语法实现的。以 Snowflake 为例:

CREATE OR REPLACE MASKING POLICY email_mask AS (val string) RETURNS string ->
  CASE
    WHEN CURRENT_ROLE() IN ('ANALYST') THEN val
    ELSE '*********'
  END;
-- apply masking policy to a table column
ALTER TABLE IF EXISTS user_info MODIFY COLUMN email SET MASKING POLICY email_mask;

数据库引擎只提供数据脱敏的基础。为整个组织全面配置脱敏策略仍然是一个巨大的挑战。

Bytebase 提供 GUI 和 API 来配置动态数据脱敏。

值得一提的是,Bytebase 支持 MySQL 和 PostgreSQL。