为了更好的控制Oracle数据库的连接Oracle提出了一个连接管理器的解决方案连接管理器是Oracle开发的一个中间件解决方案它提供了许多可缩放性的特性Oralce连接管理器又是一个多用途的联网解决方案可用于提升可伸缩性提供多协议连通性以及安全网络访问控制方案如下图所示具体的来说Oracle连接管理器可以实现如下几个功能
功能一多路复用
Oracle连接管理器通过充当一个连接集中器以在单个网络连接内集中多个客户端数据库会话以支持大量用户连接到一个服务器也就是说连接管理器可以分组许多客户连接并把它们作为一个单独的多路复用网络连接发送给Oracle服务器这就降低了服务器必须管理的网络连接总数量如上图所示如果现在有三个用户通过客户端要连接到Oracle数据库据服务器中则这三个用户可以先连接到Oracle连接管理器上然后连接管理器会对客户端的请求进行处理并把它们合成一个请求转发给数据库服务器此时数据库服务器就会认为这三个用户的请求是来自于同一个客户端从而可以支持大量客户端连接到一个数据库服务器中;同时可以降低服务器管理的网络连接总数量另外这种处理机制还可以降低数据库服务器的系统资源开销提高数据库的性能因为Oracle连接管理器可以通过将到服务器的网络连接数量降至道最低来减少操作系统的资源要求可以避免数据库网络应用中的瓶颈数据库系统的可伸缩性将得到极大的改善
故当企业的客户端数量比较多的话笔者建议数据库管理员在网络中部署一个连接管理器客户端通过连接管理器来连接到Oracle数据库中
功能二支持防火墙提高数据库安全
在Oralce连接控制器中体现了跟防火墙很好的合作性如通过Oralcle连接管理器的Proxy功能防火墙厂商能够在Oracle环境中提供部署真正分布式互联网和内联网应用程序所必须的支持以前在没有这个功能的时候防火墙就成为了Oracle数据库网络应用的重大障碍之一
如笔者以前在部署Oracle数据库应用的时候就出现过很多防火墙与Oracle数据库不兼容的案例如一次笔者给防火墙应用了一个补丁程序在打补丁之前数据库连接还很正常的可是当打了补丁之后数据库连接就出现了问题如客户端与Oralce数据库服务器之间会出现一些间歇性的断开现象虽然说笔者怀疑是这个补丁程序出现了问题但是没有证据防火墙厂商也会买我的帐笔者花了好几天时间对网络与数据库通信进行跟蹤;而且还去调查其他企业是否也有类似的情况皇天不负有心人终于让笔者发现了问题所在然后笔者就跟防火墙厂商进行联系协商具体的解决方案在彼此双方的共同努力下这个问题终于得到了圆满的解决
虽然现在Oracle数据库能够提供对防火墙的支持如支持IP过滤防火墙以监视IP网络信息包的传播并过滤出哟阿么不发自指定计算机组的信息包而且还可以通过基于代理的防火墙阻止来自防火墙外部的信息直接流入到企业网络中这种防火墙就好像是企业的一个看门人会对用户的请求进行审查并只发送适当的信息到企业网络可见防火墙是企业网络中一个重要的安全机制也是保护Oracle数据库安全的一个重要手段但是类上面这种防火墙与Oracle数据库之间出现的沖突经常会遇到而且有时候很难查找问题的原因而现在通过Oracle连接管理器则可以很好的避免这种情况可以大大地减少因为防火墙问题而给数据库连接带来的不良反应
功能三网络访问控制
在连接控制器中还可以使用IP地址限制访问权的规则来配置如IP地址可以创建这个基于规则的配置来接受或者拒绝客户的连接请求另外客户端的连接还可以按起始点目标服务器和Oracle服务器来限制具体来说可以通过三种类型来限制客户端的访问分别为通过协议类型限制客户端连接通过IP地址限制客户端连接与通过服务名限制客户端连接不过最常用的还是通过IP地址来限制客户端的连接前不久笔者刚好完成过类似的一个项目
这家企业是一家集团型企业规模比较大由于需要上一个集团财务管理系统故需要配置Oracle数据库由于这个财务管理软件系统主要是归财务部门使用其他部门用不着为了提高这个数据库的安全企业就提出了一个要求他们只允许财务人员可以访问这个数据库笔者调查了企业的网络部署情况发现企业对于财务部门比较重视如还特意通过虚拟局域网的形式限制其他部门对财务部门网络的访问(通过固定IP地址来实现)了解到了这个情况之后笔者就心中有解决方案了笔者最后跟企业确认后在Oracle数据库服务器之前部署了一个Oracle连接管理器通过这个连接管理器配置实现只有特定的IP地址才可以连接到Oracle服务器中而其他非财务部门的用户(Ip地址不是财务部门的)不能够连接到这台Oracle数据库服务器中
通过类似的方法来提高Oracle数据库的安全还有很多如企业可能现现在有多台Oracle数据库服务器如有的是ERP系统的后台数据库;而有的是财务管理软件的后台数据库现在企业财务部门可以访问这两台数据库服务器;而财务部门以外的员工只能够访问ERP系统的数据库服务器此时也可以通过连接控制起来实现访问控制可见Oracle连接控制器提供了很多访问控制的手段可以提高Oralce数据库的安全性
功能四多协议的支持
连接管理器的多协议支持允许客户端使用不同网络协议来与服务器进行通信连接管理器在其中充当一个翻译器的角色来为客户端与服务器端进行双向协议转换如上图所示其实确切的说客户端可以通过多个协议连接到Oracle连接管理器而连接管理器与数据库服务器的连接则往往只有一种协议连接管理器在把请求发送给服务器之前已经对连接进行了翻译翻译成为了数据库服务器可以认同的协议然后连接管理器在接受到数据库服务器的反馈之后就会把再对协议进行转换转换为客户端可以认同的协议并与客户端进行通信也就是说此时客户段可能就认为连接管理器就是数据库服务器
如上图中现在有三个客户端采用了不同的网络协议当客户端向数据库连接管理器发送连接请求时连接管理器如果发现有可以采用的不是Oracle数据库服务器所接受的网络协议则会先对网络协议进行转换然后再把转换过的请求发送给数据库服务器可以Oracle连接管理器允许使用不同网络协议的客户与服务器进行通信这在比较复杂的环境环境中非常的有用
故连接管理器可以在访问控制防火墙支持多路复用多协议支持等多个方面提供比较出色的支持为此笔者在给企业部署Oracle应用的时候如果发现企业的网络比较复杂同时又采用了防火墙等安全控制手段的话那么笔者都会建议企业采用连接管理器来连接数据库服务器如此的话后续由于网络环境的调整而给数据库通信造成的负面影响就会少的多