999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于虛擬專用數(shù)據(jù)庫(kù)的高效數(shù)據(jù)訪問(wèn)權(quán)限控制

2017-06-11 14:40:38黃杰生羅鵬韓早強(qiáng)
科技風(fēng) 2017年1期

黃杰生 羅鵬 韓早強(qiáng)

摘 要:虛擬專用數(shù)據(jù)庫(kù)(VPD)是Oracle推出的細(xì)粒度數(shù)據(jù)訪問(wèn)權(quán)限控制技術(shù),可在數(shù)據(jù)庫(kù)端一次性實(shí)現(xiàn)數(shù)據(jù)安全配置,無(wú)需在各應(yīng)用系統(tǒng)中分別實(shí)現(xiàn)權(quán)限配置與訪問(wèn)控制,可有效降低系統(tǒng)開(kāi)發(fā)部署成本,提高開(kāi)發(fā)效率與數(shù)據(jù)安全性。本文介紹了VPD技術(shù)原理,并給出如何利用VPD技術(shù)進(jìn)行數(shù)據(jù)訪問(wèn)權(quán)限動(dòng)態(tài)控制的應(yīng)用實(shí)例。

關(guān)鍵詞:虛擬專用數(shù)據(jù)庫(kù);VPD;訪問(wèn)控制;權(quán)限配置

權(quán)限配置與訪問(wèn)控制是每個(gè)應(yīng)用系統(tǒng)的核心功能,關(guān)系到數(shù)據(jù)的安全和完整,如果配置控制失當(dāng),會(huì)造成數(shù)據(jù)泄漏和丟失。

目前常規(guī)做法是由應(yīng)用系統(tǒng)在業(yè)務(wù)代碼層面實(shí)現(xiàn)權(quán)限配置與訪問(wèn)控制功能,但這種做法需要人工實(shí)現(xiàn)大量編碼與配置工作,可擴(kuò)展性差,每當(dāng)規(guī)則發(fā)生變化時(shí)都要修改代碼或配置并重新進(jìn)行測(cè)試,出錯(cuò)幾率高,效率低下。特別是多個(gè)應(yīng)用系統(tǒng)使用同一個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)并且遵循相同的訪問(wèn)控制規(guī)則時(shí),更會(huì)大幅增加開(kāi)發(fā)部署成本。

因此,我們需要引入一種配置便捷、擴(kuò)展靈活、能夠支持細(xì)粒度訪問(wèn)控制的安全策略技術(shù)。Oracle虛擬專用數(shù)據(jù)庫(kù)(VPD)提供了一種很好的解決方案。

1 VPD工作原理

在數(shù)據(jù)庫(kù)中將數(shù)據(jù)表或視圖與一個(gè)或多個(gè)安全策略綁定后,就可以建立VPD。當(dāng)客戶端對(duì)數(shù)據(jù)庫(kù)中已綁定安全策略的表或視圖進(jìn)行訪問(wèn)時(shí),將觸發(fā)調(diào)用一個(gè)實(shí)現(xiàn)具體安全策略的函數(shù),該策略函數(shù)將返回一個(gè)“謂詞”(即用于過(guò)濾數(shù)據(jù)的WHERE條件子句)。數(shù)據(jù)庫(kù)將此謂詞自動(dòng)附加到客戶端所發(fā)出的原始SQL 語(yǔ)句后,從而對(duì)用戶的數(shù)據(jù)訪問(wèn)權(quán)限實(shí)現(xiàn)動(dòng)態(tài)控制。

開(kāi)發(fā)人員可以編寫更為復(fù)雜的存儲(chǔ)過(guò)程,將SQL謂詞附加至每個(gè)SQL語(yǔ)句,在行級(jí)別的粒度控制數(shù)據(jù)訪問(wèn)權(quán)限。例如,如果Student_1(屬于Class 1)輸入 SELECT * FROM STUDENTS語(yǔ)句,則可以使用 VPD 自動(dòng)添加 WHERE CLASS=1的子句,這樣便可以通過(guò)對(duì)原始查詢語(yǔ)句進(jìn)行自動(dòng)修改來(lái)控制對(duì)某些行的數(shù)據(jù)訪問(wèn)。

由于是在數(shù)據(jù)庫(kù)層面實(shí)施安全策略,因此客戶端無(wú)論以何種方式(如通過(guò)程序代碼、報(bào)表生成工具或其他數(shù)據(jù)庫(kù)客戶端工具)訪問(wèn)數(shù)據(jù),VPD都能確保強(qiáng)制實(shí)施一致的訪問(wèn)控制安全策略。使用 VPD,銀行系統(tǒng)可以確保客戶只能訪問(wèn)自己的帳戶信息,通信運(yùn)營(yíng)商可以安全地隔離客戶記錄,組織結(jié)構(gòu)復(fù)雜的應(yīng)用系統(tǒng)可以支持復(fù)雜的人員數(shù)據(jù)訪問(wèn)規(guī)則。

除了基礎(chǔ)的靜態(tài)安全策略(即策略函數(shù)所生成的SQL謂詞固定不變,如前所述的WHERE CLASS=1),還可結(jié)合數(shù)據(jù)庫(kù)的應(yīng)用程序上下文功能,實(shí)現(xiàn)動(dòng)態(tài)安全策略。即使用數(shù)據(jù)庫(kù)的create context指令,創(chuàng)建應(yīng)用程序上下文區(qū)域,每個(gè)客戶端登錄數(shù)據(jù)庫(kù)并創(chuàng)建會(huì)話后,可以在上下文區(qū)域內(nèi)自定義每個(gè)會(huì)話獨(dú)有的屬性,同一個(gè)策略函數(shù)可利用這些屬性進(jìn)行動(dòng)態(tài)拼接,為不同的會(huì)話生成不同的SQL謂詞,從而實(shí)現(xiàn)更靈活的訪問(wèn)權(quán)限控制。

VPD安全策略配置主要由DBMS_RLS過(guò)程包中的存儲(chǔ)過(guò)程實(shí)現(xiàn),主要過(guò)程分類與作用如下:

1)個(gè)體安全策略管理:ADD_POLICY、DROP_POLICY、ENABLE_POLICY、REFRESH_POLICY等過(guò)程;

2)分組安全策略管理:CREATE_POLICY_GROUP、DELETE_POLICY

_GROUP、ADD_GROUPED_POLICY、DROP_GROUPED_POLICY等過(guò)程;

3)應(yīng)用程序上下文管理:ADD_POLICY_CONTEXT、DROP_POLICY

_CONTEXT等過(guò)程。

2 基于上下文相關(guān)的VPD實(shí)現(xiàn)

以下步驟給出如何實(shí)現(xiàn)基于上下文相關(guān)的VPD實(shí)例。

2.1 創(chuàng)建VPD策略管理員并授權(quán)

GRANT CREATE SESSION, CREATE ANY CONTEXT, CREATE PROCEDURE, CREATE TRIGGER, ADMINISTER DATABASE TRIGGER TO vpd_admin;

GRANT EXECUTE ON DBMS_SESSION TO vpd_admin;

GRANT EXECUTE ON DBMS_RLS TO vpd_admin;

2.2 創(chuàng)建基于會(huì)話的應(yīng)用程序上下文(以VPD_ADMIN用戶登錄)

CREATE OR REPLACE CONTEXT vpd_ctx USING vpd_ctx_pkg;

以上語(yǔ)句創(chuàng)建了名為vpd_ctx的應(yīng)用程序上下文,在會(huì)話期間為用戶建立自定義屬性的程序包為vpd_ctx_pkg。在登錄觸發(fā)器中可調(diào)用包中的過(guò)程設(shè)置自定義屬性,例如以下語(yǔ)句:

//創(chuàng)建登錄觸發(fā)器

CREATE TRIGGER set_app_ctx_trig AFTER LOGON ON DATABASE

BEGIN vpd_admin.app_ctx_pkg.set_custnum;END;

// vpd_admin.app_ctx_pkg.set_custnum過(guò)程核心代碼

SELECT cust_no INTO custnum FROM SCOTT.CUSTOMERS WHERE cust_id=SYS_CONTEXT('USERENV', 'SESSION_USER');

DBMS_SESSION.SET_CONTEXT('app_ctx', 'cust_no', custnum);

因?yàn)樯舷挛腶pp_ctx只綁定到app_ctx_pkg,因此其他過(guò)程不能改變會(huì)話屬性,可以確保在連接到數(shù)據(jù)庫(kù)后任何其他進(jìn)程都不能改變安全的應(yīng)用程序上下文。

2.3 創(chuàng)建策略函數(shù)

CREATE OR REPLACE FUNCTION get_cust_info(schema_p IN VARCHAR2,table_p IN VARCHAR2) RETURN VARCHAR2 AS

cust_info_pred VARCHAR2 (400);

BEGIN cust_info_pred := 'cust_no = SYS_CONTEXT(''app_ctx'', ''cust_no'')'; RETURN cust_info_pred;

END;

以上策略函數(shù)根據(jù)應(yīng)用程序上下文中的屬性動(dòng)態(tài)生成SQL謂詞,只獲取與當(dāng)前登錄用戶相關(guān)的數(shù)據(jù)。

2.4 綁定安全策略

使用vpd_admin用戶登錄并執(zhí)行DBMS_RLS.ADD_POLICY過(guò)程,將策略函數(shù)與指定的數(shù)據(jù)表進(jìn)行綁定,使安全策略生效,代碼如下:

BEGIN

DBMS_RLS.ADD_POLICY (object_schema => 'customers', object_name => 'custs_tab', policy_name => 'custs_policy',

function_schema => 'vpd_admin', policy_function => 'get_cust_info', statement_types => 'select');

END;

2.5 效果測(cè)試

分別以u(píng)ser1和user2用戶登錄,執(zhí)行相同的查詢語(yǔ)句select * from custs_tab,每個(gè)用戶將只能看到自己的客戶資料。

3 結(jié)語(yǔ)

虛擬專用數(shù)據(jù)庫(kù)(VPD)技術(shù)提供了角色和視圖模式無(wú)法提供的行級(jí)訪問(wèn)控制,數(shù)據(jù)與系統(tǒng)托管公司可以在同一數(shù)據(jù)庫(kù)中維護(hù)多個(gè)公司的數(shù)據(jù),但只允許各公司查看自身數(shù)據(jù)。VPD可大幅降低應(yīng)用程序的開(kāi)發(fā)部署成本,可以在數(shù)據(jù)庫(kù)端一次實(shí)現(xiàn)安全性,而無(wú)需在訪問(wèn)數(shù)據(jù)的各個(gè)應(yīng)用系統(tǒng)中分別實(shí)現(xiàn)權(quán)限配置和訪問(wèn)控制。另外,由于VPD在數(shù)據(jù)庫(kù)中實(shí)施安全策略,所以不管以何種客戶端方式訪問(wèn)數(shù)據(jù),都不能繞過(guò)安全環(huán)節(jié),安全性更高。

虛擬專用數(shù)據(jù)庫(kù)是一項(xiàng)重要的技術(shù),同時(shí)也是基礎(chǔ)設(shè)施資源虛擬化的一種成功應(yīng)用,許多Oracle應(yīng)用程序本身也是使用 VPD實(shí)現(xiàn)數(shù)據(jù)分隔的(如Oracle SalesOnline.com、Oracle Portal等)。VPD使企業(yè)能夠以較低的成本、較高的效率構(gòu)建業(yè)務(wù)系統(tǒng),具有十分廣闊的應(yīng)用空間,值得企業(yè)應(yīng)用開(kāi)發(fā)人員學(xué)習(xí)和使用。

參考文獻(xiàn):

[1] Oracle[] Database Security Guide.

[2] Oracle[] Database Advanced Application Developer's Guide.

[3] Oracle[] Database PL/SQL Language Reference.

[4] Oracle[] Database SQL Language Reference.

作者簡(jiǎn)介:

黃杰生,現(xiàn)就職于廣州奧格智能科技有限公司,從事軟件開(kāi)發(fā)工作;

羅鵬,現(xiàn)就職于廣州奧格智能科技有限公司,從事軟件開(kāi)發(fā)工作;

韓早強(qiáng),現(xiàn)就職于廣州奧格智能科技有限公司,從事軟件開(kāi)發(fā)工作。

主站蜘蛛池模板: 成人国产三级在线播放| 欧美无遮挡国产欧美另类| 欧美中出一区二区| 国产极品美女在线观看| 伊人丁香五月天久久综合| 日韩精品一区二区三区swag| 国产91视频观看| 漂亮人妻被中出中文字幕久久 | 国产免费看久久久| 香蕉视频在线精品| 伊人色天堂| 韩日免费小视频| 日韩精品免费一线在线观看| 五月婷婷中文字幕| 五月天在线网站| 8090成人午夜精品| 噜噜噜综合亚洲| 国内精自视频品线一二区| 精品久久久久无码| 免费观看三级毛片| 欧美激情第一欧美在线| 日韩欧美综合在线制服| 久久精品66| 永久在线精品免费视频观看| 国产在线精品美女观看| 亚洲视频免费播放| www.99在线观看| 亚洲中文无码av永久伊人| 亚洲妓女综合网995久久| 国产精品私拍在线爆乳| 欧美 亚洲 日韩 国产| 97超级碰碰碰碰精品| 中国国产一级毛片| 这里只有精品在线播放| 国产精品99久久久| 91午夜福利在线观看| 99热这里只有成人精品国产| 久久不卡精品| 国产jizzjizz视频| 夜夜操天天摸| 最新国产高清在线| 亚洲婷婷六月| 永久毛片在线播| 国产一区二区三区夜色| 呦视频在线一区二区三区| 国产乱肥老妇精品视频| 婷婷六月综合| 国产丝袜一区二区三区视频免下载| 找国产毛片看| 欧美伦理一区| 亚洲精品自拍区在线观看| a级毛片网| 国产91丝袜在线播放动漫 | 谁有在线观看日韩亚洲最新视频| 色婷婷亚洲综合五月| 久久77777| 欧美一级夜夜爽| 18禁高潮出水呻吟娇喘蜜芽| 欧洲成人免费视频| 国产美女叼嘿视频免费看| 无码国产偷倩在线播放老年人| 久久精品丝袜| 国产精品嫩草影院av| 波多野结衣一区二区三区四区视频| 亚洲国产成人自拍| 国产69精品久久久久妇女| 超清人妻系列无码专区| 97精品国产高清久久久久蜜芽| 亚洲中文字幕久久无码精品A| 久久黄色影院| 狠狠色狠狠综合久久| 国产成人三级在线观看视频| 91亚洲精选| 婷婷综合亚洲| 91九色视频网| 午夜限制老子影院888| 国产毛片高清一级国语| 99视频国产精品| 亚洲综合激情另类专区| 毛片久久久| 91麻豆精品视频| 五月婷婷综合网|