StarRocks MaskingPolicies
StarRocks支持通过动态数据访问控制机制实现敏感数据保护,其核心特点包括:
- 访问控制机制
- 基于策略(Policy)的条件语句设置
- 支持查询运行时动态数据转换
- 实现列级数据屏蔽和行级数据过滤
- 数据处理方式
- 保持原始数据不变(不修改表数据)
- 不进行数据加密存储
- 通过查询重写实现动态保护
- 实现原理
- 查询时生成临时视图
- 自动重写查询计划
- 确保返回结果已应用数据屏蔽
这种机制在保证数据安全性的同时,为授权用户提供了灵活的数据访问能力。
背景
在上面内置的功能中,小工具直接支持轻量级简化加密操作。
metadb:
host: 127.0.0.1
port: 3306
user: root
password: xxx
base: starrocks.starrocks_masking_information
log:
path: '/chengken/log'
Options:
list
encrypt
用户加密
表名:default_catalog.demo.masking_policies_item
字段:item_nbr实现基于用户svccntest1的动态列级数据脱敏策略,使其查询item表时item_nbr字段返回加密值,而其他用户则获取明文数据。
MaskingPolicies -s <app> -u svccntest1 -t default_catalog.demo.masking_policies_item -f item_nbr -m encrypt
当svccntest1用户访问时item_nbr列已经实现脱敏处理
而非加密用户来说,显示的依旧是明文
全局加密
表名:default_catalog.demo.masking_policies_item
字段:item_nbr实现所有用户动态列级数据脱敏策略,使其查询item表时item_nbr字段返回加密值。
MaskingPolicies -s <app> -t default_catalog.demo.masking_policies_item -f item_nbr -m encrypt -g global
普通角色(脱敏)
管理员(脱敏)
decrypt
表名:default_catalog.demo.masking_policies_item
字段:item_nbr在目前所有用户动态列级数据脱敏策略场景下,仅root管理员账号可访问明文数据,其他账号访问时仍返回脱敏数据
MaskingPolicies -s <app> -u root -t default_catalog.demo.masking_policies_item -f item_nbr -m decrypt
普通角色(所有脱敏)
管理员(明文)
list id
列出policy name对应的数据策略创建语句








