我在补助金方面遇到问题。
情况是这样的:
CREATE VIEW SCHEMA2.VIEW as SELECT * from SCHEMA1.TABLE;
GRANT SELECT ON SCHEMA2.VIEW to SCHEMA3;
问题是 SCHEMA3 无法访问视图。它的许可被拒绝。 我不想让 SCHEMA3 直接访问 SCHEMA1。
我怎样才能实现这一目标?
“无法访问”几乎毫无用处。这究竟意味着什么?有错误吗?我想是这样;那么是哪一个呢?
这是一个工作示例;看看是否有帮助。
3位用户参与:
SCOTT
拥有该表并通过授予选项授予对
MIKE
的访问权限(选择权限);没有它,MIKE
无法进一步授予MIKE
是第二个用户,创建视图并将其选择(视图)授予第三个用户,KING
第一个用户:
SQL> connect scott/tiger@orcl
Connected.
SQL> grant select on emp to mike with grant option;
Grant succeeded.
第二位用户:
SQL> connect mike/lion@orcl
Connected.
SQL> create or replace view v_se as select * from scott.emp;
View created.
SQL> select count(*) from v_se;
COUNT(*)
----------
14
SQL> grant select on v_se to king;
Grant succeeded.
第三位用户:
SQL> connect king/cat@orcl
Connected.
SQL> select count(*) from mike.v_se;
COUNT(*)
----------
14
SQL>
所以,是的 - 第三个用户 (
KING
) 能够访问 SCOTT
的数据。