為了更好的控制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應用的時候如果發現企業的網絡比較復雜同時又采用了防火牆等安全控制手段的話那麼筆者都會建議企業采用連接管理器來連接數據庫服務器如此的話後續由於網絡環境的調整而給數據庫通信造成的負面影響就會少的多
From:http://tw.wingwit.com/Article/program/Oracle/201311/17625.html