2016-02-04 48 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; 
相关问题