使用Oracle VPD
在許多初創(chuàng)的公司中,口香糖生產(chǎn)公司ABC看到了商機,希望能夠借助托管的業(yè)務(wù)系統(tǒng)來迅速占領(lǐng)市場。他們決定建立一個客戶信息系統(tǒng)(CIS)作為集中的網(wǎng)絡(luò)托管與數(shù)據(jù)服務(wù)應(yīng)用。為了讓這個基于云的SaaS交付模型能夠取得成功,他們必須整理一套解決方案,能夠不修改現(xiàn)有的應(yīng)用代碼,并提供數(shù)據(jù)安全性保障,并快速地進(jìn)行測試,將投資回報率最大化。
公司的IT團(tuán)隊否定了為每個客戶端部署單獨的數(shù)據(jù)庫策略,因為這樣做無法滿足所有的需求。因此他們開始考慮共享一個單獨的數(shù)據(jù)庫,其中數(shù)據(jù)庫負(fù)責(zé)人建議在同一個數(shù)據(jù)庫模式下用Oracle VPD存儲多客戶數(shù)據(jù)。他解釋了VPD對于應(yīng)用是完全透明的,能夠提供行級數(shù)據(jù)安全,滿足銷售團(tuán)隊的靈活性需求,它是最劃算的部署策略。他解釋了客戶為何無法認(rèn)識到他們在共享一個模式對象。
此外,他還描述了設(shè)計的主要組件是如何部署的(表1)。首先,用戶將繼續(xù)使用特定客戶端連接池作為一個代理,通過現(xiàn)有的Web應(yīng)用來連接到數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫會話建立之后,一個應(yīng)用語境將被設(shè)置來高效地捕獲客戶端標(biāo)識符屬性。安全性訪問策略將基于一個策略函數(shù),它將應(yīng)用到模式對象中以強制客戶端數(shù)據(jù)的邏輯分離。策略函數(shù)將使用應(yīng)用語境和一個客戶端標(biāo)識列來返回一個條件限制行,訪問CIS的表、視圖以及同義詞。