在 Oracle 中授予权限并创建 Public 同义词

Grant Privileges and Create Public Synonym in Oracle

我在模式 A 中有视图,我想为模式 B 中的这些视图创建一个同义词。

你能帮我写一个关于授予角色和创建同义词的查询吗?

从用户A,您只需要将用户A的视图权限SELECT授予用户B

GRANT SELECT ON A.viewname1 TO B;
GRANT SELECT ON A.viewname2 TO B;
...

对于 B,创建同义词允许在没有模式前缀的情况下引用用户 A 的视图 ("A.")。

CREATE SYNONYM viewname1 FOR A.viewname1;
CREATE SYNONYM viewname2 FOR A.viewname2;
...

用户 B 现在应该可以从这样的视图中 select:

SELECT * FROM viewname1;

请注意,只有拥有 CREATE SYNONYM 权限的用户才能使用 CREATE SYNONYM