日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

ORACLE 的Virtual Private Database的全新體驗

瀏覽:283日期:2023-11-19 08:44:42
Oracle 的Virtual Private Database的全新體驗===============================================歡迎大家同我交流:小白; enhydra_boy@tom.com歡迎轉載,請保留本聲明,謝謝! ================================================ 在開始對ORACLE的Virtual Private Database的介紹之前,筆者想就ROW-RULE control(行記錄級訪問控制)的概念簡單地說幾句。行記錄級訪問控制問題的提出和意義?企業的應用系統都離不開數據庫系統,數據庫系統的權限控制是很重要的一個環節,大型數據庫系統(ORACLE、DB2、SYBASE、MS SQLSERVER)都提供完善的用戶治理機制,從而可以嚴密地控制數據庫對象(表、視圖、函數、存儲過程、程序包等等)的訪問。但是,這往往是對象級別的。隨著商務需求地不斷地提出,出現了對于行記錄控制的要求:1);;;;;數據查詢和報表輸出數據需要能夠進行有效地隔離,如在一個簡單地銷售數據統計應用中,大區經理、地區經理和銷售員查詢的數據就不同。2);;;;;ASP(應用服務供給商)系統出現,在系統結構上,就出現了許多企業用戶的數據都會存放在同一個數據庫種,但是系統需要能夠有效地隔離。為了滿足這樣的需求,在業務數據表需要中加上一些字段來進行控制,應用的開發往往會另行開發很多代碼來實現行記錄控制。但是,隨著業務的變化,我們會發現開發和維護這種治理需求的成本越來越高。我們需要尋找一種新的解決方案,能夠使應用系統的架構設計簡單,擴展性強,治理和維護的成本很低。ORACLE8i的一個新特性Virtual Private DatabaseORACLE 8i提供了一個新的特性,來實現行級規則的控制,稱之為Virtual Private Database。充分利用8i提供的Virtual Private Database技術,可以實現,一個數據庫Schema的數據同時給多個數據庫用戶訪問,但是又能很好地隔離各自的數據內容。顯然,這已經不是原來的對象級的控制的概念。下面是筆者的體驗,寫下來,供大家參考。我先通過一個簡單的例子,來說明ORACLE 8i的這個新特性(需ORACLE 8i的企業版才支持)。環境:windows 2000 Server + ORACLE 8.1.7(Enterprise Edition)在SCOTT用戶下,有一個Customers表,記錄著客戶資料,以后為每個客戶分配一個ORACLE數據庫登陸賬號,客戶可以登陸,查詢自己的訂單情況。那么,我們需要做的就是能夠把每個登陸賬號和客戶代碼對應起來。就是說要實現一個映射關系,當然,通過自己建關系映射表,寫代碼做,也可以實現,但是ORACLE 8I把這一切變地非常簡單(我接下來的介紹都會圍繞著ORACLE 8i這項技術是我們的工作如何更加簡單,如何更加輕易控制,請記住,這是筆者寫這篇文章的目的)。--建立一個SECUSR的賬號,用于權限控制用connect system/manager@oracle;create user secusr identified by secusr;grant connect,resource,dba to secusr;--把Customers的查詢權利賦予secusrconnect scott/tiger@oracle;grant select on 'Customers' to secusr;--連接到secusr用戶connect secusr/secusr@oracle;--創建上下文create context Customer_context USING secusr.CUSTOMER_SECURITY_CONTEXT;--創建程序包customer_security_contextcreate or replace packagesecusr.customer_security_context isprocedure set_customerid;end;create or replace package bodysecusr.Customer_security_context isprocedure set_customerid isbeginIF SYS_CONTEXT('USERENV','SESSION_USER')='SCOTT' THEN DBMS_SESSION.SET_CONTEXT('customer_context','customerid','ALFKI');END IF;end;end;--授權grant execute on secusr.Customer_security_context to public;ORACLE 8i中提供了Context(連接上下文)的概念,類似于asp中的session,你可以為當前這個連接設置多個全局變量,記錄信息,這個信息一直保持到連接被釋放。 上面的代碼,就是為用SCOTT賬號登陸的連接,進行了一次客戶代碼的映射(SCOTT->ALFKI),而且,隨時可以SYS_CONTEXT來查詢。具體代碼如下:SQL> connect scott/tiger@oracle;已連接。SQL> execute secusr.Customer_security_context.set_customerid;PL/SQL 過程已成功完成。SQL> select SYS_CONTEXT('CUSTOMER_CONTEXT','CUSTOMERID') FROM DUAL;SYS_CONTEXT('CUSTOMER_CONTEXT','CUSTOMERID')--------------------------------------------------------------------------------ALFKI但是,我覺的還不夠,能夠做到每個連接建立的時候,就自動完成這種映射,令人興奮的是,ORACLE 8i提供了系統級的觸發器,讓我輕松地實現。--SCOTT用戶登陸觸發器connect system/manager@oracleCREATE OR REPLACE TRIGGER scott.tg_set_usr_contextAFTER LOGON ON DATABASEBEGINsecusr.customer_security_context.set_customerid;END;--斷掉connection,重新登陸Oracle8i Enterprise Edition Release 8.1.7.0.0 - ProdUCtionWith the Partitioning optionJServer Release 8.1.7.0.0 - ProductionSQL> CONNECT scott/tiger@oracle已連接。SQL> select SYS_CONTEXT('CUSTOMER_CONTEXT','CUSTOMERID') FROM DUAL;SYS_CONTEXT('CUSTOMER_CONTEXT','CUSTOMERID')--------------------------------------------------------------------------------ALFKISQL>好了,夠簡單吧。采用Virtual Private Database如何達到SQL DML上的數據控制訪問要求呢?Virtual Private Database技術可以對一張表的記錄設置DML操作的過濾策略。ORACLE8i提供了POLICY的概念,并且為此配備了一套系統程序包,來完成設置。下面,我來介紹一下:connect secusr/secusr@oracle--做一個函數,返回對應的過濾條件create or replace package secusr.customer_security isfunction customer_secreturn VARCHAR2;end;create or replace package body secusr.customer_securityisfunction customer_sec(d1 varchar2,d2 varchar2)return varchar2ISbeginIF SYS_CONTEXT('USERENV','SESSION_USER') IN ('SYS','SYSTEM','SECUSR') THEN RETURN NULL;ELSE RETURN 'customerid=''' SYS_CONTEXT('CUSTOMER_CONTEXT','CUSTOMERID') '''';END IF;end;end;--設置表數據的分割過濾EXECUTE DBMS_RLS.ADD_POLICY('SCOTT',''Customers'','Customers_sec_Policy','SECUSR','customer_security.customer_sec','SELECT,UPDATE,DELETE');customer_security程序包的customer_sec函數實現了,根據但前的CONTEXT中CUSTOMERID的內容,來返回一個過濾的策略,函數的參數形式是固定的。 通過dbms_rls程序包的ADD_POLICY過程,把策略條件同表綁定以來,以后,每次select,update,delete都會自動應用這個策略。好了,現在我們來測試一下--用SCOTT登陸,只能看到自己的信息SQL> connect scott/tiger@oracle;已連接。SQL> select customerid,city from 'Customers';CUSTOMERID CITY---------- ------------------------------ALFKI;;;Berlin--用SYSTEM登陸,可以看到所有的SQL> connect system/manager@oracle;已連接。SQL> select customerid,city from 'SCOTT'.'Customers';CUSTOMERID CITY---------- ------------------------------ALFKI;;;BerlinANATR;;;México D.F.ANTON;;;México D.F.AROUT;;;LondonBERGS;;;Lule?D.F.BLAUS;;;MannheimBLONP;;;StrasbourgBOLID;;;MadridBONAP;;;MarseilleBOTTM;;;TsawassenBSBEV;;;London非常好,完全滿足了要求,現在可以放心地把SCOTT賬號給客戶(ALFKI)了,客戶可以查詢自己的訂單情況,當然只能是自己的。SQL> SELECT a.orderid,a.customerid,a.orderdate, 2; sum(c.UnitPrice*c.Quantity*(1-c.Discount)) as TotalMoney 3; FROM 'Orders' a,'Customers' b ,'Order Details' c 4; where a.customerid=b.customerid and a.orderid=c.orderid 5; group by a.orderid,a.customerid,a.orderdate; ORDERID CUSTOMERID ORDERDATE; TOTALMONEY---------- ---------- ---------- ---------------------------------------- 10643 ALFKI;;;25-8月 -97;;;814.5 10692 ALFKI;;;03-10月-97;;;;;878 10702 ALFKI;;;13-10月-97;;;;;330 10835 ALFKI;;;15-1月 -98;;;845.8 10952 ALFKI;;;16-3月 -98;;;471.2 11011 ALFKI;;;09-4月 -98;;;933.5已選擇6行。下面,讓我總結一下Virtual Private Database的優點:l 提供了一種可行的、可靠的、對用戶完全透明的行規則控制方案同自己建立一套用戶控制權限不同,Virtual Private Database對用戶是透明的,你的應用程序不用去考慮這點,你的應用程序需要的是更加集中于你的業務處理過程的實現,而不要讓數據隔離控制,成為你業務處理的一個過程。你可以完全先開發功能應用,然后再加上數據隔離的控制,而這種控制,是基于后臺數據庫系統的,這種變動與現有的應用程序完全兼容,不會引起現有的程序不能運行l 控制更加嚴密,不僅對于業務系統才有效由于采取的是后臺數據庫技術,所以這種控制,對所有的應用(除了業務系統,數據庫治理工具等等)都起到了控制作用。 相比之下,采用自己的權限控制的應用中,只能做到在業務系統的應用中有效,而其他(sqlplus,sqlplus worksheet等等)就完全沒有效果。而且大多系統都采用使用一個數據庫賬號登陸到系統的方案,在這種情況下,這個賬號對于業務數據庫一般來說操作權限很高,而這個賬號一旦泄漏,攻擊者利用sqlplus工具可以方遍地竊取數據。l 和用應用程序自己實現的方法相比,這種技術更加靈活,而且便于治理,同時開發成本也是最低的。采用了這種行記錄控制技術,不需要通過應用程序實現,大大地簡化了應用系統地復雜性,同時也讓你的系統的結構很清楚,而出現錯誤的可能性就更低了。當然,你自己建立的控制系統也可以做到ORACLE 8i的功能,但是會大大加大開發成本。l 對于ASP(應用服務供給商)系統,滿足了用戶數據存放在一起,但又能夠獨立分開訪問的要求。筆者覺得,這項技術,對于構建ASP應用系統的用戶非凡有用,充分利用ORACLE提供的新技術,讓你的系統更加安全、可靠。總之,Virtual Private Database是一個功能強大的行級規則控制技術,是ORACLE8i提供給我們的一個強有力的特性,充分地應用,可以大大節省軟件開發成本。筆者認為Virtual Private Database技術是一個非常有用的技術,而在SQL Server 2000和Sybase ASE 12.5中,沒有看到類似的技術。
標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产成人免费精品| 石原莉奈一区二区三区在线观看| 91一区二区| 午夜一级久久| 国产精品国码视频| 久久99精品久久久久久园产越南| 日本不卡一区二区三区| 亚洲精品亚洲人成在线观看| 亚洲第一区色| 在线亚洲观看| 国产亚洲高清在线观看| 蜜臀91精品一区二区三区| 日本午夜精品久久久| 久久蜜桃资源一区二区老牛| 国产精品大片| 亚洲尤物av| 国产精品一区二区av日韩在线| 免费观看在线色综合| 日韩美女国产精品| 老司机精品视频网| 日韩国产一区二区| 亚洲三级网址| 色一区二区三区四区| 久久电影tv| 久久精品99久久久| 一区二区精品| 国产精品美女在线观看直播| 欧美一级久久| 日本午夜免费一区二区| 久久国产中文字幕| 亚洲另类av| 精品女同一区二区三区在线观看| 免费一级欧美在线观看视频 | 亚洲黄色在线| 日韩一区二区三区在线看| 在线日韩成人| 国产麻豆一区| 国户精品久久久久久久久久久不卡 | 免费视频一区二区三区在线观看| 国产精品婷婷| 日韩精品诱惑一区?区三区| 免费高潮视频95在线观看网站| 麻豆极品一区二区三区| 国产日本精品| 在线亚洲成人| 国产一区二区三区久久 | 国产欧美日韩一级| 免费在线欧美视频| 在线亚洲欧美| 国产日韩在线观看视频| 精品国产不卡一区二区| 在线精品小视频| 色吊丝一区二区| 黑森林国产精品av| 日韩成人精品一区二区三区| 日本综合字幕| 热久久久久久| 亚洲无线观看| 成人av二区| 欧美亚洲色图校园春色| 久久精品女人| 国产精品三p一区二区| 日韩欧美中文字幕在线视频| 性色av一区二区怡红| 久久国产中文字幕| 日韩精品福利一区二区三区| 亚洲综合图色| 亚洲v在线看| 欧美亚洲国产精品久久| 不卡福利视频| 97久久精品| 青青伊人久久| 日韩av电影一区| 日韩精品电影一区亚洲| 好吊日精品视频| 最新亚洲激情| 日韩二区三区四区| 久久这里只有精品一区二区| 99久久久久国产精品| 亚洲免费专区| 国产91欧美| 国产毛片精品| 日本精品另类| 国产欧美一区二区色老头| 亚洲tv在线| 日韩一区自拍| 日本亚州欧洲精品不卡| 日本视频一区二区| 精品久久网站| 色婷婷狠狠五月综合天色拍| 91九色精品| 中文字幕高清在线播放| 最新国产精品视频| 美女尤物国产一区| 精品香蕉视频| 一本一本久久| 伊人久久亚洲美女图片| 国产福利一区二区精品秒拍| 国产精品tv| 色在线中文字幕| 久久久久久久欧美精品| 国产欧美成人| 亚洲欧美日韩一区在线观看| 在线手机中文字幕| 免费日本视频一区| 亚洲黑丝一区二区| 日韩高清中文字幕一区二区| 久久久精品五月天| 久久中文字幕av| 欧洲亚洲一区二区三区| 国产精品免费精品自在线观看| 丝袜美腿一区| 精品成人18| 国产福利一区二区三区在线播放| 亚洲天堂日韩在线| 日韩久久精品网| 欧美日韩国产v| 亚洲黑丝一区二区| 成人精品久久| 久久国产精品色av免费看| 视频一区日韩| 国产精品久久久久久久久久10秀| 国产精品网址| 婷婷精品在线| 亚洲影视一区二区三区| 国内精品福利| 欧美不卡高清一区二区三区| 久久精品主播| 蜜桃视频欧美| 视频福利一区| 亚洲女同一区| 日韩中文字幕av电影| 石原莉奈在线亚洲三区| 日产欧产美韩系列久久99| 青青草精品视频| 91精品蜜臀一区二区三区在线| 亚洲国产成人二区| 免费观看在线综合| 久热精品在线| 久久久久久久久成人| 国产精品v一区二区三区| 国产成人黄色| 在线午夜精品| 欧美日韩亚洲一区| 成人国产精选| 麻豆久久精品| 成人午夜网址| 欧美一区成人| 麻豆mv在线观看| 老鸭窝毛片一区二区三区| 蜜臀久久久久久久| 天堂√8在线中文| 久久99伊人| 国产精品色在线网站| 日韩av一区二区三区四区| 九九99久久精品在免费线bt| 夜久久久久久| 日韩区一区二| 久久一区精品| 欧美日韩精品一区二区三区在线观看| 久久久久久久久久久妇女 | 中文字幕av一区二区三区四区| 久久伦理在线| 久久久久欧美精品| 天堂资源在线亚洲| 欧美 日韩 国产精品免费观看| 国产美女精品| 国产精品久久久久久久免费观看 | 亚洲专区欧美专区| 精品理论电影在线| 日韩欧美久久| 欧美~级网站不卡| 欧美交a欧美精品喷水| 久久不见久久见国语| 国产精品成人自拍| 日韩影院精彩在线| 天堂资源在线亚洲| 国产精品一区亚洲| 久久中文字幕av一区二区不卡| 国产精品白浆| 日本不卡一区二区| 免费看一区二区三区| 成人在线超碰| 久久天堂影院| 国产一区二区三区免费在线| 久久亚洲欧洲| 国产精品v一区二区三区| 欧美日韩一区二区高清| 91中文字幕精品永久在线| 日韩欧美午夜| 久久只有精品| 综合欧美精品| 中文字幕亚洲影视| 久久亚洲风情| 日本 国产 欧美色综合| 蜜桃一区二区三区| 偷拍欧美精品| 影院欧美亚洲| 国产精品毛片在线看| 视频一区在线播放|