王立
摘 要:本次研究基于Oracle VPD技術(shù)基礎(chǔ)之上,改變了傳統(tǒng)的建立視圖屏蔽敏感數(shù)據(jù)的方法,實現(xiàn)了系統(tǒng)可配置數(shù)據(jù)屏蔽策略。簡述Oracle VPD技術(shù)在運用中針對系統(tǒng)配置數(shù)據(jù)的屏蔽需求,及該技術(shù)的運用系統(tǒng)功能需求。在實現(xiàn)Oracle VPD技術(shù)控制的方案策略研究下,實現(xiàn)配置數(shù)據(jù)的有效屏蔽,滿足我院對敏感數(shù)據(jù)的屏蔽需求。
關(guān)鍵詞:Oracle VPD技術(shù);系統(tǒng)配置;數(shù)據(jù)屏蔽
中圖分類號:TP311.13 文獻(xiàn)標(biāo)識碼:B DOI:10.3969/j.issn.1006-1959.2018.22.004
文章編號:1006-1959(2018)22-0011-03
System Configurable Data Masking Based on Oracle VPD Technology
WANG Li
(Medical Information Center,Peking University People's Hospital,Beijing 100044,China)
Abstract:Based on the Oracle VPD technology, this study changed the traditional method of establishing view masking sensitive data and realized the system configurable data masking strategy. Briefly describe the shielding requirements of Oracle VPD technology for system configuration data, and the system function requirements of the technology. Under the research of the solution strategy of implementing Oracle VPD technology control, the effective shielding of configuration data is realized to meet the shielding requirements of sensitive data in our hospital.
Key words:Oracle VPD technology; System configuration; Data masking
隨著各項新型技術(shù)設(shè)備的不斷創(chuàng)新研發(fā),被較為廣泛的應(yīng)用于我國醫(yī)院的絕大多數(shù)日常工作中。出于對有關(guān)數(shù)據(jù)信息的安全及工作便捷性考慮,對敏感數(shù)據(jù)的屏蔽已經(jīng)顯得更加至關(guān)緊要。通常所采用的數(shù)據(jù)屏蔽方法,都是基于傳統(tǒng)的構(gòu)建視圖方法,完成對有關(guān)敏感數(shù)據(jù)的屏蔽,借助不同授權(quán)用戶的不同視圖,完成對有關(guān)數(shù)據(jù)信息訪問權(quán)限的控制[1-3]。此種情況通常需要構(gòu)建諸多不同視圖,存在系統(tǒng)開發(fā)較為復(fù)雜且整體管理不便的劣勢。隨著Oracle VPD技術(shù)的研發(fā),譬如Oracle 8i系統(tǒng)能夠有效的提供虛擬專用數(shù)據(jù)庫(virtual private database),確保敏感數(shù)據(jù)的安全性,更加行之有效的實現(xiàn)有關(guān)數(shù)據(jù)的屏蔽[4,5]。
1 Oracle VPD技術(shù)概述
Oracle VPD技術(shù)在系統(tǒng)設(shè)計中,能夠有效實現(xiàn)行級控制作用,針對不同的用戶訪問權(quán)限,可以看到不同的用戶數(shù)據(jù)集,并且查看對授權(quán)用戶的有關(guān)數(shù)據(jù)。對有關(guān)數(shù)據(jù)的查詢及行級控制,主要是借助修改Oracle VPD的SQL查詢功能。在用戶輸入后查詢語句之后,會出現(xiàn)一條Where條件指令,完成相應(yīng)的權(quán)限修改或添加,針對輸出記錄加以有效控制[6,7]。借助Oracle VPD技術(shù),能夠有效確保敏感數(shù)據(jù)的安全性,同時還能夠運用更加便捷高效的系統(tǒng)開發(fā)方法,實現(xiàn)對敏感數(shù)據(jù)的安全屏蔽。在滿足有關(guān)安全數(shù)據(jù)需求的情況下,無需變更應(yīng)用代碼,實現(xiàn)用戶訪問權(quán)限的變更。Oracle VPD技術(shù)所實現(xiàn)的針對性數(shù)據(jù)安全限制方法,主要是借助用戶端完成SQL指令之后,PL/SQL函數(shù)根據(jù)不同的安全定義條件,基于SQL語句實現(xiàn)(WHERE子句)追加形成新的SQL語句執(zhí)行口令,最終返回不同的記錄中[8]。
2 Oracle VPD技術(shù)需求及方案設(shè)計
2.1業(yè)務(wù)及功能需求 在本院開展有關(guān)業(yè)務(wù)過程中,通常需要基于同一個OU下,根據(jù)不同部門完成相應(yīng)的業(yè)務(wù)操作,同時確保不同的操作權(quán)限始終保持獨立,有關(guān)工作人員只能對自己的權(quán)限信息屏蔽?;谏鲜鰳I(yè)務(wù)需求,Oracle VPD應(yīng)當(dāng)基于不同的用戶權(quán)限,設(shè)置差異性的訂單類型,確保不同的訂單信息,只有在特定的用戶權(quán)限下?lián)碛?,并對?quán)限信息進(jìn)行屏蔽;不同科室的工作開展,只能使用自己科室價目表完成有關(guān)信息查詢,并對價目表的科室信息加以屏蔽;不同科室可以根據(jù)具體的患者使用情況,及時修改相應(yīng)的數(shù)據(jù)信息,并對患者的具體使用情況加以屏蔽;不同科室能夠?qū)ψ约嚎剖覂?nèi)的有關(guān)訂單信息加以查詢及修改,之后對有關(guān)訂單信息完成屏蔽。
2.2 Oracle VPD技術(shù)方案設(shè)計 Oracle VPD技術(shù)可以基于安全策略,動態(tài)化實現(xiàn)一個條件的行級管理來完成數(shù)據(jù)屏蔽,在實現(xiàn)一個或者多個的策略表視圖函數(shù)關(guān)聯(lián)之后,即完成了Oracle VPD的數(shù)據(jù)庫功能。根據(jù)安全策略的測試用表,完成直接或者間接的數(shù)據(jù)源庫調(diào)用,策略函數(shù)即可返回至一個訪問條件,將應(yīng)用程序添加至SQL語句后,實現(xiàn)動態(tài)化的用戶修改數(shù)據(jù)訪問權(quán)限。通常情況下,系統(tǒng)開發(fā)工作者在完成對部分存儲過程的系統(tǒng)編寫時,通過對SQL語句添加(SQL謂詞)來實現(xiàn)對VPD的權(quán)限控制。VPD能夠有效確保多名用戶,無論基于哪種方式完成數(shù)據(jù)訪問。只需要開發(fā)人員在Oracle-headers-all中添加“header-id>1000”的SQL條件謂詞,那么任何程序在訪問數(shù)據(jù)過程中,其真正運行的SQL語句均為“select*from oe-oeder-headers-all WHERE header-id>1000”,即實現(xiàn)了動態(tài)化生成條件謂詞,確保了有關(guān)數(shù)據(jù)的動態(tài)化安全控制。
具體設(shè)計步驟如下:
為了實現(xiàn)VPD控制首先需要建一個策略函數(shù),先建一個測試用表,插入測試數(shù)據(jù),如:
create table cux_policy_test(code number,
name varchar2(30));
insert into cux_policy_test values('101','張三');
insert into cux_policy_test values('102','李四');
insert into cux_policy_test values('103','王五');
select * from cux_policy_test;
策略函數(shù)如下:
create OR REPLACE function t_policy(prm_schema
varchar2, prm_table varchar2)
return varchar2 is
l_where varchar2(300);
begin
l_where := ' code <> 102 ';
return l_where;
end;
在表中啟用策略函數(shù):
BEGIN
Dbms_Rls.Add_Policy(object_name => 'cux_policy_test',
policy_name => 'cux_policy_t',
policy_function =>'t_policy' ,
enable =>TRUE );
END;
這時執(zhí)行如下查詢語句:
Select * from cux_policy_test;
只會顯示code <> 102 的兩條記錄。
3 Oracle VPD技術(shù)方案應(yīng)用效果分析
通過以上方法,有效的實現(xiàn)了基于應(yīng)用系統(tǒng)的有關(guān)數(shù)據(jù)可屏蔽配置,同時也滿足了數(shù)據(jù)的安全屏蔽需求。在我院的實際工作開展中,也實現(xiàn)了對ERP物流數(shù)據(jù)中不同維度的數(shù)據(jù)屏蔽(圖1),其分別為物料類別、供應(yīng)商類型、物料目標(biāo)子庫、物料來源子庫。具體的定義策略函數(shù)條件子句見圖2,實現(xiàn)不同職責(zé)可以查看的物料類型自定義(圖3)。
由此可以發(fā)現(xiàn)VPD通過基于安全策略,實現(xiàn)動態(tài)化返回條件的行級數(shù)據(jù)屏蔽。在基于前臺工作開展中,實現(xiàn)了對用戶訪問權(quán)限的控制,有效的減少了開發(fā)量,提升了代碼的整體復(fù)用性能。
4 總結(jié)
通過在本次研究中,有效的實現(xiàn)了基于VPD安全策略的應(yīng)用系統(tǒng)中有關(guān)數(shù)據(jù)的可屏蔽配置,同時也滿足了數(shù)據(jù)的安全屏蔽需求,有效確保多名用戶無論基于何種方式均可以完成數(shù)據(jù)訪問。同時,真正運行的SQL語句能夠?qū)崿F(xiàn)動態(tài)化生成條件謂詞,確保了有關(guān)數(shù)據(jù)的動態(tài)化安全控制。
參考文獻(xiàn):
[1]黃杰生,羅鵬,韓早強.基于虛擬專用數(shù)據(jù)庫的高效數(shù)據(jù)訪問權(quán)限控制[J].科技風(fēng),2017(1):160-161.
[2]Wang ZH,Wang ZY,Zhang M,et al.VPD fine-grained access control system[J].Journal of Computer Systems,2013,22(9):46-49.
[3]張連喜,王林.基于Oracle數(shù)據(jù)庫的作戰(zhàn)數(shù)據(jù)虛擬化安全應(yīng)用方法研究[J].網(wǎng)絡(luò)空間安全,2013,4(4):40-43.
[4]宋健.靈活可配置的供暖企業(yè)后端數(shù)據(jù)服務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[D].北京郵電大學(xué),2014.
[5]李廣德,富豐珍,席本野,等.基于熱擴(kuò)散技術(shù)的三倍體毛白楊單木及林分蒸騰耗水研究[J].生態(tài)學(xué)報,2016,36(10):2945-2953.
[6]張京一.基于Hadoop的Web查詢平臺的權(quán)限控制與性能優(yōu)化模塊[D].北京郵電大學(xué),2015.
[7]任剛,馬友忠,馬民生,等.可配置管理信息系統(tǒng)的數(shù)據(jù)庫設(shè)計方法[J].現(xiàn)代電子技術(shù),2010,33(14):76-77.
[8]Wang J,Zhang N,He TJ.Thoughts on AFC System Configurable Data/Service Exchange Platform[J].Metro Rail Transit,2015,28(1):8-11.
收稿日期:2018-5-9;修回日期:2018-6-7
編輯/錢洪飛