Oracle:授予选择模式2的视图,该视图将模式1中的数据引用到模式3

问题描述 投票:0回答:1

我在补助金方面遇到问题。

情况是这样的:

CREATE VIEW SCHEMA2.VIEW as SELECT * from SCHEMA1.TABLE;
GRANT SELECT ON SCHEMA2.VIEW to SCHEMA3;

问题是 SCHEMA3 无法访问视图。它的许可被拒绝。 我不想让 SCHEMA3 直接访问 SCHEMA1。

我怎样才能实现这一目标?

oracle
1个回答
0
投票

“无法访问”几乎毫无用处。这究竟意味着什么?有错误吗?我想是这样;那么是哪一个呢?


这是一个工作示例;看看是否有帮助。

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
的数据。

© www.soinside.com 2019 - 2024. All rights reserved.