在特定用户拥有的所有表上授予“选择"权限 [英] Grant Select on all Tables Owned By Specific User

查看:57
本文介绍了在特定用户拥有的所有表上授予“选择"权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将特定用户拥有的所有表的选择权限授予另一个用户.我可以用一个命令执行以下操作吗?

I need to grant select permission for all tables owned by a specific user to another user. Can I do this with a single command along the lines of:

Grant Select on OwningUser.* to ReceivingUser

还是我必须为每个表生成带有以下内容的sql:

Or do I have to generate the sql for each table with something along the lines of:

 Select 'GRANT SELECT ON OwningUser.'||Table_Name||'TO ReceivingUser' 
 From All_Tables Where Owner='OWNINGUSER'

推荐答案

好吧,这不是一个单独的语句,但它与oracle所能达到的效果差不多:

Well, it's not a single statement, but it's about as close as you can get with oracle:

BEGIN
   FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='TheOwner') LOOP
      EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to TheUser';
   END LOOP;
END; 

这篇关于在特定用户拥有的所有表上授予“选择"权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆