【问题标题】:How to grant to stored procedure, privileges to select from a different schema?如何授予存储过程、从不同模式中选择的权限?
【发布时间】:2012-10-18 16:48:01
【问题描述】:

我需要用户无权访问其他方案,但存储过程可以访问不同的方案。

【问题讨论】:

    标签: oracle plsql oracle10g schema grant


    【解决方案1】:

    你所描述的是不可能的。

    如果b.procedure 可以在a.table 上选择、插入、更新或删除,那么任何以b 身份登录的人也可以这样做。

    您应该做的是创建过程a.proceduregrant execute on a.procedure to b

    【讨论】:

      【解决方案2】:

      权限不能授予对象,只能授予用户或角色。

      实现这种控制粒度的方法是让其他模式定义在其自己的表上运行的过程。然后它授予其他用户执行该过程。这是过程的一个有价值的用例,封装了模式对象上的操作。

      在 PL/SQL 对象中控制权限的机制是 AUTHID。有两个选项,CURRENT_USER 和 DEFINER。在这种情况下,您要使用定义者的权限AUTHID DEFINER(这是默认设置)。 Find out more

      【讨论】:

      • Definer 的权限是/是默认的,为什么要通过提及它来混淆这个答案?
      • @Colin'tHart - 为了完整起见
      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2021-05-30
      • 1970-01-01
      相关资源
      最近更新 更多