為了在一定程度上限制非授權用戶對隱私數據的窺探,MogDB數據可以利用動態數據脫敏(Dynamic Data Masking)特性保護用戶隱私數據。在非授權用戶訪問配置了動態數據脫敏策略的數據時,數據庫將返回脫敏后的數據而達到對隱私數據保護的目的
1.動態脫敏相關參數說明
enable_security_policy
參數說明: 安全策略開關,控制統一審計和數據動態脫敏策略是否生效。
GS_MASKING_POLICY_FILTERS系統表記錄動態數據脫敏策略對應的用戶過濾條件,當用戶條件滿足FILTER條件時,對應的脫敏策略才會生效。需要有系統管理員或安全策略管理員權限才可以訪問此系統表。
GS_MASKING_POLICY系統表記錄動態數據脫敏策略的主體信息,每條記錄對應一個脫敏策略。需要有系統管理員或安全策略管理員權限才可以訪問此系統表。
GS_MASKING_POLICY_ACTIONS系統表記錄動態數據脫敏策略中相應的脫敏策略包含的脫敏行為,一個脫敏策略對應著該表的一行或多行記錄。需要有系統管理員或安全策略管理員權限才可以訪問此系統表。
GS_MASKING視圖顯示所有已配置的動態脫敏策略信息。需要有系統管理員或安全策略管理員權限才可以訪問此視圖。
2.配置動態脫敏
(1)設置參數
–設置參數
[omm@node1 ~]$ gs_guc set -I all -N all -c "enable_security_policy=on"
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.
Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!
–重啟數據庫
[omm@node1 ~]$ gs_om -t restart
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.
Starting cluster.
=========================================
=========================================
Successfully started.
(2)創建測試表
openGauss=# Create table people(id int,name varchar(20),num varchar(20));
CREATE TABLE
openGauss=# Insert into people values(1,'test01','123456');
INSERT 0 1
openGauss=# Insert into people values(1,'test02','3456564');
INSERT 0 1
(3)根據策略配置脫敏
–語法格式
CreateMaskingPolicy ::= CREATE MASKING POLICY policy_name masking_clause[, ...]* policy_filter [ENABLE | DISABLE];
參數說明::
policy_name 審計策略名稱,需要唯一,不可重復。
label_name 資源標簽名稱。
masking_clause 指出使用何種脫敏函數對被label_name標簽標記的數據庫資源進行脫敏,支持用schema.function的方式指定脫敏函數。
policy_filter 指出該脫敏策略對何種身份的用戶生效,若為空表示對所用用戶生效。
FILTER_TYPE 描述策略過濾的條件類型,包括IP | APP | ROLES。
filter_value 指具體過濾信息內容,例如具體的IP,具體的APP名稱,具體的用戶名。
ENABLE|DISABLE 可以打開或關閉脫敏策略。若不指定ENABLE|DISABLE,語句默認為ENABLE。
–將表的敏感列加入標簽
openGauss=# create resource label people_lable add column(people.num);
CREATE RESOURCE LABEL
–配置所有用戶,查看表時都進行脫敏
openGauss=# create masking policy mask_name_pol maskall on label(people_lable);
CREATE MASKING POLICY
–查看表
openGauss=# select * from people;
id | name | num
----+--------+---------
1 | test01 | xxxxxx
1 | test02 | xxxxxxx
(2 rows)
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




