2016-02-04 72 views
0

搜索該網站,似乎並沒有發現有人問過這個問題。Oracle如何限制某個表上的某些數據給不同的用戶?

我們有兩個帳戶訪問同一個模式/數據庫上的同一個表。 User_1帳戶能夠撤回所有記錄,而User_2帳戶只能撤回某些數據。

我知道Oracle有能力限制不同用戶的表訪問,但我不知道它可以在數據級別上做這樣的事情。

我的問題是Oracle可以做到這一點,怎麼做?

謝謝

+1

也許你創建了一個非限制字段的視圖,並且只給視圖上的特權較低的用戶授權。 – Marc

+4

使用虛擬專用數據庫:http://docs.oracle.com/cd/B19306_01/network.102/b14266/apdvpoli.htm#CHDFGBEB –

+0

細粒度訪問控制? –

回答

1

您可以使用視圖。

CREATE OR REPLACE VIEW V_TABLE_FOR_USER_2 AS 
SELECT * 
FROM THE_TABLE 
WHERE {data} = {certain data}; 

GRANT SELECT, INSERT, DELETE, UPDATE ON THE_TABLE TO USER_1; 
GRANT SELECT, INSERT, DELETE, UPDATE ON V_TABLE_FOR_USER_2 TO USER_2; 
相關問題