Sql 使用动态用户子查询授予在上执行权限
我使用query-1成功地对ABC用户的XXX类型执行了授予选项 查询-1:Sql 使用动态用户子查询授予在上执行权限,sql,oracle,plsql,Sql,Oracle,Plsql,我使用query-1成功地对ABC用户的XXX类型执行了授予选项 查询-1: GRANT EXECUTE ON XXX TO ABC WITH GRANT OPTION; 我使用query-2成功获取了当前用户 查询-2: select user from dual; 现在我想对用户动态执行query-1,所以我尝试将用户存储在一个变量中,比如user\u name[意味着user\u name=从dual中选择user;] 然后执行查询1--- 我也试过了 GRANT EXECUTE ON
GRANT EXECUTE ON XXX TO ABC WITH GRANT OPTION;
我使用query-2成功获取了当前用户
查询-2:
select user from dual;
现在我想对用户动态执行query-1,所以我尝试将用户存储在一个变量中,比如user\u name[意味着user\u name=从dual中选择user;]
然后执行查询1---
我也试过了
GRANT EXECUTE ON XXX TO (select user from dual) WITH GRANT OPTION;
但编译失败了
请帮我解决这个问题
谢谢您可以在
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;
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;