如何把一个用户下所有表的查询权限赋给另一用户

 我来答
醉卧沙场一声嚎
2016-07-11 · TA获得超过2090个赞
知道小有建树答主
回答量:1005
采纳率:0%
帮助的人:313万
展开全部
只要将用户1下所有表的查询权限赋给用户2即可。但是,用户1下可能有很多表,如果一条一条地写grant语句很不现实,这里介绍一种便捷的方法:通过查询语句得到grant赋权限脚本,执行一下就可以了。

SQL> show user
USER 为"SYS"
SQL> create user tt
2 identified by tt;

用户已创建

SQL> grant create session to tt;

授权成功。

SQL> select 'grant select on '||owner||'.'||object_name|| ' to user1;'
2 from dba_objects
3 where object_type='TABLE' and wner='SCOTT';

'GRANTSELECTON'||OWNER||'.'||OBJECT_NAME||'TOUSER1;'
------------------------------------------------------------------------------

grant select on SCOTT.BONUS to user1;
grant select on SCOTT.CC to user1;
grant select on SCOTT.CC1 to user1;
grant select on SCOTT.DEPT to user1;
grant select on SCOTT.EMP to user1;
grant select on SCOTT.SALGRADE to user1;
grant select on SCOTT.T1 to user1;
grant select on SCOTT.T2 to user1;
grant select on SCOTT.TT to user1;

已选择9行。

复制上面的查询结果团仔执行一下就可以了。如果查询结果太多的话,可以将这样做:

set pages 999;
set heading off;
spool run_grant.sql
select 'grant select on '||owner||'.'||object_name|| ' to user1;'
from dba_objects
where object_type='TABLE' and wner='SCOTT';
spool off;
@run_grant

这是一种塌渣汪很方便高效梁乎的方法,可以使工作事半功倍。

把所有表的查询权限赋给另一个用户

grant select any table to QUERY;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式