同事提了个需求,要oracle数据库中的a用户和b用户可以互相查询对方的表。
a和b用户下都有很多的表,百度了一下,没有语句是执行一次就能赋权的,好多是先生成sql语句在导出在执行。

select 'grant select on a.' || cr.table_name || ' to b;' from dba_tables where owner='a'

我的方法是用存储过程执行

declare
 begin
  for cr in (select table_name from dba_tables where owner='a') loop
     execute immediate 'grant select on a.' || cr.table_name || ' to b';
  end loop;
 end;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐