• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Oracle虛擬專用數(shù)據(jù)庫的實現(xiàn)及應(yīng)用

    2021-07-19 22:11:53徐正雄李思琳雷姣惠李捷波肖文博
    電腦知識與技術(shù) 2021年13期
    關(guān)鍵詞:實現(xiàn)應(yīng)用

    徐正雄 李思琳 雷姣惠 李捷波 肖文博

    摘要:Oracle數(shù)據(jù)庫的虛擬專用數(shù)據(jù)庫VPD(Virtual Private Database)能從數(shù)據(jù)庫層面對數(shù)據(jù)庫實現(xiàn)細(xì)粒度訪問控制及安全應(yīng)用策略實現(xiàn)。本文通過Oracle虛擬專用數(shù)據(jù)庫的實現(xiàn)及應(yīng)用場景介紹,為數(shù)據(jù)庫管理員提供多途徑的數(shù)據(jù)管理手段,解決前端應(yīng)用對數(shù)據(jù)不同訪問控制的安全管理及具體需求,提高數(shù)據(jù)庫的安全性及可用性。

    關(guān)鍵詞:Oracle;虛擬專用數(shù)據(jù)庫;實現(xiàn);應(yīng)用

    中圖分類號:TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A

    文章編號:1009-3044(2021)13-0039-02

    Abstract: VPD (virtual private database) of Oracle database can realize fine-grained access control and security application strategy from the database layer. This paper introduces the implementation and application scenarios of Oracle virtual private database, provides database administrators with multi-channel data management means, solves the security management and specific requirements of front-end applications for different data access control, and improves the security and availability of database.

    Key words: Oracle, virtual private database, implementation, application

    1 概述

    Oracle數(shù)據(jù)庫在實際應(yīng)用中可能會遇到不同級別的數(shù)據(jù)查詢權(quán)限劃分或不同種類的數(shù)據(jù)查詢需求, Oracle數(shù)據(jù)庫的虛擬專用數(shù)據(jù)庫VPD(Virtual Private Database)能從數(shù)據(jù)庫層面對數(shù)據(jù)庫實現(xiàn)細(xì)粒度訪問控制及安全應(yīng)用策略實現(xiàn),數(shù)據(jù)庫管理員(DBA)可以用少量的VPD策略維護(hù)一個較大的數(shù)據(jù)庫,針對不同用戶制定不同的訪問控制策略,而不必針對不同用戶建立不同或單獨的數(shù)據(jù)庫,降低系統(tǒng)開銷,提高數(shù)據(jù)庫精細(xì)化管理及安全訪問控制功能,從數(shù)據(jù)庫層面實現(xiàn)數(shù)據(jù)管理的高可用及高安全。

    2 應(yīng)用場景分析

    Oracle數(shù)據(jù)庫管理過程中,某些數(shù)據(jù)信息涉及保密及特殊要求只能由特定權(quán)限的用戶進(jìn)行訪問查詢及修改,或者同一個數(shù)據(jù)表內(nèi)的不同數(shù)據(jù),有不同權(quán)限用戶訪問控制需求,用數(shù)據(jù)庫普通用戶權(quán)限管理功能無法實現(xiàn)。Oracle虛擬專用數(shù)據(jù)庫將服務(wù)器實施的細(xì)粒度訪問控制和安全應(yīng)用程序上下文結(jié)合起來,支持上下文的函數(shù)范圍一個謂語,即where子句,該子句自動附加到所有的select子句或其他DML語句。換句話,由VPD控制的表、視圖、同義詞上的select語句將根據(jù)where子句返回行的子集,該子集由通過應(yīng)用程序上下文生效的安全策略函數(shù)自動生成。VPD的主要組成部分是行級別的安全性(RLS),也稱為“細(xì)粒度訪問控制”(FGAC)。細(xì)粒度訪問控制,能很好實現(xiàn)以上管理控制,在用戶端完全透明無訪問障礙。具體應(yīng)用例如在醫(yī)院信息管理系統(tǒng)中,患者數(shù)據(jù)存放于同一數(shù)據(jù)庫中,某些重點及特殊患者醫(yī)療涉及隱私及保密需要,需要對不同身份類別患者進(jìn)行不同權(quán)限數(shù)據(jù)訪問控制,Oracle數(shù)據(jù)庫細(xì)粒度訪問控制就能在用戶完全透明的前提下,有效實現(xiàn)不同類別用戶查詢、修改、刪除不同類別數(shù)據(jù)的權(quán)限需求,而不需要單獨建立特殊患者數(shù)據(jù)庫,提高了實際應(yīng)用中的高可用性及高安全性。

    3 虛擬專用數(shù)據(jù)庫(VPD)的安全管理策略實現(xiàn)

    應(yīng)用場景假設(shè)一收治特殊患者科室,只允許特殊用戶訪問該科室患者信息數(shù)據(jù) ,其他用戶嚴(yán)格控制訪問。

    1)首先創(chuàng)建程序包DEPT_SELECT,程序包中的過程是可以設(shè)置上下文變量的唯一過程,程序包主體如下:

    create or replace package body dept_select as

    function select_lmt(object_schema Varchar2,object_name Varchar2) Return? Varchar2? is

    rtn_predicate Varchar2(500);

    begin

    if user='XZX' then

    rtn_predicate := 'Dept_code ='||'092801';

    else

    rtn_predicate := 'Dept_code<>'||'092801';

    end if;

    return rtn_predicate;

    end;

    end;

    其中設(shè)置條件為“當(dāng)數(shù)據(jù)庫用戶(User)等于xzx時,變量rtn_predicate賦值為Dept_code='092801',否則為Dept_code <>'092801'? ”。

    2)利用oracle內(nèi)置程序包DBMS_RLS,其含有大量子程序,DBA可以使用這些子程序維護(hù)與表、視圖、同義詞關(guān)聯(lián)的VDP策略。本文介紹最常用的子程序ADD_POLICE和DROP_POLICE。

    (1)子程序ADD_POLICE實現(xiàn)將細(xì)粒度的訪問控制策略添加到對象 。接上面示例,我們利用ADD_POLICE將程序包DEPT_SELECT的策略應(yīng)用于表inpadm.bed_rec:

    BEGIN

    DBMS_RLS.ADD_POLICY(

    object_schema=> 'inpadm',

    object_name=> 'bed_rec',

    policy_name=> 'dept_audit',

    function_schema => 'sys',

    policy_function=> 'dept_select.select_lmt',

    statement_types=> 'select'

    );

    end;

    其中object_schema是包含由策略保護(hù)的表、視圖或同義詞的模式,如果該值為空,則使用調(diào)用過程的用戶的模式;object_name是由策略保護(hù)的表、視圖和同義詞的名稱;statement_types是應(yīng)用策略的語句類型,允許的值(以逗號分隔)可以是select、insert、update、delete和index的任意組合。默認(rèn)條件下,除了index之外的所有類型適用;policy_name是添加到對象的策略名稱,對于受保護(hù)的每個對象,該策略名必須唯一;policy_function是函數(shù)名稱,該函數(shù)為針對object_name的策略生成謂語,如果函數(shù)是程序包的一部分,則在此處必須指定程序包名,用于限定策略函數(shù)名。

    以上名稱為dept_audit細(xì)粒度訪問控制策略實現(xiàn):當(dāng)對表inpadm.bed_rec進(jìn)行select查詢操作時,當(dāng)查詢用戶不為xzx時,查詢結(jié)果不返回表bed_rec字段dept_code值為092801的數(shù)據(jù) ,只有查詢用戶為xzx時,才能返回相應(yīng)數(shù)據(jù)記錄。在實際應(yīng)用中結(jié)合實例,假設(shè)某醫(yī)院莫特殊科室在醫(yī)院床位記錄表bed_rec中,科室代碼字段值為092801,應(yīng)用以上程序,就能實現(xiàn)當(dāng)用戶名為xzx的數(shù)據(jù)庫用戶執(zhí)行查詢語句時,可以返回該床位代碼為該科室的患者信息 ,其他用戶查詢該科室患者數(shù)據(jù)信息返回值為0。

    (2)子程序DROP_POLICE實現(xiàn)刪除對象中的細(xì)粒度訪問控制策略。如刪除名稱為dept_audit的策略,命令如下:

    BEGIN

    DBMS_RLS.DROP_POLICY(

    object_schema=> ' inpadm ',

    object_name=> ' bed_rec ',

    policy_name=> 'dept_audit');

    END;

    命令執(zhí)行后,對對象表inpadm.bed_rec的細(xì)粒度訪問控制策略失效 。

    4 總結(jié)

    Oracle數(shù)據(jù)庫的虛擬專用數(shù)據(jù)庫VPD的應(yīng)用,能解決很多應(yīng)用場景中對數(shù)據(jù)訪問控制的特殊需求。只需要極低的系統(tǒng)開銷,就能對相同數(shù)據(jù)庫的相同數(shù)據(jù)實現(xiàn)不同權(quán)限管理,減少單獨建庫的軟、硬件資源配置需求,方便管理及維護(hù),且前端應(yīng)用透明無痕,充分體現(xiàn)Oracle數(shù)據(jù)庫的高安全及高可用。通過Oracle虛擬專用數(shù)據(jù)庫的應(yīng)用,我們能對在用系統(tǒng)數(shù)據(jù)庫基礎(chǔ)上對新的數(shù)據(jù)管理需求做深層次的數(shù)據(jù)統(tǒng)籌規(guī)劃及管理,為數(shù)據(jù)管理提供更安全、精細(xì)、科學(xué)的技術(shù)手段支撐。

    參考文獻(xiàn):

    [1] 許杰,魯慧哲,左翼.如何建立基于虛擬數(shù)據(jù)庫的Oracle數(shù)據(jù)安全防護(hù)體系[J].中國數(shù)字醫(yī)學(xué),2016,11(9):106-108.

    [2] 牛承志,趙丹.虛擬數(shù)據(jù)庫技術(shù)在集成化醫(yī)院信息系統(tǒng)中的應(yīng)用研究[J].河南職工醫(yī)學(xué)院學(xué)報,2011,23(2):248-250.

    [3] 杜威,鄒先霞,潘久輝.虛擬數(shù)據(jù)庫的實現(xiàn)方法[J].計算機(jī)工程與設(shè)計,2010,31(14):3201-3206.

    【通聯(lián)編輯:王力】

    猜你喜歡
    實現(xiàn)應(yīng)用
    辦公室人員尚需制定個人發(fā)展規(guī)劃
    蘇州信息學(xué)院教務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)
    如何實現(xiàn)人企合一
    淺析鐵路通信傳輸?shù)臉?gòu)成及實現(xiàn)方法
    GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
    科技視界(2016年20期)2016-09-29 12:03:12
    煤礦井下坑道鉆機(jī)人機(jī)工程學(xué)應(yīng)用分析
    科技視界(2016年20期)2016-09-29 11:47:01
    氣體分離提純應(yīng)用變壓吸附技術(shù)的分析
    科技視界(2016年20期)2016-09-29 11:02:20
    會計與統(tǒng)計的比較研究
    东丰县| 阜新| 大港区| 久治县| 灵山县| 临潭县| 敖汉旗| 洮南市| 奉贤区| 元氏县| 高碑店市| 阳城县| 东乡| 长武县| 德庆县| 平阴县| 白山市| 洛南县| 苍梧县| 禹城市| 登封市| 福建省| 承德市| 安康市| 五指山市| 新建县| 奉贤区| 永兴县| 乌拉特前旗| 马公市| 云浮市| 大名县| 琼海市| 响水县| 兴仁县| 嵊泗县| 和硕县| 肇东市| 海口市| 海丰县| 措美县|