【问题标题】:Oracle - Grant access to use tables of one schema in another schemaOracle - 授予访问权限以在另一个模式中使用一个模式的表
【发布时间】:2016-06-17 03:17:20
【问题描述】:

我在 Schema A 中有表。我在 Schema B 的包中创建了用于从模式 A 中的表中查询数据的过程,如下所示:

PROCEDURE GET_DATAFROM_A (....)
AS BEGIN 
execute immediate ' GRANT SELECT ON '||A||'.'||tblname||' TO B';
open PO_Cursor for 'select * from '||A||'.'||tblname;

但是当我执行程序时它显示

ORA-00942: 表或视图不存在

我有什么问题吗?

【问题讨论】:

    标签: oracle12c


    【解决方案1】:

    如果您以架构 B 的身份进行连接,则不能只说“授予自己访问架构 A 中的表的权限”。

    您获得了ORA-00942,因为现在您还没有对该表的特权,所以授权说“我什至不知道您在说什么表。”

    但即使 SchemaB 可以看到该表,Oracle 也会通知您:

    ORA-01749: you may not GRANT/REVOKE privileges to/from yourself
    

    您需要另一个用户(如 SchemaA)将表的必要权限授予 SchemaB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2011-10-11
      • 1970-01-01
      相关资源
      最近更新 更多