Oracle赋予用户查询另一个用户所有表的权限

您所在的位置:网站首页 oracle授予用户查询视图权限 Oracle赋予用户查询另一个用户所有表的权限

Oracle赋予用户查询另一个用户所有表的权限

2024-05-30 01:40| 来源: 网络整理| 查看: 265

用户:UserA,UserB

场景:用户UserA只有用户UserB指定表的查询权限。

解决方案:

1.给他一些权限,包括连接权限,因为他要创建同义词,还需要给他同义词

grant connect to UserA; grant create synonym to UserA; grant create session to UserA;

2.因为需要把UserB的所有表的查询权限给UserA。所以需要所有表的grant select on table_name to UserA语句,不可能一句一句去写,因此用select 吧所有的grant语句查出来直接执行

select 'grant select on '||owner||'.'||object_name||' to UserA;' from dba_objects where owner in ('UserB') and object_type='TABLE';

把所有结果复制出来,在UserB 下执行一遍

grant select on UserB.Table1 to UserA;

grant select on UserB.Table2 to UserA;

grant select on UserB.Table3 to UserA;

3.需要给UserB用户下所有表创建同义词,但是考虑到之前已经创建过一些表的同义词,因此把所有创建同义词的语句select出来在UserA用户下执行。

SELECT 'create or replace SYNONYM UserA. ' || object_name|| ' FOR ' || owner || '.' || object_name|| ';' from dba_objects where owner in ('UserB') and object_type='TABLE';

把所有结果复制出来登录UserA用户执行

create or replace SYNONYM  UserA. T_KDXF_ACCOUNT FOR UserB.Table1 ;

create or replace SYNONYM  UserA. T_KDXF_ACCOUNT FOR UserB.Table2 ;

create or replace SYNONYM  UserA. T_KDXF_ACCOUNT FOR UserB.Table3 ;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3