6

hgdb数据编辑_pg_hgdb的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/u_13646489/5907007
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

hgdb数据编辑

精选 原创

瀚高实验室 2022-12-02 14:16:07 博主文章分类:Highgo DB ©著作权

文章标签 数据 数据类型 敏感数据 文章分类 MySQL 数据库 阅读数173

瀚高数据库

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

数据编辑(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 格式的文本类型数据)。示例 '[email protected]' 将会被脱敏为'[email protected]', 对出现第一个'@'之前的文本进行脱敏  
  • 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、一个列只能指定一个数据编辑函数

创建表
\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)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK