《Oracle-Web數(shù)據(jù)庫的開發(fā)課件》由會員分享,可在線閱讀,更多相關(guān)《Oracle-Web數(shù)據(jù)庫的開發(fā)課件(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,Oracle Web數(shù)據(jù)庫的開發(fā),數(shù)據(jù)庫技術(shù),概述,Oracle DBMS,在信息系統(tǒng)市場占據(jù)了很大,的份額,并且具有較高的可靠性和可恢復(fù),性。,本章介紹,Oracle WebServer,的體系結(jié)構(gòu)及,一些使用技術(shù),使讀者對于,Oracle Web,數(shù)據(jù),庫開發(fā)有個基本的了解。,1.Oracle WebServer,體系結(jié)構(gòu),基本的,WebServer,體系結(jié)構(gòu),三種版本的,WebServer,體系結(jié)構(gòu),WebServer,
2、的基本成分解釋,1.,基本的,WebServer,體系結(jié)構(gòu),Oracle Webserver,由以下幾個部分組成:,Web,監(jiān)聽器(,Listener,),公共網(wǎng)關(guān)接口(,CGI,),Web,請求代理(,Request Broker,)(,WRB,),PL/SQL,代理(即,OWA,)和,Web,工具箱(,WebToolkit,),Java Cartridge,LiveHTML Cartridge,1.2,三種,WebServer,體系結(jié)構(gòu),1,Oracle WebServer 1,2,Oracle WebServer 2,3,Oracle WebServer 3,1,Oracle WebSe
3、rver 1,體系結(jié)構(gòu),2,Oracle WebServer 2,體系結(jié)構(gòu),3,Oracle WebServer 3,體系結(jié)構(gòu),Oracle WebServer 3,與,Oracle WebServer 2,在,體系結(jié)構(gòu)上相同,但其功能上有所增強(qiáng)。最大、最,有效的增強(qiáng)是新的,Web,事務(wù)管理器。,允許事務(wù)生成復(fù)雜的,HTTP,請求(如插入、刪除、提交、更新和回滾),使分布事務(wù)針對,Oracle,或非,Oracle,數(shù)據(jù)庫進(jìn)行可靠的處理。,1.3 WebServer,的基本成分解釋,1,WEB,監(jiān)聽器,2,Web,請求代理器(,WRB,),3,WRB,分配器、執(zhí)行引擎、,cartridge,和,
4、API,之間的關(guān)系,4,PL/SQL,代理和,Web,工具箱,5,Java,解釋器,cartridge,6,LiveHTML Cartridge,1.2 WebServer,的,htp,和,OWA,實用工具,1.WebServer,的,htp,實用工具,2,WebServer,的,OWA,實用工具,1.3 WebServer,的,PL/SQL,和存儲過程,PL/SQL,是過程語言,/,結(jié)構(gòu)化查詢語言(,Procedural,Language/Structured Query Language,)的縮寫,,它是,Oracle,為了與,Oracle,數(shù)據(jù)庫一起使用而創(chuàng)建的,專用語言。,PL/SQL
5、,的語法結(jié)構(gòu),PL/SQL,和存儲過程,1.3.1 PL/SQL,的語法結(jié)構(gòu),1,申明部分,2,開始部分,3,PL/SQL,中的循環(huán),1.3.2 PL/SQL,和存儲過程,1.,存儲過程的優(yōu)點(diǎn),良好的性能,數(shù)據(jù)與行為的結(jié)合,代碼的隔離,封裝性,更大的靈活性,2.PL/SQL,存儲過程和軟件包,3.,由,Web,向,Oracle,存儲過程傳遞函數(shù),4.,存儲過程之間傳遞函數(shù),1.4 WebServer,和,Java,之間的聯(lián)系,1.Oracle WebServer,的,Java,實現(xiàn),2.PL/SQL,在,Java,中的使用,3.Oracle WebServer,的,Java,解釋器,4.,從,
6、Java,存取,Oracle,數(shù)據(jù)庫,5.,使用,PL/SQL,軟件包裝,(package wrapper),1.5WebServer,和,LiveHTML,之間的聯(lián)系,LiveHTML,是一個在,Oracle WebServer,中非常有用的工具。本質(zhì)上,,LiveHTML,為將非,Oracle,的信息嵌入到一個,Oracle Web,頁面中提供一種機(jī)制。,Oracle,通過,LiveHTML,構(gòu)件及,LiveHTML,解釋器已經(jīng)實現(xiàn)了,WebServer,體系結(jié)構(gòu)中的,SSI,概念。,SSI,能通過不同的方法實現(xiàn)動態(tài),Web,文檔的創(chuàng)建,包括:,將其它,LiveHTML,文檔嵌入到,Web
7、,頁面中,嵌入靜態(tài),Web,頁面,引用系統(tǒng)變量,在服務(wù)器上執(zhí)行一個腳本,它產(chǎn)生,HTML,使用,CGI,執(zhí)行,PL/SQL,過程,1.6 WebServer,的并發(fā)管理,WebServer,更新和并發(fā)性,Oracle,數(shù)據(jù)庫封鎖,為,WebServer,選擇完整性,1.6.1 WebServer,更新和并發(fā)性,會話和偽會話,1.6.2 Oracle,數(shù)據(jù)庫封鎖,在,Oracle,中提供了兩種類型的封鎖:共享和互斥。,許多客戶可能都有對同一資源的共享鎖,但共享鎖不能和互,斥鎖共存。,然而共享封鎖有一個不良的后果,會導(dǎo)致,DB-KEY,死鎖,1.7,安全性問題,WebServer,的安全性,Ora
8、cle,的安全性,1.7.1 WebServer,的安全性,為了保障,Oracle,的安全性,有以下十條人們總結(jié)出來的安全性指導(dǎo)方針:,(1)DBA,對于,Oracle,安全性負(fù)有最大的責(zé)任。所以,,DBA,有責(zé)任創(chuàng)建和維護(hù)所有的,Oracle,角色。,(2),所有的特權(quán)(對象特權(quán)和系統(tǒng)特權(quán))將被放置在角色中。特權(quán)永遠(yuǎn)不會直接授予最終用戶。,注意,除了,UNLIMITED TABLESPACE,,因為,UNLIMITED TABLESPACE,不能授予一個角色。,(3),所有的角色將用一個口令保護(hù),并且角色口令將被包含在應(yīng)用程序中,使最終的用戶永遠(yuǎn)不會知道被授予的角色的口令。,(4),永不使用
9、,ADMIN OPTION,授予任何的系統(tǒng)特權(quán),永不使用,GRANT OPTION,授予任何表特權(quán)。,(5),只有一個最終用戶是角色管理員(,RA,),,RA,有責(zé)任將角色授予最終用戶,并且將對它所管理的每一個角色授予,ADMIN OPTION,。叫做”,RA”,的一個特定角色應(yīng)用,CREATE ANY USER,特權(quán)創(chuàng)建,并且將給,RA,授權(quán)。,(6)RA,沒有,DROP ANY USER,特權(quán),又沒有,ALTER ANY USER,特權(quán)。,DBA,將有責(zé)任取消最終用戶標(biāo)識,并且每一個最終用戶有責(zé)任維護(hù)他們自己的,Oracle,口令,它將經(jīng)過,MS-Query,,,SQL*Plus,或經(jīng)過一
10、個應(yīng)用程序屏幕來維護(hù)。,(7),只有,SYS,和,SYSTEM,用戶可以被授予,DBA,角色。,(8),只有三個角色可以給,IS,人員:,CONTENT,、,RESOURCE,和,DBA,。這些角色在所有的,Oracle,數(shù)據(jù)庫中包含相同的特權(quán)。,(9),當(dāng)不需要考慮安全性問題時,可以授予表,public,。,(10)Oracle,安全性每年應(yīng)該審核兩次來保證這些規(guī)則被遵守。,1.7.2 Oracle,的安全性,Oracle,數(shù)據(jù)庫的安全性由,SQL,的,grant,語句授,權(quán)并且由,revoke,語句來收回??梢允跈?quán)的特,權(quán)有兩大類:,表特權(quán),對一個特定表的特定的操作被授予一個特定的用戶(如
11、,,grant select on customer_table to Fred;,);,系統(tǒng)特權(quán),將一個特權(quán)范圍授予一個特定的用戶(如,,grant select any table to Fred;,)。,系統(tǒng)特權(quán),系統(tǒng)特權(quán)是執(zhí)行一種操作,或在一個特定的對象類型的所有實例上執(zhí)行,一種操作的權(quán)利(如,,grant select any table to black-joke,)。,系統(tǒng)特權(quán)被表示成三部分:操作、全局的(,any,)和對象類型。基于這個,分類方法,系統(tǒng)特權(quán)用操作和與操作相關(guān)的對象類型來表示:,操作(,action,)有以下幾種:,createdropaltergrantsele
12、ctaudit(any),manage(tablespace)backup(table)force(transaction)become(user),對象類型有以下幾種:,cluster procedure database database link privilege profile role,session sequence snapshot system synonym table tablespace,trigger user,對象特權(quán),對象特權(quán),表,視圖,序列,快照,All,x,x,x,x,Alter,x,x,Delete,x,x,Index,x,Insert,x,x,Refere
13、nces,x,Select,x,x,x,x,Update,x,x,對象特權(quán),對象特權(quán)是在一個指定的、命名的對象上執(zhí)行的一種操作的權(quán)利(如,,grant update on cat.food to sarah_tytler,)。它通常表示成操作,-,對象名的形式。,函數(shù)、存儲過程和軟件包,WebServer,安全性的一個重要特點(diǎn)是通過函數(shù)、存,儲過程和軟件包的使用來增強(qiáng)訪問一個表的能力。,(,1,)一個函數(shù)是一個代碼段,它可以包含接收輸入變量并且給函數(shù)的調(diào)用者返回值的,SQL,語句。,(,2,)一個存儲過程是一段代碼,在它內(nèi)部已經(jīng)嵌入了,SQL,命令。,(,3,)一個軟件包是一個,Oracle,
14、函數(shù)的集合或,Oracle,存儲過程,它將存儲過程合理的包裝成一個單一的單元。,實現(xiàn)基于角色的安全性,為,WebServer,推薦的安全性選項是將角色分配給為,WebServer,創(chuàng)建,PL/SQL,存儲過程的關(guān)鍵開發(fā)者。,WebServer,應(yīng)用程序的實,現(xiàn)需要下列步驟:,(,1,)創(chuàng)建空的角色,/,口令。,(,2,)標(biāo)識與角色相關(guān)的特權(quán)。,(,3,)為角色分配表特權(quán)。,(,4,)標(biāo)識講屬于每個角色的關(guān)鍵開發(fā)者。,(,5,)將這些角色授予將創(chuàng)建,Oracle,存儲過程的關(guān)鍵開發(fā)這。,(,6,)取消所有已存在的表級對象特權(quán)并授予,public,。,(,7,)使關(guān)鍵開發(fā)者創(chuàng)建,WebServer
15、,存儲過程。,(,8,)將對這些存儲過程的,execute,特權(quán)授予最終用戶團(tuán)體。,WebServer,的角色分配策略,一個,Oracle,角色層次的例子,1.8,使用,Net8,進(jìn)行,WebServer,通信,Net8,的前生是,SQL*Net,。在過去的幾年中,,SQL*Net,逐漸發(fā),展壯大?,F(xiàn)在它已改名為,Net8,。,Net8,是,Oracle,家族網(wǎng)絡(luò)產(chǎn)品,的基礎(chǔ),它的主要功能是建立網(wǎng)絡(luò)會話,并在一臺客戶機(jī)和,一臺服務(wù)器或兩臺服務(wù)器之間傳遞數(shù)據(jù),它允許服務(wù)及其應(yīng),用駐留在不同的計算機(jī)上,并作為對等應(yīng)用進(jìn)行通信。,Net8,和他的前輩,SQL*Net,都是獨(dú)立于平臺的。事實上,,Ne
16、t8,所支,持的網(wǎng)絡(luò)協(xié)議的數(shù)量只受特定節(jié)點(diǎn)的硬件、內(nèi)存和操作系統(tǒng),所強(qiáng)加的限制的影響,10.8.1 Oracle,部件的層次,Oracle,部件的層次很像一個洋蔥圖,(,圖,11-11),,有一個很大的,中心圓,周圍有很多圓圈繞著。,Oracle,洋蔥的中心是,RDBMS,。,在核與其它層之間是網(wǎng)絡(luò)協(xié)議。為了讓,Oracle,與其它產(chǎn)品相聯(lián),系,必須有第二層。,1.Oracle,協(xié)議,Oracle,使用,Transparent Network Substrate,(TNS),和一組行業(yè)標(biāo)準(zhǔn)的協(xié)議作為它的基本,技術(shù)。,TNS,建在,Oracle,的網(wǎng)絡(luò)中,允許它與,基本的計算機(jī)網(wǎng)絡(luò)協(xié)議進(jìn)行通信。,Net8,是建,立在網(wǎng)絡(luò)協(xié)議上的一個層次堆棧。與數(shù)據(jù)庫,通信的每臺機(jī)器都必須安裝,Net8,。,堆棧層:,說明:,Oracle-side Programmatic Interface(OPI),負(fù)責(zé)響應(yīng)由客戶機(jī)端,Oracle Call Interface(OCI),發(fā)送的每個可能的報文。例如,一個提取,25,行的,OCI,請求,一旦被提取可能有一個返回,25,行的,OPI,響應(yīng)。,Two-ta