虛擬專用數(shù)據(jù)庫(kù)概述
虛擬專用數(shù)據(jù)庫(kù)是一項(xiàng)重要技術(shù),使企業(yè)能夠構(gòu)建托管的、基于 Web 的應(yīng)用程序。實(shí)際上,許多 Oracle 應(yīng)用程序本身使用 VPD 實(shí)施數(shù)據(jù)分隔,包括 Oracle SalesOnline.com 和 Oracle Portal 等程序。下面小編為大家整理了關(guān)于虛擬專用數(shù)據(jù)庫(kù)概述的文章,希望能為你提供幫助:
概述
虛擬專用數(shù)據(jù)庫(kù) (VPD) 提供了角色和視圖無(wú)法提供的行級(jí)訪問(wèn)控制。對(duì)于互聯(lián)網(wǎng)訪問(wèn),虛擬專用數(shù)據(jù)庫(kù)可以確保在線銀行的客戶只能看到他們自己的帳戶。Web 托管公司可以在同一 Oracle 數(shù)據(jù)庫(kù)中維護(hù)多個(gè)公司的數(shù)據(jù),但只允許每個(gè)公司查看其自身數(shù)據(jù)。
在企業(yè)內(nèi)部,虛擬數(shù)據(jù)庫(kù)可在應(yīng)用程序部署方面降低擁有成本?梢栽跀(shù)據(jù)庫(kù)服務(wù)器一次實(shí)現(xiàn)安全性,而不用在訪問(wèn)數(shù)據(jù)的每個(gè)應(yīng)用程序中分別實(shí)現(xiàn)安全性。因?yàn)槭窃跀?shù)據(jù)庫(kù)中實(shí)施安全性,所以不管用戶訪問(wèn)數(shù)據(jù)的方式如何,安全性較以前更高。訪問(wèn)即席查詢工具或新報(bào)表生成程序的`用戶不再能繞過(guò)安全環(huán)節(jié)。虛擬專用數(shù)據(jù)庫(kù)是一項(xiàng)重要技術(shù),使企業(yè)能夠構(gòu)建托管的、基于 Web 的應(yīng)用程序。實(shí)際上,許多 Oracle 應(yīng)用程序本身使用 VPD 實(shí)施數(shù)據(jù)分隔,包括 Oracle SalesOnline.com 和 Oracle Portal 等程序。
虛擬專用數(shù)據(jù)庫(kù)如何工作
將一個(gè)或多個(gè)安全策略與表或視圖關(guān)聯(lián)后,就可以實(shí)現(xiàn)虛擬專用數(shù)據(jù)庫(kù)。對(duì)帶安全策略的表進(jìn)行直接或間接訪問(wèn)時(shí),數(shù)據(jù)庫(kù)將調(diào)用一個(gè)實(shí)施該策略的函數(shù)。策略函數(shù)返回一個(gè)訪問(wèn)條件(WHERE 子句),即謂詞。應(yīng)用程序?qū)⑺郊拥接脩舻?SQL 語(yǔ)句,從而動(dòng)態(tài)修改用戶的數(shù)據(jù)訪問(wèn)權(quán)限。
你可以通過(guò)編寫一個(gè)存儲(chǔ)過(guò)程將 SQL 謂詞附加到每個(gè) SQL 語(yǔ)句(用于控制該語(yǔ)句的行級(jí)別訪問(wèn)權(quán)限)來(lái)實(shí)施 VPD。例如,如果 John Doe(他屬于 Department 10)輸入 SELECT * FROM emp 語(yǔ)句,則可以使用 VPD 添加 WHERE DEPT = 10 子句。這樣,您便可以通過(guò)對(duì)查詢進(jìn)行修改
案例說(shuō)明
1. 搭建環(huán)境--創(chuàng)建模式擁有者和相應(yīng)的用戶,賦予權(quán)限
view plaincopy to clipboardprint?
CONNECT sys/password@service AS SYSDBA;
CREATE USER schemaowner IDENTIFIED BY schemaowner
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO schemaowner;
CREATE USER user1 IDENTIFIED BY user1
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO user1;
CREATE USER user2 IDENTIFIED BY user2
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO user2;
GRANT EXECUTE ON DBMS_RLS TO PUBLIC;
CONN schemaowner/schemaowner@service
CREATE TABLE users
(id NUMBER(10) NOT NULL,
ouser VARCHAR2(30) NOT NULL,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL);
CREATE TABLE user_data
(column1 VARCHAR2(50) NOT NULL,
user_id NUMBER(10) NOT NULL);
INSERT INTO users VALUES (1,'USER1','User','One');
INSERT INTO users VALUES (2,'USER2','User','Two');
COMMIT;
GRANT SELECT, INSERT ON user_data TO user1, user2
CONNECT sys/password@service AS SYSDBA;
CREATE USER schemaowner IDENTIFIED BY schemaowner
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO schemaowner;
CREATE USER user1 IDENTIFIED BY user1
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO user1;
CREATE USER user2 IDENTIFIED BY user2
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect, resource TO user2;
GRANT EXECUTE ON DBMS_RLS TO PUBLIC;
【虛擬專用數(shù)據(jù)庫(kù)概述】相關(guān)文章:
Oracle數(shù)據(jù)庫(kù)概述及特點(diǎn)05-28
展會(huì)有哪些專用名詞-展會(huì)專用名詞知識(shí)10-30
項(xiàng)目管理概述05-31
IBM認(rèn)證概述10-23
eda技術(shù)概述11-15
菲律賓游學(xué)概述07-17
土地估價(jià)概述11-11
戰(zhàn)略采購(gòu)概述10-17
婚禮禮儀概述11-14