華為云:PostgreSQL如何實(shí)現(xiàn)特定列脫敏

來源: 華為云社區(qū)
作者:大象數(shù)據(jù)庫
時(shí)間:2020-09-15
17692
有些情況下,有些表的特定列含有敏感數(shù)據(jù)(如用戶信息表中,用戶手機(jī)號),自然,我們只想讓“管理員”用戶看到這些敏感數(shù)據(jù),其他用戶我們希望其看到“處理后的”—— 脫敏的數(shù)據(jù),本文分享兩種數(shù)據(jù)脫敏的方法。

1      需求

有些情況下,有些表的特定列含有敏感數(shù)據(jù)(如用戶信息表中,用戶手機(jī)號),自然,我們只想讓“管理員”用戶看到這些敏感數(shù)據(jù),其他用戶我們希望其看到“處理后的”—— 脫敏的數(shù)據(jù)。

2      實(shí)現(xiàn)方案介紹

方案1: 使用pg匿名化插件postgresql_anonymizer;

方案2: 使用視圖進(jìn)行脫敏;

2.1      方案1: 使用pg匿名化插件postgresql_anonymizer

(示例來自插件官方文檔)

-- 修改配置文件:   shared_preload_libraries = 'pg_stat_statements, anon'

-- 1. 創(chuàng)建并激活插件

CREATE   EXTENSION IF NOT EXISTS anon CASCADE;

SELECT   anon.mask_init();

-- 2.聲明屏蔽的用戶

CREATE ROLE   skynet;

COMMENT ON   ROLE skynet IS 'MASKED';

-- 3.聲明屏蔽規(guī)則

COMMENT ON   COLUMN people.name IS 'MASKED WITH FUNCTION anon.random_last_name()';

COMMENT ON   COLUMN people.phone IS 'MASKED WITH FUNCTION   anon.partial(phone,2,$$******$$,2)';

-- 4. 查詢屏蔽敏感信息的用戶

\! psql test   -U skynet -c 'SELECT * FROM people;'

 id    |   name   |     phone

-----+----------+------------

T800 |   n3xtchen | 13******11

2.2      方案2: 使用視圖進(jìn)行脫敏

(示例來自本地開發(fā)環(huán)境)

-- 1. 創(chuàng)建測試用戶

create user   root;

create user   normal_user;

-- 2. 切換到root建表 & 視圖

set role root;

create table   user_phone_number(id int, user_name name, phone_number name);

insert into   user_phone_number values(1, '張三', '12345678');

insert into   user_phone_number values(1, '李四', '56781234');

create or   replace view member_phone_number as

    SELECT

            S.id,

            S.user_name,

            substring(S.phone_number, 1,1) ||   '******' ||substring(S.phone_number, 8,8) as phone_number

    FROM user_phone_number AS S;

-- 3. 回收表的權(quán)限,授予普通用戶view權(quán)限

revoke all on   user_phone_number from public;

grant all on   member_phone_number to normal_user;

-- 4. 使用普通用戶測試

reset role;

set role   normal_user;

select * from   user_phone_number;

select * from   member_phone_number;

結(jié)果如下:

1598877475182085287.png

3      優(yōu)缺點(diǎn)比較

1598877553740052553.png

 總的來看,喜歡“偷懶”、喜歡嘗鮮的話,可以使用 postgresql_anonymizer 插件;但如果追求穩(wěn)定,建議使用視圖來實(shí)現(xiàn)。

4      參考

1.PostgreSQL: 匿名化(Anonymizer)工具 官網(wǎng):https://labs.dalibo.com/postgresql_anonymizer

2.PostgreSQL: 匿名化(Anonymizer)工具 官方文檔: https://postgresql-anonymizer.readthedocs.io/en/stable/

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于華為云社區(qū),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
HDC 2025耀星·領(lǐng)航出海高峰論壇:以全域生態(tài)協(xié)同重構(gòu)出海增長曲線
HDC 2025耀星·領(lǐng)航出海高峰論壇:以全域生態(tài)協(xié)同重構(gòu)出海增長曲線
6月21日,HDC 2025耀星·領(lǐng)航出海高峰論壇在東莞三丫坡舉辦,吸引了全球開發(fā)者、企業(yè)及生態(tài)出海專家共同參與。論壇聚焦2025年重點(diǎn)區(qū)域行業(yè)生態(tài)趨勢,通過歐洲、歐亞、中東、亞太、拉美等差異化市場的掘金案例,提供從獲量到變現(xiàn)的可持續(xù)發(fā)展新思路。
華為云
開發(fā)者
企業(yè)出海
2025-06-212025-06-21
近6成金融機(jī)構(gòu)的選擇!華為云GaussDB加快金融核心系統(tǒng)轉(zhuǎn)型
近6成金融機(jī)構(gòu)的選擇!華為云GaussDB加快金融核心系統(tǒng)轉(zhuǎn)型
當(dāng)前,數(shù)據(jù)庫在金融機(jī)構(gòu)的應(yīng)用正在從辦公、一般系統(tǒng)逐步邁入核心系統(tǒng)應(yīng)用的深水區(qū)。如何構(gòu)建安全可靠、高效穩(wěn)定的核心系統(tǒng)數(shù)據(jù)庫,支持業(yè)務(wù)運(yùn)營和管理決策,成為了眾多金融機(jī)構(gòu)關(guān)注的焦點(diǎn)問題。
華為云
2024-07-042024-07-04
華為云以系統(tǒng)性創(chuàng)新加速千行萬業(yè)智能化升級
華為云以系統(tǒng)性創(chuàng)新加速千行萬業(yè)智能化升級
華為云全球銷售收入達(dá)553億元人民幣,是全球增長最快的主流云廠商之一。
華為云
2024-04-222024-04-22
華為云發(fā)布新型工業(yè)互聯(lián)網(wǎng)平臺參考架構(gòu)
華為云發(fā)布新型工業(yè)互聯(lián)網(wǎng)平臺參考架構(gòu)
近日,在華為分析師大會上,華為混合云副總裁胡玉海重磅發(fā)布《新型工業(yè)互聯(lián)網(wǎng)平臺參考架構(gòu)》白皮書,在傳統(tǒng)工業(yè)互聯(lián)網(wǎng)的基礎(chǔ)上,融入大模型的能力,讓智能化賦能新型工業(yè)化。
華為云
云服務(wù)
2024-04-222024-04-22
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個(gè)人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家