HGDB之資料編輯

瀚高PG實驗室發表於2021-10-13

作者:申晉奉,瀚高PG實驗室核心成員,資料庫高階工程師,擅長HGDB、Post-greSQL、Oracle等主流資料庫。


 ** 功能介紹 **



該功能在 HGDB-SEE V4.5.7 及之後的版本中提供。


資料編輯(Data Redaction)功能是一種動態資料脫敏機制,可以為不同角色、不同許可權、不同資料型別執行不同的脫敏方案,在資料查詢時對敏感資料進行動態的安全保護,


一個完整的資料編輯策略由三部分組成:資料編輯函式、資料編輯策略應用 SQL命令、相應的許可權配置。

1.使用內建的資料編輯函式;

2.通過繫結策略語句將函式與目標資料關聯;

3.資料編輯函式及策略僅可通過 SYSSSO 使用者建立、修改、刪除、禁用、啟用、授權操作


  **適用場景**


百度詞條對資料脫敏的介紹:指對某些敏感資訊通過脫敏規則進行資料的變形,實現敏感隱私資料的可靠保護。這樣就可以在開發、測試和其它非生產環境以及外包環境中安全地使用脫敏後的真實資料集。在涉及客戶安全資料或者一些商業性敏感資料的情況下,在不違反系統規則條件下,對真實資料進行改造並提供測試使用,如身份證號、手機號、卡號、客戶號等個人資訊都需要進行資料脫敏。是資料庫安全技術之一。


**1、引數開關**

在啟用資料編輯之前,需開啟引數開關:redaction_policy。可通過命令列或直接修

改 conf 檔案進行修改。命令列格式如下:

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

    **2、測試步驟**

    建立測試使用者:

      1、create user dzqzpassword 'Hello@123';2、create user sms password 'Hello@123';3、create user ruoyipassword 'Hello@123';

      在使用者dzqz下建立測試表,並賦予sms、ruoyi的查詢許可權

        1.CREATE TABLE dzqz.student(2.id serial,3.name character varying(10),4.birthday timestamp without time zone,5.sex character(1),6.address character varying(50),7.tel character varying(13)8.email character varying(100),9.bankcard character varying(30)10.);11.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values12.('2','劉明','1985-01-23 00:00:00.0','1','河南省鄭州鄭西區花園小區11號','17789235146','17789235146@163.com','95599-80868-43587-5810');13.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values14.('3','鄭霞','1985-10-23 00:00:00.0','0','河南省鄭州管城區111號','13567890012','13567890012@126.com','62170-03860-00279-5290');15.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values16.('4','牛美麗','1986-04-23 00:00:00.0','0','重慶解放牌嘉陵西路200號','13987560029','13987560029@sina.com','62226-20590-00078-1124');17.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values18.('1','張立生','1986-01-23 00:00:00.0','1','河北省邯鄲臨漳區三臺街道11號','13456789012','13456789012@qq.com','62111-62550-20091-8255');19.---賦權給sms和ruoyi使用者20.grant select on table studenf to sms、ruoyi;

        查詢資料結果為:

        HGDB之資料編輯


        **測試一:對name列進行脫敏處理**

        使用syssso使用者設定策略,此策略只針對sms使用者生效。

        HGDB之資料編輯

        此時切換到sms,檢視效果,name列已經顯示為帶*號的密文了。

        HGDB之資料編輯

        再切換到ruoyi,檢視效果,此時顯示是明文的姓名。

        HGDB之資料編輯

        **測試二、對email列、bankcar列進行處理**

        這一回設定對使用者ruoyi和sms都生效,仍然使用syssso設定策略


        用sms使用者檢視

        HGDB之資料編輯


        用ruoyi使用者檢視

        HGDB之資料編輯



        **3、修改策略**

        目前修改策略可使用以下幾種方式:

        (1)ALTER REDACTION POLICY policyname MODIFY COLUMN colname USING func_name;

        修改當前策略中,列 colname 使用的資料編輯函式

        (2)ALTER REDACTION POLICY policyname RENAME TO policyname2;

        修改當前策略的名字

        (3)ALTER REDACTION POLICY policyname DISABLE/ENABLE;

        修改當前策略是否啟用

        (4)ALTER REDACTION POLICY policyname DROP COLUMN colname;

        修改當前策略,刪除掉其中的某一行資料編輯列

        (5)ALTER REDACTION POLICY policyname for (user = ‘username’);

        修改當前策略,增加資料編輯表示式

        (6)ALTER REDACTION POLICY policyname ADD COLUMN colname USING func_name

        修改當前策略,增加資料編輯列

        **4、刪除策略**

        DROP REDACTION POLICY policynamelist

        例:

        (1)DROP REDACTION POLICY p1;

        刪除資料編輯策略 p1

        (2)DROP REDACTION POLICY p1,p2;

        刪除資料編輯策略 p1,p2

        **5、限制**

        1、建立策略只能使用 syssso 進行設定,其他使用者無許可權。

        2、一張表中只能建立一個策略

        3、一個列只能指定一個資料編輯函式


                                                                          **規則介紹**


        **1、函式列表**

        HGDB之資料編輯

        HGDB之資料編輯


        來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2795789/,如需轉載,請註明出處,否則將追究法律責任。

        相關文章