电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle數(shù)據(jù)庫用VPD來確保信息的隱私

瀏覽:5日期:2023-11-13 14:13:54
Oracle的行級安全性為用戶提供了他們自己的虛擬專有數(shù)據(jù)庫。鑒于隱私法,如美國的HIPAA(健康保險移植和責(zé)任法案)、Gramm-Leach-Bliley法案、Sarbanes-Oxley法案以及歐共體的安全港法律(Safe Harbour Law),確保適當(dāng)?shù)男畔㈦[私是當(dāng)今眾多企業(yè)迫切關(guān)心的一個問題。其他隱私指令,如Visa的持卡人信息安全計劃(Cardholder Information Security Program,CISP)也要求企業(yè)確保對信息的訪問是得到嚴(yán)格控制的。 Oracle一直都提供授權(quán)(或拒絕)用戶訪問數(shù)據(jù)庫對象的能力,但是這些訪問權(quán)限是在對象級別上定義的--是對于整張表,而不是對于表中特定的行而定義的。雖然對于許多應(yīng)用程序來說這種方法已經(jīng)足夠了,但涉及金融、健康或其他類型的個人信息的應(yīng)用程序通常需要對訪問和授權(quán)進(jìn)行更加獨立的控制。 Oracle8i中引入的Oracle行級安全性(row-level security,RLS)特性提供了細(xì)粒度的訪問控制--細(xì)粒度意味著是在行一級上進(jìn)行控制。行級安全性不是向?qū)Ρ碛腥魏卧L問權(quán)限的用戶打開整張表,而是將訪問限定到表中特定的行。其結(jié)果就是每個用戶看到完全不同的數(shù)據(jù)集--只能看到那些該用戶被授權(quán)可以查看的數(shù)據(jù)--所有這些功能有時被稱為的Oracle虛擬專有數(shù)據(jù)庫(或稱為VPD)特性。 使用Oracle的VPD功能不僅確保了企業(yè)能夠構(gòu)建安全的數(shù)據(jù)庫來執(zhí)行隱私政策,而且提供了應(yīng)用程序開發(fā)的一個更加可治理的方法,因為雖然基于VPD的政策限制了對數(shù)據(jù)庫表的訪問,但在需要的時候可以很輕易地對此做出修改,而無需修改應(yīng)用程序代碼。 例如,假設(shè)銀行的賬戶經(jīng)理(AM)向高凈值賬戶持有者提供個人客戶支持。AM使用定制的銀行應(yīng)用程序來幫助他們檢查客戶的余額、存款或提取的款項,以及對貸款要求做出決定。銀行的政策曾經(jīng)答應(yīng)所有AM可以訪問所有賬戶持有人的信息,但在最近,對該政策做了改變。現(xiàn)在,分配給AM一個特定的客戶集,他們只需訪問只與這些客戶有關(guān)的信息。政策的變化必須反映在應(yīng)用程序中,該應(yīng)用程序現(xiàn)在向每個AM顯示所有客戶的信息,而不只是關(guān)于分配給AM的那些客戶的信息。 為了使應(yīng)用程序符合新的隱私政策,銀行有三種選擇: 修改應(yīng)用程序代碼,使所有SQL語句都包含一個判定詞(WHERE子句)。然而這種選擇不能保證在應(yīng)用程序之外執(zhí)行隱私政策,而且假如將來政策又有變化,則必須再一次修改代碼,所以從長遠(yuǎn)考慮這不是一個好方法。 保持應(yīng)用程序不動,用一些必要的判定詞創(chuàng)建表的一些視圖,并用與表名一樣的名字為這些視圖創(chuàng)建同義詞。從應(yīng)用程序不變更和安全性的角度來看這種方法比較好,但可能難于治理,因為有大量潛在的視圖需要跟蹤和治理。 創(chuàng)建可動態(tài)生成判定詞的政策函數(shù)來為每個AM創(chuàng)建一個VPD,通過利用內(nèi)置的行級安全性(DBMS_RLS)來設(shè)置政策,這些函數(shù)隨后可以用于所有對象,而不必考慮它們?nèi)绾伪辉L問。 最后一種選擇提供了最佳安全性,它不增加治理負(fù)擔(dān),并能確保信息的安全隱私,這種方法就是所有賬戶經(jīng)理根據(jù)他們自己的證書,可查看表的不同視圖。 本文說明如何建立VPD安全性模型。我們將借助前面提到的銀行例子通過創(chuàng)建函數(shù)、制定政策、然后測試結(jié)果來描述整個建立過程。(請注重,為使例子簡單,沒有完整定義該表。) 示例應(yīng)用的基本設(shè)置 下面簡單地給出示例銀行應(yīng)用的基本假設(shè): 一個BANK模式擁有兩個構(gòu)成該應(yīng)用的要害表--一個CUSTOMERS(客戶)表: 姓名 空?  類型CUST_ID 非空  數(shù)字CUST_NAME非空  字符型變量2(20) 以及一個ACCOUNTS(賬戶)表: 姓名 空? 類型ACCT_NO 非空 數(shù)字CUST_ID 非空 數(shù)字余額數(shù)字(15,2)代碼清單1包含用于創(chuàng)建和填充這兩個基本示例表的SQL腳本。 用戶的SECMAN(安全性經(jīng)理)擁有一個Access_POLICY表,它識別AM以及他們各自客戶的賬戶: 姓名 空?  類型AM_NAME 非空  字符型變量2(20)CUST_ID 非空  數(shù)字ACCESS_TYPE 非空  字符(1) AM_NAME字段存儲賬戶經(jīng)理的用戶ID;CUST_ID用于識別客戶;ACCESS_TYPE定義指定的訪問權(quán)限--S(SELECT--查詢)、I(INSERT--插入數(shù)據(jù))、D(DELETE--刪除數(shù)據(jù))以及U(UPDATE--更新數(shù)據(jù))。ACCESS_POLICY表中有這樣一些記錄: AM_NAME  CUST_ID  ACCESS_TYPE-------  ------- -----------SCOTT123  SSCOTT123  ISCOTT123  DSCOTT123  USCOTT456  SSCOTT789  SLARA 456  ILARA 456  D LARA 456  ULARA 456  S 正如你所看到的,客戶123的AM SCOTT擁有所有權(quán)限--S、I、D和U--客戶456的AM LARA也具有這些權(quán)限。還有,由于SCOTT可以批準(zhǔn)LARA的客戶456的賬戶結(jié)余,所以他擁有對客戶456的S權(quán)限。 第一步 創(chuàng)建政策函數(shù) 無論AM何時要查看客戶的賬戶信息,他都必須動態(tài)地應(yīng)用銀行的訪問規(guī)則(包含在ACCESS_POLICY表中)。第一步是創(chuàng)建政策函數(shù),用于返回要應(yīng)用到表上的適當(dāng)判定詞。和對ACCESS_POLICY表的處理一樣,出于安全考慮,政策函數(shù)也由用戶的SECMAN創(chuàng)建和控制。最好是使隱私規(guī)則與它們將要應(yīng)用到的表分開。 讓我們仔細(xì)看一看政策函數(shù)get_sel_cust_id,如代碼清單2— in detail: 準(zhǔn)確接收兩個參數(shù):模式名稱(p_schema in varchar2)和表名(p_table in varchar2)。 只返回一個字符串值--return varchar2 as l_retstr varchar2(2000),它包含將要添加到表的每個查詢中的判定詞。 使用一個游標(biāo)例程--for cust_ rec in--來獲得值的列表,因為每個用戶可能有表中列出的幾個cust_id。 返回一個結(jié)構(gòu)化的字符串l_retstr,無論用戶何時試圖訪問基本表都將它用做一個判定詞。 該函數(shù)返回判定詞where cust_id in,隨后是用戶(am_name = USER)能夠看到的客戶賬戶名單(由逗號分隔)。 請注重在進(jìn)入構(gòu)建用戶cust_id名單的循環(huán)之前,代碼清單2中的代碼先檢查該用戶是否為表的所有者BANK,若是則返回NULL,如下所示: if (p_schema = user) then 1_retstr := null; 構(gòu)建完該函數(shù)后,你需要通過測試一些示例數(shù)據(jù)來確保它返回相應(yīng)的判定詞。以SECMAN身份連接數(shù)據(jù)庫,向ACCESS_POLICY表中插入一些記錄,授予SECMAN在幾個示例賬戶上的讀權(quán)限,如下所示: insert into access_policy values ('SECMAN',123,'S');insert into access_policy values ('SECMAN',456,'S');insert into access_policy values ('SECMAN',789,'S'); 下面來執(zhí)行該函數(shù):  select get_sel_cust_id ('BANK','CUSTOMERS') from dual; 該函數(shù)返回一個將被用作判定詞的字符串,如下面的示例輸出所示:  GET_SEL_CUST_ID('BANK','CUSTOMERS')------------------------CUST_ID IN (123,456,789) 你需要為其他類型的訪問創(chuàng)建類似的函數(shù)。為簡單起見,為所有其他訪問類型創(chuàng)建一個單一的函數(shù)--UPDATE, DELETE, INSERT--如代碼清單3所示。但是注重,對于現(xiàn)實世界中的應(yīng)用,每種訪問類型應(yīng)該有自己的單獨定義的函數(shù),以確保相應(yīng)的隱私。 代碼清單3中的政策函數(shù)與代碼清單2中的基本上是一樣的,唯一的區(qū)別是通過使用ACCESS_CONTROL表中的信息進(jìn)一步限定了判定詞: and access_type in ('I', 'U', 'D')創(chuàng)建政策函數(shù)僅僅是第一步。現(xiàn)在你需要通過定義在你的系統(tǒng)中控制該函數(shù)的使用政策來確保這個函數(shù)將被使用。 第二步 定義政策 政策是用Oracle提供的DBMS_RLS包定義的。要知道政策本身并不是任何用戶(schema)擁有的數(shù)據(jù)庫對象,它們是邏輯結(jié)構(gòu)。擁有對DBMS_RLS包的執(zhí)行權(quán)限的用戶可以修改或刪除由其他用戶創(chuàng)建的政策。對DBMS_RLS的執(zhí)行權(quán)限應(yīng)該受到嚴(yán)謹(jǐn)?shù)目刂啤?在下面的例子中,用戶SECMAN被(SYS)授予對DBMS_RLS包的執(zhí)行權(quán)限: grant execute on dbms_rls to secman;代碼清單4創(chuàng)建了一個關(guān)于模式BANK的CUSTOMERS表的政策,命名為CUST_SEL_POLIC。該政策將模式SECMAN擁有的函數(shù)GET_SEL_CUST_ID(見代碼清單2)所返回的判定詞應(yīng)用到對該表的所有SELECT操作語句。 同樣,對其他訪問類型該表應(yīng)遵循不同的政策,如代碼清單5所示。該政策應(yīng)用于對CUSTOMERS表的INSERT、UPDATE和DELETE操作語句。 該政策與SELECT政策幾乎一樣,但它包含如下一項檢查以確保即使執(zhí)行完UPDATE該政策仍然得到遵循:  update_check => TRUE除非遵守該政策,否則數(shù)據(jù)不能被添加到該表中。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 防爆正压柜厂家_防爆配电箱_防爆控制箱_防爆空调_-盛通防爆 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 南京泽朗生物科技有限公司 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 上海道勤塑化有限公司 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 仿古建筑设计-仿古建筑施工-仿古建筑公司-汉匠古建筑设计院 | 电机保护器-电动机综合保护器-上海硕吉电器有限公司 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] |