【问题标题】:How can I give to user, execute another users's functions?我怎样才能给用户,执行另一个用户的功能?
【发布时间】:2012-09-06 08:39:59
【问题描述】:

我想授予一个用户调用另一个用户函数的权限。

我写这个:GRANT EXECUTE ANY FUNCTION TO user;

但它不起作用。

用户需要调用这个:

call XXX.YYY.AlterAllInvalidObjects(NULL,'PACKAGE BODY');

但我怎样才能给予资助?

注意:我不想使用:GRANT EXECUTE ON FUNCTION AlterAllInvalidObjects TO user; 我需要通用解决方案而不是特定的函数名称。

【问题讨论】:

    标签: oracle privileges grant


    【解决方案1】:
    GRANT EXECUTE ANY PROCEDURE TO user;
    

    http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9013.htm#i2077938

    将管理职能和程序。 您不能只将这种方式授予函数......

    编辑

    另一种方式(但每次其他用户创建新函数以获取所有授权时,您都必须运行它):

    运行

    select 'GRANT EXECUTE ON '||owner||'.'||object_name||' TO user;'
    from all_objects
    where owner = 'xxx'
    and object_type='FUNCTION';
    

    然后复制粘贴执行结果...

    或使用 SP 做同样的事情(光标在查询上并立即在循环中执行)

    【讨论】:

      【解决方案2】:

      老实说,您似乎在询问同义词,而不是授权,因为授权无法帮助您在不提及架构的情况下调用调用 AlterAllInvalidObjects。请考虑http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm

      【讨论】:

        猜你喜欢
        • 2021-04-06
        • 2017-09-27
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-21
        • 1970-01-01
        相关资源
        最近更新 更多