




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle Web数据库的开发数据库技术概述 Oracle DBMS在信息系统市场占据了很大的份额,并且具有较高的可靠性和可恢复性。 本章介绍 Oracle WebServer的体系结构及一些使用技术,使读者对于Oracle Web数据库开发有个基本的了解。 1. Oracle WebServer体系结构基本的WebServer体系结构 三种版本的WebServer体系结构 WebServer的基本成分解释 1. 基本的WebServer体系结构Oracle Webserver由以下几个部分组成:Web监听器(Listener)公共网关接口(CGI)Web请求代理(Request Broke
2、r)(WRB)PL/SQL代理(即OWA)和Web工具箱(WebToolkit)Java CartridgeLiveHTML Cartridge1.2 三种WebServer体系结构1Oracle WebServer 12Oracle WebServer 23Oracle WebServer 31Oracle WebServer 1体系结构 2Oracle WebServer 2体系结构 3Oracle WebServer 3体系结构 Oracle WebServer 3与Oracle WebServer 2在体系结构上相同,但其功能上有所增强。最大、最有效的增强是新的Web事务管理器。允许事
3、务生成复杂的HTTP请求(如插入、删除、提交、更新和回滚) 使分布事务针对Oracle或非Oracle数据库进行可靠的处理。 1.3 WebServer的基本成分解释 1WEB监听器 2Web请求代理器(WRB)3WRB分配器、执行引擎、cartridge和API 之间的关系4PL/SQL代理和Web工具箱5Java解释器cartridge6LiveHTML Cartridge1.2 WebServer的htp和OWA实用工具1.WebServer的htp实用工具2WebServer的OWA实用工具1.3 WebServer的PL/SQL和存储过程PL/SQL是过程语言/结构化查询语言(Pro
4、ceduralLanguage/Structured Query Language)的缩写,它是Oracle为了与Oracle数据库一起使用而创建的专用语言。PL/SQL的语法结构PL/SQL和存储过程1.3.1 PL/SQL的语法结构1申明部分2开始部分3PL/SQL中的循环 1.3.2 PL/SQL和存储过程1.存储过程的优点 良好的性能 数据与行为的结合 代码的隔离 封装性 更大的灵活性2.PL/SQL存储过程和软件包3.由Web向Oracle存储过程传递函数4.存储过程之间传递函数 1.4 WebServer和Java之间的联系1.Oracle WebServer的Java实现2. P
5、L/SQL在Java中的使用 3. Oracle WebServer的Java解释器 4.从Java存取Oracle数据库5.使用PL/SQL软件包装(package wrapper)1.5WebServer和LiveHTML之间的联系 LiveHTML是一个在Oracle WebServer中非常有用的工具。本质上,LiveHTML为将非Oracle的信息嵌入到一个Oracle Web页面中提供一种机制。 Oracle通过LiveHTML构件及LiveHTML解释器已经实现了WebServer体系结构中的SSI概念。SSI能通过不同的方法实现动态Web文档的创建,包括:将其它LiveHTML
6、文档嵌入到Web页面中嵌入静态Web页面引用系统变量在服务器上执行一个脚本,它产生HTML使用CGI执行PL/SQL过程1.6 WebServer的并发管理WebServer更新和并发性 Oracle数据库封锁 为WebServer选择完整性 1.6.1 WebServer更新和并发性 会话和伪会话 1.6.2 Oracle数据库封锁在Oracle中提供了两种类型的封锁:共享和互斥 。许多客户可能都有对同一资源的共享锁,但共享锁不能和互斥锁共存。 然而共享封锁有一个不良的后果,会导致DB-KEY死锁 1.7 安全性问题WebServer的安全性Oracle的安全性 1.7.1 WebServe
7、r的安全性为了保障Oracle的安全性,有以下十条人们总结出来的安全性指导方针:(1) DBA对于Oracle安全性负有最大的责任。所以,DBA有责任创建和维护所有的Oracle角色。(2) 所有的特权(对象特权和系统特权)将被放置在角色中。特权永远不会直接授予最终用户。注意,除了UNLIMITED TABLESPACE,因为UNLIMITED TABLESPACE不能授予一个角色。(3) 所有的角色将用一个口令保护,并且角色口令将被包含在应用程序中,使最终的用户永远不会知道被授予的角色的口令。(4) 永不使用ADMIN OPTION授予任何的系统特权,永不使用GRANT OPTION授予任何
8、表特权。(5) 只有一个最终用户是角色管理员(RA),RA有责任将角色授予最终用户,并且将对它所管理的每一个角色授予ADMIN OPTION。叫做”RA”的一个特定角色应用CREATE ANY USER特权创建,并且将给RA授权。(6) RA没有DROP ANY USER特权,又没有ALTER ANY USER特权。DBA将有责任取消最终用户标识,并且每一个最终用户有责任维护他们自己的Oracle口令,它将经过MS-Query,SQL*Plus或经过一个应用程序屏幕来维护。(7) 只有SYS和SYSTEM用户可以被授予DBA角色。(8) 只有三个角色可以给IS人员:CONTENT、RESOUR
9、CE和DBA。这些角色在所有的Oracle数据库中包含相同的特权。(9) 当不需要考虑安全性问题时,可以授予表public。(10)Oracle安全性每年应该审核两次来保证这些规则被遵守。1.7.2 Oracle的安全性Oracle数据库的安全性由SQL的grant语句授权并且由revoke语句来收回。可以授权的特权有两大类:表特权,对一个特定表的特定的操作被授予一个特定的用户(如,grant select on customer_table to Fred;);系统特权,将一个特权范围授予一个特定的用户(如,grant select any table to Fred;)。 系统特权系统特权
10、是执行一种操作,或在一个特定的对象类型的所有实例上执行一种操作的权利(如,grant select any table to black-joke)。系统特权被表示成三部分:操作、全局的(any)和对象类型。基于这个分类方法,系统特权用操作和与操作相关的对象类型来表示:操作(action)有以下几种:createdropaltergrantselectaudit (any)manage (tablespace) backup (table) force (transaction) become (user)对象类型有以下几种:cluster procedure database databas
11、e link privilege profile rolesession sequence snapshot system synonym table tablespacetrigger user对象特权 对象特权表视图序列快照AllxxxxAlterxxDeletexxIndexxInsertxxReferencesxSelectxxxxUpdatexx对象特权 对象特权是在一个指定的、命名的对象上执行的一种操作的权利(如,grant update on cat.food to sarah_tytler)。它通常表示成操作-对象名的形式。 函数、存储过程和软件包 WebServer安全性的一
12、个重要特点是通过函数、存储过程和软件包的使用来增强访问一个表的能力。(1)一个函数是一个代码段,它可以包含接收输入变量并且给函数的调用者返回值的SQL语句。(2)一个存储过程是一段代码,在它内部已经嵌入了SQL命令。(3)一个软件包是一个Oracle函数的集合或Oracle存储过程,它将存储过程合理的包装成一个单一的单元。 实现基于角色的安全性为WebServer推荐的安全性选项是将角色分配给为WebServer创建PL/SQL存储过程的关键开发者。WebServer应用程序的实现需要下列步骤:(1)创建空的角色/口令。(2)标识与角色相关的特权。(3)为角色分配表特权。(4)标识讲属于每个角
13、色的关键开发者。(5)将这些角色授予将创建Oracle存储过程的关键开发这。(6)取消所有已存在的表级对象特权并授予public。(7)使关键开发者创建WebServer存储过程。(8)将对这些存储过程的execute特权授予最终用户团体。WebServer的角色分配策略 一个Oracle角色层次的例子 1.8 使用Net8进行WebServer通信Net8的前生是SQL*Net 。在过去的几年中,SQL*Net逐渐发展壮大。现在它已改名为Net8。Net8是Oracle家族网络产品的基础,它的主要功能是建立网络会话,并在一台客户机和一台服务器或两台服务器之间传递数据,它允许服务及其应用驻留在
14、不同的计算机上,并作为对等应用进行通信。Net8和他的前辈SQL*Net都是独立于平台的。事实上,Net8所支持的网络协议的数量只受特定节点的硬件、内存和操作系统所强加的限制的影响 10.8.1 Oracle部件的层次Oracle部件的层次很像一个洋葱图(图11-11),有一个很大的中心圆,周围有很多圆圈绕着。Oracle洋葱的中心是RDBMS 。在核与其它层之间是网络协议。为了让Oracle与其它产品相联系,必须有第二层。1. Oracle协议Oracle使用Transparent Network Substrate (TNS)和一组行业标准的协议作为它的基本技术。TNS建在Oracle的网
15、络中,允许它与基本的计算机网络协议进行通信。Net8是建立在网络协议上的一个层次堆栈。与数据库通信的每台机器都必须安装Net8。堆栈层:说明:Oracle-side Programmatic Interface(OPI)负责响应由客户机端Oracle Call Interface(OCI)发送的每个可能的报文。例如,一个提取25行的OCI请求,一旦被提取可能有一个返回25行的OPI响应。Two-task Common(两任务共用层)解决发送端和接收端之间字符集的区别Net8(由三层组成)Network Interface(NI)隐藏基本网络协议和客户机应用的介质Network Routing(
16、NR)/Network Naming(NN)/Network Authentication(NA)负责将数据路由到最终目标Transparent Network Substrate(TNS)负责常规通信,如发送和接收数据Oracle Protocol Adapter(Oracle 协议适配器)将Net8与基本网络协议项隔离的弱层Network-Specific Protocol(专用网络协议)将SQL语句转换成可通过网络传输的数据包的层次堆栈应用于Oracle服务器的Net8的层次 在客户机端,所用的堆栈几乎与服务器是相同的,他们的区别在于最顶层。代替Oracle-side Programma
17、tic Interface (Oracle 端程序接口,OPI),在客户机端,有一个内建了Oracle Call Interface (Oracle调用接口,OCI)的应用层。通过该应用层,用户产生一个要在服务器端进行处理的请求。响应通过堆栈从服务器发送到客户机中。 客户机/服务器之间的请求与响应 2. Net8层 Net8的工作是提供会话层的功能。通过它的三个部件,Net8 建立并管理客户机和服务器之间的连接,并允许信息在它们之间进行交换。这三个部件为NI,组合部件NN/NR/NA以及TNS。Network Interface (NI)处理对连接的“断开”和“重置”请求。Network Ro
18、uting (NR)提供网络会话到目标的路由。这可能包括任何中间目标或到服务器目标路由中的“跃距”。Network Naming (NN)解析对Net8目标地址的网络服务名。Network Authentication (NA)通过对目标的验证请求。Transparent network Substrate (TNS) 提供对行业标准协议的一个命令接口,以打开、关闭、发送和接收来自Net8的请求,并澄清常规的机器级连接性问题。在服务器-服务器通信中,活动是相同的。3. Oracle使用的通信堆栈IIOP通信堆栈Java数据库连接堆栈IIOP通信堆栈 堆栈层:说明:客户机应用在Net8堆栈中出现
19、的相同的应用层GIOP表示层Oracle TCP/IP或带SSL的TCP/IP用来传输从一台机器到另一台机器的请求和相应的网络协议堆栈堆栈层:说明:Oracle服务器执行该请求处理的层TNSTransparent Network SubstrateOracle TCP/IP协议(有或没有SSL)带或不带有安全套接层的传输协议层的Oracle的实现TCP/IP专用网络协议在机器间传输请求和响应的传输协议的网络实现服务器端的IIOP通信堆栈客户机端的IIOP通信堆栈 Java数据库连接堆栈 有两种JDBC驱动程序可供您选择:使用Java Web服务器或Java应用程序编写一个基于客户机/服务器或瘦
20、客户机应用的应用程序。使用Java Applet编写应用程序。使用第种方法时,您将要使用JDBC/OCI驱动程序。该驱动程序将JDBC代码转换为对Oracle调用接口的调用。一旦JDBC调用转换为OCI,Net8发送转换了的调用到Oracle数库服务器中。使用第种方法(即使用Java Applet)时,瘦JDBC(JDBC Thin)驱动程序用来建立在Java套阶层上对Oracle数据库服务的直接连接。 4客户机端 使用Java连接数据库时所用的堆栈非常类似与标准的Oracle通信堆栈,它们的唯一区别在于客户机的接口。在标准的Oracle堆栈中,顶层为客户机应用层。对于Java数据库连接堆栈,
21、顶层实际有三层,这些层次实现的方法不同取决于应用是用JDBC/OCI编写,还是用Java小程序瘦JDBC代码调用编写。 堆栈层说明JDBC客户机Java应用代码JDBC驱动程序JDBC/OCI驱动程序或瘦JDBC驱动程序DBAccess接口用来启动SQL会话的机制(很像OCI接口)堆栈层说明JavaTTC由两任务共用层的一个子集组成,能进行Java客户机和数据库之间的信息交换JavaNet由三层组成:通信接口、寻址、以及Java Network Substrate网络协议层由两层组成:Java接插层和TCP/IPJDBC客户机应用堆栈层次 瘦JDBC通信堆栈的层次 5服务器端在服务器端所用的堆
22、栈和标准的Oracle通信堆栈是一致的。当一个请求通过瘦JDBC通信堆栈进行处理时,它看起来就像由服务器通过Net8所接受的其它请求一样。6Oracle兼容的协议协议:说明:TCP/IP允许客户机/服务器使用TCP/IP在网络上的会话带SSL的TCP/IP允许客户机/服务器使用TCP/IP和安全接插层(SSL)在网络上的会话。SSL在一个Oracle Wallet中存储验证数据,如信用证书和私有密匙。SPX允许客户机/服务器使用SPX/IPX在网络上会话。该协议主要在Novell NetWare环境中使用。Named Pipes(命名管道)提供客户机和服务器之间的内部进程通信的高级接口(分布式应用)。一个进程(应用的服务器端)建立管道,另一个进程(客户机端)通过名字打开该管道。一端写什么,另一端就可以读什么,反之亦然。Logical Unit Type6.2(LU6.2)IBM Advanced Program-to-Program Communication(APPC)体系结构的一部分,允许客户机和主机在SNA网络上的通信,而不强迫客户机模拟一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路ppp合同范本
- 分红比例合同范本
- 公路规划合同范本
- 协议合同范本写法
- 兼职还款合同范本
- pos机推广合同范本
- 入股店铺协议合同范本
- 义齿加工合同范本模板
- 京东入职合同范本
- 医院整体转让合同范本
- GB/T 24338.1-2018轨道交通电磁兼容第1部分:总则
- GB/T 13145-2018冷藏集装箱堆场技术管理要求
- 《城市管理综合执法问题研究国内外文献综述》4800字
- 数据结构英文教学课件:chapter4 Stacks and Queues
- 结构化面试题型及套路
- 无人机测绘技术及应用课件
- 生殖崇拜专题知识讲座
- 工业CT发展及应用课件
- 浦发银行个人信用报告异议申请表
- DBJ50∕T-098-2019 城市绿化养护质量标准
- 五子棋棋盘完整
评论
0/150
提交评论