【问题标题】:Grant Execute On with dynamic user subquery使用动态用户子查询授予 Execute On
【发布时间】:2017-07-17 01:11:30
【问题描述】:

我在 ABC 用户上使用 query-1 成功执行了 XXX 类型的授权选项

查询-1:

GRANT EXECUTE ON XXX TO ABC WITH GRANT OPTION;

我使用 query-2 成功获取了当前用户

查询-2:

select user from dual;

现在我想对用户动态执行 query-1。所以我试图将用户存储在一个变量中说 user_name[意味着 user_name = select user from dual;]

然后像 --- 一样执行查询 1

GRANT EXECUTE ON XXX TO user_name WITH GRANT OPTION;

我也试过

GRANT EXECUTE ON XXX TO (select user from dual) WITH GRANT OPTION;

但是编译失败。

请帮我解决这个问题。

谢谢

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    您可以在PLSQL 块中这样使用它:

    declare
         user_name                     varchar2 (100);
         v_sql                         varchar2 (100);
    begin
         select 'HR'
           into user_name
           from dual;
    
         v_sql := 'GRANT EXECUTE ON get_values TO  '||user_name||'  WITH GRANT OPTION';
    
         execute immediate v_sql;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 2017-07-06
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      相关资源
      最近更新 更多