將生產環境資料匯出至測試環境或別的環境中,需將手機號、銀行卡賬號、姓名、身份證號及一些業務中的敏感資料進行脫敏,在mysql中可以通過以下方法根據實際應用進行處理.
delimiter $$
create function `f_get_rand_number`(p_size int) returns int(20)
comment '取引數傳入長度的隨機數'
begin
-- select f_get_rand_number(4) ; -- 1699
declare v_rand_number int(20);
declare v_multiplier int;
if p_size>20 then
set p_size = 20;
end if;
set v_multiplier=rpad('1',p_size,'0');
select round(rand() * v_multiplier + v_multiplier) into v_rand_number;
return v_rand_number;
enddelimiter;delimiter
create function `f_padding_str`(p_original varchar(200),p_index int ,p_padding_str varchar(1)) returns varchar(200) charset utf8
comment '資料脫敏 將p_original從p_index位後替換成p_padding_str'
begin
-- select f_padding_str('良好壓頂奇才',4,'某'); -- 良好壓頂某某
declare v_rtn_str varchar(200);
declare v_len int;
if p_original is null then
return '';
end if;
if char_length(p_original)>200 then
set p_original = substring(p_original,1,200);
end if;
set v_len = char_length(p_original);
set v_rtn_str = rpad(substring(p_original,1,p_index),v_len,p_padding_str);
return v_rtn_str;
enddelimiter;delimiter
create function `f_replace_str`(p_original varchar(200),p_index int ,p_size int,p_replace_str varchar(100)) returns varchar(200) charset utf8
comment '資料脫敏 將p_original從p_index位後p_size長度的字串替換成p_replace_str'
begin
-- select f_replace_str('12345678',2,3,'bbb'); -- 1bbb5678
-- select f_replace_str('12345678',2,0,'bbb'); -- 1bbb
-- select f_replace_str('12345678',-2,0,'bbb');-- 123456bbb
declare v_rtn_str varchar(200);
declare v_sub_str varchar(100);
if p_original is null then
return '';
end if;
if char_length(p_original)>200 then
set p_original = substring(p_original,1,200);
end if;
-- 當p_size為0時,則將p_index後所有字元替換為p_replace_str
if p_size =0 then
set v_sub_str = substring(p_original,p_index);
else
set v_sub_str = substring(p_original,p_index,p_size);
end if;
set v_rtn_str = replace(p_original,v_sub_str,p_replace_str);
return v_rtn_str;
end$$
delimiter ;
mysql資料脫敏處理方法
將生產環境資料匯出至測試環境或別的環境中,需將手機號 銀行卡賬號 姓名 身份證號及一些業務中的敏感資料進行脫敏,在mysql中可以通過以下方法根據實際應用進行處理.delimiter create function f get rand number p size int returns int 2...
mysql 中文脫敏 怎樣選擇資料庫脫敏系統?
目前國內廠商對資料脫敏產品已經區分靜態資料脫敏與動態資料脫敏,我分別說下這兩款產品如何選擇,應具備的功能有哪些,一款好的靜態脫敏產品應具備以下功能 確保資料脫敏有效性 保證脫敏後的資料能夠準確反映原始資料的業務屬性和資料分布特徵,例如對於原始資料中的姓名 位址 病症 企業名稱等資訊需要在脫敏後仍然具...
資料脫敏技術
敏感資料 如信用卡號碼 個人識別資訊 如社會安全號碼 醫療診斷和甚至非個人的敏感資料 例如公司財務資訊和智財權 的 是由於企業員工和外部人士濫用職權或工作失誤所致。資料脫敏技術的目是通過從客戶端隱藏敏感資料,以防止這些資料的濫用。技術 商提供了多種資料脫敏技術,例如用相似的字元替代一些字段 用遮蔽字...