虛擬專用數據庫概述
虛擬專用數據庫是一項重要技術,使企業能夠構建託管的、基於 Web 的應用程序。實際上,許多 Oracle 應用程序本身使用 VPD 實施數據分隔,包括 Oracle 和 Oracle Portal 等程序。下面小編為大家整理了關於虛擬專用數據庫概述的文章,希望能為你提供幫助:
概述
虛擬專用數據庫 (VPD) 提供了角色和視圖無法提供的行級訪問控制。對於互聯網訪問,虛擬專用數據庫可以確保在線銀行的客户只能看到他們自己的帳户。Web 託管公司可以在同一 Oracle 數據庫中維護多個公司的數據,但只允許每個公司查看其自身數據。
在企業內部,虛擬數據庫可在應用程序部署方面降低擁有成本。可以在數據庫服務器一次實現安全性,而不用在訪問數據的每個應用程序中分別實現安全性。因為是在數據庫中實施安全性,所以不管用户訪問數據的方式如何,安全性較以前更高。訪問即席查詢工具或新報表生成程序的用户不再能繞過安全環節。虛擬專用數據庫是一項重要技術,使企業能夠構建託管的、基於 Web 的應用程序。實際上,許多 Oracle 應用程序本身使用 VPD 實施數據分隔,包括 Oracle 和 Oracle Portal 等程序。
虛擬專用數據庫如何工作
將一個或多個安全策略與表或視圖關聯後,就可以實現虛擬專用數據庫。對帶安全策略的.表進行直接或間接訪問時,數據庫將調用一個實施該策略的函數。策略函數返回一個訪問條件(WHERE 子句),即謂詞。應用程序將它附加到用户的 SQL 語句,從而動態修改用户的數據訪問權限。
你可以通過編寫一個存儲過程將 SQL 謂詞附加到每個 SQL 語句(用於控制該語句的行級別訪問權限)來實施 VPD。例如,如果 John Doe(他屬於 Department 10)輸入 SELECT * FROM emp 語句,則可以使用 VPD 添加 WHERE DEPT = 10 子句。這樣,您便可以通過對查詢進行修改
案例説明
1. 搭建環境--創建模式擁有者和相應的用户,賦予權限
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;
-
如何操作Oracle數據庫中的(+)連接
本文主要向你介紹的是Oracle數據庫中的(+)連接的`實際操作,本文是以相關使用代碼的描述來引出其實際的操作,你如果是Oracle數據庫中的(+)連接的瘋狂一族的話,就一起來看看吧!1.從表A.A1(+)=主表B.B1複製代碼SELECT_CHAR(_IO_DATE,'YYYY/MM/DD')A12.,_TBD_...
-
華創信科oracle ocm認證費用
Oracle數據庫產品為財富排行榜上的前1000家公司所採用,許多大型網站也選用了Oracle系統。下面是小編收集的華創信科oracleocm認證費用,希望大家認真閲讀!OracleWDP培訓中心CUUG(優技培訓)是國內最早通過甲骨文公司審查成為oracleWDP培訓中心的高端IT培訓機構,主要...
-
Oracle數據庫與FoxPro數據的轉換
我們大家都知道Oracle數據庫的數據格式和微機通用的實際應用格式有所不同,所以在實際操作中我們不能對Oracle的數據直接調用,Oracle數據庫所提供的相關前台的開發工具Developer2000雖然可以訪問Oracle的數據。並有數據訪問接口,但這些數據格式不是微機的`通用格式...
-
OracleDBA面試題彙總
1.解釋冷備份和熱備份的不同點以及各自的優點解答:熱備份針對歸檔模式的數據庫,在數據庫仍舊處於工作狀態時進行備份。而冷備份指在數據庫關閉後,進行備份,適用於所有模式的數據庫。熱備份的優點在於當備份時,數據庫仍舊可以被使用並且可以將數據庫恢復到任意一個時...