hgdb資料編輯

瀚高PG實驗室發表於2022-12-02

瀚高資料庫

文件用途

資料編輯(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部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2926440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章