Oracle批量赋权的实现

Oracle批量赋权的方法可以实现一些特定的功能:两个用户,其中一个用户A 没有数据结构,实现通过用户A访问用户B的所有数据,只有读取数据的权限,看不到B用户数据结构,只能查询。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、兴山网络推广、成都小程序开发、兴山网络营销、兴山企业策划、兴山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供兴山建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

一、建立只读用户A:

 
 
 
  1. -- Create the user  
  2. create user A  
  3. identified by ""  
  4. default tablespace LMIS  
  5. temporary tablespace LMIS  
  6. profile DEFAULT;  
  7.  

二、授予A相应的权限(在有DBA权限用户B下执行)

 
 
 
  1. grant create session to A;  
  2. grant create synonym to A; 

三、以拥有者B身份执行下面的语句(commit 窗口)

 
 
 
  1. set heading OFF;  
  2. set feedback OFF;  
  3. SPOOL c:\temp\A.SQL; --放文件的路径  
  4. SELECT 'create synonym '||tname||' for B.'||tname||';' FROM TAB;  
  5. SPOOL OFF; 

四、转变为被赋权用户A的身份,执行

 
 
 
  1. @c:\temp\A.SQL 

五、赋予用户A权限(在B用户COMMIT窗口下执行)

 
 
 
  1. set heading OFF;  
  2. set feedback OFF;  
  3. SPOOL c:\grantA.SQL;  
  4. SELECT 'grant select,insert,update,delete,REFERENCES,INDEX on ' ||  
  5.  TNAME || ' to A;'  
  6. FROM TAB WHERE TABTYPE <>'VIEW'  
  7. UNION ALL  
  8. SELECT 'grant select,insert,update,deleteon ' || OBJECT_NAME ||  
  9.  ' to A;'  
  10. FROM USER_OBJECTS  
  11.  WHERE OBJECT_TYPE = 'VIEW' 
  12. UNION ALL  
  13. SELECT 'grant EXECUTEon ' || OBJECT_NAME || ' to A;'  
  14. FROM USER_OBJECTS  
  15.  WHERE OBJECT_TYPE = 'PROCEDURE' 
  16. UNION ALL  
  17. SELECT 'grant EXECUTEon ' || OBJECT_NAME || ' to A;'  
  18. FROM USER_OBJECTS  
  19.  WHERE OBJECT_TYPE = 'FUNCTION' 
  20. UNION ALL  
  21. SELECT 'grant selecton ' || OBJECT_NAME || ' to A;'  
  22. FROM USER_OBJECTS  
  23.  WHERE OBJECT_TYPE = 'SEQUENCE';  
  24.  
  25.  SPOOL OFF;  

六、执行脚本

 
 
 
  1. @c:\grantA.SQL; 

【编辑推荐】

三种oracle赋权

oracle树查询的实现

oracle查询当前时间的实现

带您深入了解Oracle临时表

教您如何在oracle中存图片

分享标题:Oracle批量赋权的实现
文章链接:http://www.csdahua.cn/qtweb/news11/283661.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网