ITPub博客

首页 > 数据库 > 国内数据库 > hgdb数据编辑

hgdb数据编辑

原创 国内数据库 作者:瀚高PG实验室 时间:2022-12-02 13:59:46 0 删除 编辑

瀚高数据库

文档用途

数据编辑(Data Redaction)功能是一种动态数据脱敏机制,针对数据查询时的敏感数据进行动态的安全保护,通过设置策略对表的字段进行动态查询时动态修订。


详细信息

1. 介绍


数据编辑(Data Redaction)功能是一种动态数据脱敏机制,针对数据查询时的敏感数据进行动态的安全保护,通过设置策略对表的字段进行动态查询时动态修订。


一个完整的数据编辑策略由三部分组成:数据编辑函数、数据编辑策略应用 SQL命令、相应的权限配置。


  • 使用内置的数据编辑函数;

  • 通过绑定策略语句将函数与目标数据关联;

  • 数据编辑函数及策略仅可通过 SYSSSO 用户创建、修改、删除、禁用、启用、授权操作,普通用户和数据库管理员仅可查看管理视图


在启用数据编辑之前,需打开参数开关:redaction_policy。可通过命令行或直接修改 conf 文件进行修改。命令行格式如下:


alter system set redaction_policy to on;
select pg_reload_conf();


2. 创建编辑策略


语法:

CREATE REDACTION POLICY <name> ON <table_name>
[ ADD [ COLUMN ] <column_name>[,…] USING <funcname_clause> ]
[, ...]
[ FOR ( <expression> ) ]
DISABLE/ENABLE;


解析:


  • name:当前策略的名称,

  • table_name:当前数据编辑策略作用为哪张表

  • column_name:策略应用于哪个列

  • funcname_clause:数据编辑函数名称,目前支持的脱敏函数见下文函数列表

  • expression:表达式,即对哪些用户执行数据编辑策略。比如 user=’u1’,就是对 u1

  • 用户执行数据编辑策略,其他用户不执行


不同测略通过不同的编辑函数实现,如



  • redact_bankcard  支持的数据类型有BPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对信用卡格式的文本类数据)。示例 '4880-9898-4545-2525' 将会被脱敏为'xxxx-xxxx-xxxx-2525',该函数仅对后 4 位之前的数字进行脱敏。

  • redact_emailname 支持的数据类型有 BPCHAR, VARCHAR, NVARCHAR, TEXT (注:仅针对 email 格式的文本类型数据)。示例 'abcd@gmail.com' 将会被脱敏为'xxxx@gmail.com', 对出现第一个'@'之前的文本进行脱敏  

  • redact_phone 支持的数据类型有 BPCHAR, VARCHAR, NVARCHAR, TEXT (注:仅对电话号码码的文本类型数据)。示例 对电话号码进行脱敏。适用于手机号和固话号。保留前三位和后四位,对中间数字进行脱敏。如“13534556093” 脱敏为“135****6093”


详细策略参考 《瀚高安全版数据库系统V4.5-管理手册.pdf-6.5.6 数据编辑函数列表》


3. 其他操作

修改数据编辑策略
修改当前策略中,列 colname 使用的数据编辑函数
ALTER REDACTION POLICY policyname MODIFY COLUMN colname USING func_name; 
删除数据编辑策略
DROP REDACTION POLICY policynamelist
例:
DROP REDACTION POLICY p1;   --删除数据编辑策略 p1



4. 使用限制


限制

1、创建策略只能使用 syssso 进行设定,其他用户无权限。

2、一张表中只能创建一个策略

3、一个列只能指定一个数据编辑函数


5. 示例

创建表
\c highgo sysdba
create table test_redaction (id int,name varchar(22),salary int,hiredate timestamp,telephone text);  
insert into test_redaction values (1,'aaa',20000,'2022-06-21 14:00:00','15512345678');
授权用户
create user test with password 'Hg#123456';  --创建一个新用户
grant select on test_redaction to test; --授权
开启编辑策略
alter system set redaction_policy to on;   
select pg_reload_conf();
show redaction_policy;
创建编辑策略,多列
\c highgo syssso
create redaction policy p1 on test_redaction add column salary using redact_digits,add column telephone using redact_phone for (user = 'test');  
使用屏蔽用户查询数据
\c highgo test
select * from test_redaction;  
highgo=> select * from test_redaction ;
 id | name | salary |      hiredate       |  telephone
----+------+--------+---------------------+-------------
  1 | aaa  |      0 | 2022-06-21 14:00:00 | 155****5678
(1 row)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994931/viewspace-2926440/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
瀚高PG实验室(Highgo PG Lab)依托于瀚高DBA运维团队及瀚高数据库PG内核研发团队,旨在深入研究PostgreSQL技术、使用技巧、内核探秘、PG教学等,并进行分享。欢迎大家关注、交流。

注册时间:2021-02-18

  • 博文量
    184
  • 访问量
    126039