--创建
CREATE OR REPLACE PROCEDURE P_GRANT_TABLE_TO_FDC AS
pvar_grant_sql varchar2(4000) := '';
CURSOR c_grant IS --声明显式游标
select
'grant all on '|| 'user1' ||'.'||table_name||'to user2' as vsql
from all_tables --可以查看表明来查看表结构
where owner in ('用户名'); --用来生成用户名下的表的赋权语句
c_row c_grant%ROWTYPE; --定义游标变量,该变量的类型为基于游标 c_grant 的记录
BEGIN
FOR c_row IN c_grant LOOP
pvar_grant_sql := to_char(c_row.vsql);
execute immediate pvar_grant_sql;
END LOOP;
dbms_output.put_line('执行完成');
--dbms_output.put_line(pvar_grant_sql); -验证生成的sql是否是正确的。
END P_GRANT_TABLE_TO_FDC;
--调用
begin
P_GRANT_TABLE_TO_FDC;
end;
oracle中在同库不同用户的情境中进行赋权
最新推荐文章于 2022-11-17 20:54:08 发布