Oracle 如何将 table 上的某些数据限制给不同的用户?

How can Oracle restrict certain data on a table to different users?

搜索了网站,似乎没有人问过这个问题。

我们有两个帐户在同一个 schema/database 上访问同一个 table。 User_1 帐户能够撤回所有记录,而 User_2 帐户只能撤回某些数据。

我知道 Oracle 可以限制 table 不同用户的访问权限,但我不知道它可以在数据级别执行类似的操作。

我的问题是 Oracle 可以这样做吗?如何做?

谢谢

您可以使用视图。

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;