|
数据安全无小事,在企业日常数据分析工作中,如何平衡数据开放共享与隐私保护,是众多管理员面临的棘手难题。当身份证号、手机号等敏感字段出现在分析报表中时,简单的“隐藏”操作并非长久之计,唯有精细化的数据脱敏,才能在保障数据安全的前提下,不影响业务数据分析的正常开展,真正实现“数据可用不可见”。
SmartBI 提供了灵活且强大的数据脱敏机制,可满足企业多样化的安全需求,但面对复杂的权限层级与多元的业务场景,许多用户在实际落地过程中仍存在诸多困惑:如何精准定义脱敏规则?配置后的规则如何在不同资源间高效生效?父级规则的继承逻辑又该如何理解?
本文将抽丝剥茧,全方位解析SmartBI数据脱敏的配置步骤、实际应用场景及关键继承逻辑,助您快速掌握核心操作、避开常见坑点,构建一道既坚固又灵活的数据安全防线。
关于数据脱敏,您需要先明确3件事
1、它是什么:数据脱敏,本质是给手机号、身份证号等敏感信息“穿上隐身衣”——对未授权用户隐藏敏感细节,同时保留数据的格式与分析价值,不影响正常的数据分析工作。
2、它能做什么:支持对"字符串"、"数值"两类核心字段进行脱敏处理,更关键的是,脱敏效果会自动遗传给基于该字段计算生成的新字段,从源头堵住数据泄露漏洞,避免“衍生字段未脱敏”的安全风险。
3、本文能帮您做什么:从基础的脱敏规则配置、多场景落地应用,到复杂的父级规则继承逻辑,一篇文章帮您彻底吃透SmartBI数据脱敏的核心要点,快速上手实操、规避常见误区。
第一部分:继承篇 ——“继承” 规则
1.1、如何选择脱敏方式
为了帮助您快速选择合适的脱敏设置方式,下面用表格总结了三种常见场景的特点与操作要点:
场景 |
脱敏规则设置位置 |
哪些内容会继承脱敏? |
什么时候用这种? |
源表字段设置脱敏 |
直接在源表的字段上 |
基于该源表创建的数据模型中的原始字段、计算字段(如单价×数量)、新建列等都会自动继承源表规则 |
希望所有基于该源表的分析(无论哪个模型)都自动遵守统一的脱敏规则 |
数据模型设置脱敏 |
在数据模型中的维度或度量 |
该字段本身,以及在报表层基于它做的任何衍生计算(如快速计算、新建列、命名集)都会自动继承模型层规则 |
只针对某个特定的数据模型需要脱敏,且希望该模型下的所有相关计算都受保护 |
用SQL加工新维度或度量需重设脱敏 |
在数据模型中对SQL加工出的维度或度量 |
SQL加工出来的新字段不会自动继承源表脱敏规则,但设置后,被它引用的其他计算会继承 |
当你用自定义SQL从源表创建新指标时,必须主动在模型层为该指标配置脱敏 |
简单一句话:源表脱敏自动向下传,模型手动设置对本模型生效,SQL加工要重设脱敏。
1.2、继承规则流程说明
1.2.1 如果在源表设置脱敏规则

1.2.2 数据模型SQL查询、原生SQL数据集(凡是使用sql的方式)都不会继承源表设置的脱敏规则,需要手工针对字段重新设置

第二部分:配置篇——如何设置脱敏规则?
SmartBI 数据脱敏规则前提条件:
1、脱敏规则支持 字符串、数值 字段脱敏,暂不支持 日期 字段进行脱敏。字符串、数值字段如果设置了脱敏规则,再使用该字段去做二次计算比如:计算度量、新建计算列、新建计算字段、新建命名集、新建计算成员等构建的新字段,都会继承脱敏规则,使用***显示。
2、重建索引过程中,如果正在新建修改脱敏规则,会提示 索引正在重建中,请稍后再操作。
3、设置脱敏规则原则:报表层原则上不设置脱敏规则。
2.1 功能入口
通过“新建脱敏规则”,或者打开已定制的脱敏规则,都可以打开“脱敏规则”设置界面。
入口:运维设置 / 全局资源定义/ 脱敏规则/ 右键菜单/ 新建/ 脱敏规则:

2.2 界面介绍
各设置项说明如下:
算法名称 |
输入脱敏规则名称。 |
算法别名 |
输入脱敏规则别名。 |
脱敏类型 |
支持 字符串、数值型字段脱敏。 |
脱敏字段 |
选择进行脱敏的字段。
- 如果脱敏类型是 字符串,那么选择字段时只能选择字符串类型的字段。
- 如果脱敏类型是 数值型,那么选择字段时只能选择数值类型的字段。
- 选择字段的范围:源表、各个数据集、业务主题(旧数据集,V9及以前的版本才使用)
 |
脱敏算法 |
1、字符串字段支持:
- 掩码:是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位。
- 正则替换:利用Java语法的正则表达式进行字符串替换。
- 字符替换:利用指定的符号替换字符串。
2、数值型字段
- 字符替换:利用指定的符号替换字符串,在报表展示会直接显示替换的字符,所以这种方式无法用于图表作图。
- 缩放归一算法:设置区间显示的方式,通过算法计算出脱敏后的值,脱敏后的数据不管怎么浮动始终会在设置的区间中,在使用图表展示时,保持趋势正确。
|
算法参数 |
主要是 字符串 不同的算法支持的参数不同:
- 掩码:确定保留内容以及替换字符。表示字段中除去保留的部分,其它部分用替换字符替代。
- 正则替换:输入正则表达式,设置替换字符。表示字段符合正则表达式的字符串用替换字符替代。
- 字符替换:设置替换字符。表示字段所有字符串用替换字符替代。
|
应用范围 |
表示当前脱敏规则生效的用户对象,可以通过对用户、用户组、角色进行设置。1)当选择“适用于此范围”,且“范围定义”无内容或为空时,则对所有角色、用户、用户组不生效。2)当选择“不适用于此范围”,且“范围定义”无内容或为空时,则对所有角色、用户、用户组生效。 |
应用于 |
表示当前脱敏规则生效的情景:是在浏览资源时生效还是在导出资源时生效,或者两者都生效。 |
禁用 |
表示禁用当前脱敏规则。 |

2.3 规则配置流程与操作步骤
为简化操作说明、避免内容冗余,数据源字段(源表)、数据集、业务主题三类对象的脱敏规则配置流程与操作步骤完全相同。本文档配置步骤仅以数据源字段(源表) 为例,按脱敏类型详细阐述完整配置步骤:
- 字符串型脱敏:支持掩码、字符替换、正则替换算法;
- 数值型脱敏:支持字符替换、区间归一缩放算法。
业务主题、数据集的脱敏规则设置可参照下述步骤同步执行,不再单独赘述。
2.3.1 字符型脱敏(车企字段举例)
2.3.1.1 字符型脱敏之掩码算法
参照前述 2.1 功能入口 、2.2 界面介绍配置说明 进入脱敏规则配置界面,并完成相关信息配置,参数配置示例如下:

2.3.1.2 字符型脱敏之字符替换算法
- 操作步骤同上,进入脱敏规则配置界面并按界面说明完成相关信息填写,参数配置示例如下:

2.3.1.2 字符型脱敏之正则替换算法
- 操作步骤同上,进入脱敏规则配置界面并按界面说明完成相关信息填写,参数配置示例如下:
注 :正则表达式可以通过搜索引擎查找,符合java语法的正则表达式即可,例如:https://www.runoob.com/java/java-regular-expressions.html


2.3.1.3 字符型脱敏效果
2.3.2 数值型脱敏(批售销量字段举例)
2.3.2.1 数值型脱敏之字符替换算法
- 操作步骤同上,进入脱敏规则配置界面并按界面说明完成相关信息填写,参数配置示例如下:

2.3.2.2 数值型脱敏之区间归一缩放算法
- 操作步骤同上,进入脱敏规则配置界面并按界面说明完成相关信息填写,参数配置示例如下:

2.3.2.3 数值型脱敏后效果
如果源表设置了脱敏规则,在模型里面又设置了脱敏规则,则优先取源表的,再按照创建的时间顺序取其他的,最终是 并集 效果。
算法 |
字符替换 |
正则替换 |
脱敏后效果 |
 |
 |
第三部分:继承规则总结篇
3.2.1 各模块脱敏规则应用详情
|
类型 |
脱敏规则生效场景 |
是否直接用到脱敏规则 |
生效说明 |
手动设置流程 |
字符串脱敏/数值型脱敏 |
数据源 |
数据连接-数据快查(源表) |
是 |
配置规则后自动生效 |
|
数据准备部分SQL(不直接继承) |
数据准备-数据模型里子查询引用源表及可视化 SQL 查询数据准备-数据集-自助数据集/可视化数据集/即席查询数据集/透视分析数据集 |
是 |
配置规则后自动生效 |
|
数据准备-数据模型-子查询引用sql查询数据准备-数据集(旧版本)-原生sql数据集/SQL数据集/存储过程数据集/JAVA数据集注:该场景下的脱敏效果需通过手动配置脱敏规则实现,并非在 SQL 查询返回结果后自动生效。 |
否 |
需手动配置后规则方可生效 |
数据准备-数据模型-子查询引用sql查询:需手动配置并保存脱敏规则后, 规则将在查询结果中生效 数据准备-数据集-原生sql数据集/SQL数据集/存储过程数据集/JAVA数据集需执行以下手动配置操作 针对 原生SQL 数据集查询场景,手动配置并保存脱敏规则后,规则将在查询结果中生效。 仅展示原生 SQL 数据集脱敏示例(截图),其余 SQL / 存储过程 / JAVA 数据集配置规则同原生 SQL 数据集 |
分析展现 |
即席查询/透视分析/交互仪表盘/EXCEL电子表格/WEB电子表格 |
是 |
原生字段度量支持属性继承,计算列、计算成员、计算度量、命名集均也继承了脱敏规则。因为可能写复杂的计算逻辑,所以无法直接使用原脱敏规则处理,统一使用***显示。 |
 计算列、计算度量(命名集与计算成员展示的脱敏效果与上述计算列保持一致)返回的结果继承了脱敏规则,但无法直接使用原脱敏规则处理(原脱敏规则指的是:比如区间脱敏是10-100这种样式),统一使用***显示。源表中配置的脱敏规则亦是如此 |
第四部分:数据脱敏应用范围
类型 |
是否支持 |
备注 |
数据源 |
本地数据源 |
√ |
|
关系数据源 |
√ |
|
Java数据源 |
√ |
|
Nosql数据源 |
√ |
|
多维数据源 |
√ |
|
高速缓存库 |
√ |
SmartBI基于高速缓存库可以设置脱敏规则,预览数据会根据脱敏规则进行脱敏,但是抽取后存储在高速缓存库中的数据是不脱敏的。 |
跨库联合数据源 |
√ |
|
数据集 |
数据模型 |
√ |
|
业务主题 |
√ |
|
自助数据集 |
√ |
|
可视化数据集 |
√ |
|
SQL数据集 |
√ |
|
原生SQL数据集 |
√ |
|
存储过程数据集 |
√ |
|
JAVA数据集 |
√ |
|
多维数据集 |
× |
暂不支持 |
分析展现 |
交互式仪表盘 |
√ |
|
即席查询 |
√ |
|
透视分析 |
√ |
|
灵活分析 |
√ |
|
仪表分析 |
√ |
|
电子表格 |
√ |
|
web电子表格 |
√ |
|
温馨提醒:
1、字段设置了脱敏,如果字段切换成计数、唯一计数,则不使用脱敏规则(由于原先的业务含义改变了)。
2、在数据模型中设置了 度量 比如销售额 的脱敏规则,在维度中的销售额 没有设置脱敏规则,在查询清单时(使用维度中的销售额),不会继承 度量 销售额的脱敏规则。
3、脱敏规则的缓存:默认读取数据集的缓存策略,比如:数据模型是禁用缓存则脱敏规则也是禁用缓存。
4、数值脱敏,每次清空缓存会根据算法重新计算,即清空缓存之后脱敏会的数据会改变。
5、数值区间脱敏,在仪表盘导出数据时,目前暂时不支持导出显示值。
6、若SQL 查询(含数据模型 SQL 查询)需要继承数据源的脱敏规则,需在运维设置 → 系统选项 → 高级设置中开启以下原生 SQL 相关配置。开启后,无需在数据集中单独配置脱敏规则。
- ## 原生SQL数据集脱敏规则
##原生SQL数据集脱敏规则,系统默认值false RAW_SQL_APPLY_MASKING_RULE=true
- ##原生SQL数据集数据权限
##原生SQL数据集数据权限 ,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS=false
- ##原生SQL数据集资源权限
##原生SQL数据集资源权限,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS_CHECK_TABLE=true
- ##原生SQL数据集资源权限
##原生SQL数据集资源权限,引用表、字段必须有查看权限,系统默认值false RAW_SQL_APPLY_REFS_REQUIRE_READ_PURVIEW=true
您已阅读完成,做个题巩固下吧,答题可赢取麦豆——>点击领取任务 |