在SYS用户下执行:

CREATE OR REPLACE PROCEDURE P_CRSYN_GRANT(V_USER IN VARCHAR2, V_OBJECT_OWNER IN VARCHAR2) IS----V_USER         需要授权的用户
----V_OBJECT_OWNER     对象所有者CURSOR C_SQL_STR IS SELECT 'CREATE OR REPLACE PUBLIC SYNONYM '||OBJECT_NAME ||' FOR '||V_OBJECT_OWNER||'.'||OBJECT_NAME  CREATE_SQLFROM DBA_OBJECTSWHERE OBJECT_TYPE IN('TABLE', 'VIEW', 'PROCEDURE', 'TRIGGER', 'FUNCTION', 'PACKAGE','SEQUENCE') AND OWNER = UPPER(V_OBJECT_OWNER);
--定义索引表数据类型TYPE REG_TABLE_TYPE IS TABLE OF VARCHAR2(1000)INDEX BY BINARY_INTEGER;
--声明索引表数据类型的变量
   V_SELECT_TABLE REG_TABLE_TYPE;--定义参考游标数据类型  TYPE V_REF_CURSOR IS REF CURSOR ;
--声明参考游标数据类型的变量
   C_SQL V_REF_CURSOR;V_GRANT_STR VARCHAR2(2000);BEGINFOR V IN C_SQL_STR LOOPEXECUTE IMMEDIATE V.CREATE_SQL;END LOOP;V_SELECT_TABLE(1) := 'SELECT ''GRANT SELECT,INSERT,UPDATE,DELETE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''TABLE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(2) := 'SELECT ''GRANT SELECT,INSERT,UPDATE,DELETE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''VIEW'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(3) := 'SELECT ''GRANT EXECUTE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''PROCEDURE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(4) := 'SELECT ''GRANT EXECUTE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''FUNCTION'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(5) := 'SELECT ''GRANT SELECT ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''SEQUENCE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';FOR INT IN V_SELECT_TABLE.FIRST .. V_SELECT_TABLE.LAST LOOPOPEN C_SQL FOR V_SELECT_TABLE(INT);  LOOPFETCH C_SQL INTO V_GRANT_STR;    EXIT WHEN C_SQL%NOTFOUND;EXECUTE IMMEDIATE V_GRANT_STR;END LOOP;CLOSE C_SQL;              END LOOP;
END;

转载于:https://blog.51cto.com/xumingjiang/1578625

批量创建同义词并授权相关推荐

  1. oracle批量建同义词,Oracle批量创建同义词

    一.介绍 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用 ...

  2. Oracle创建同义词并授权

    --创建同义词 --TableSpace表空间,TableName表名 create synonym TableName for TableSpace.TableName;--查询已授权记录 --TA ...

  3. Oracle 用户创建同义词并授权

    oracle中对象归属于创建者,其他用户需要操作对象,则需要授权. 通常授权语句如下: 在创建者下执行(其中TABLExxx是需要授权的表,userxxx是被授权者) GRANT SELECT,UPD ...

  4. Oracle授权及创建同义词

    今天需要授权和创建同义词,特意记录学习: 例如A账号创建了表tb_users, B账号想要可以使用tb_users表,此时需要进行授权和创建同义词操作 授权操作由tb_users的owner授权(即A ...

  5. oracle 授权同义词权限不足,创建同义词ora-01031权限不足

    我需要帮助了解用户需要何种授权/权限才能在指向另一个(不同的)模式对象时创建SYNONYM.创建同义词ora-01031权限不足 当我尝试下面的内容时,我得到的ora-01031权限不够,所以显然我失 ...

  6. oracle创建同义词授权,Oracle同义词赋权

    --1)创建测试用户 user1,user2,user3,并给user2和user3赋创建同义词的权限----------------------------------dba -- Create t ...

  7. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)...

    昨日内容回顾 外键的变种三种关系:多对一:左表的多 对右表一 成立左边的一 对右表多 不成立foreign key(从表的id) refreences 主表的(id)多对多建立第三张表(foreign ...

  8. 阿里云ECS开放批量创建实例接口,实现弹性资源的创建

    摘要: 为了更方便的实现弹性的资源创建,方便用户一次运行多台ECS按量实例来完成应用的开发和部署,阿里云开放了ECS的批量创建实例接口RunInstances,可以单次最多创建100台实例,避免重复调 ...

  9. 为informix数据库中的表创建同义词

    事件描述: Informix数据库服务器dbserver有数据库db_a和数据库db_b,db_a是用户a创建的,db_b是用户b创建的, 由于使用db_a数据库的程序需要读取db_b数据库中的表,在 ...

最新文章

  1. 使用负载均衡SLB IPv6搞定苹果AppStore审核
  2. centos7.3网络实验环境(金个人)
  3. Netflix发布Polly.JS,一个用于HTTP交互的开源库
  4. UVA - 1346 Songs (贪心+排序)
  5. linux下Eclipse+CDT开发环境配置与使用
  6. SpringBoot使用JdbcTemplate案例(学习笔记)
  7. kali字典_kali黑客系统wpscan工具扫描wordpress漏洞入侵攻击测试教程
  8. 显示当前没有家庭组计算机,已创建家庭组且加入家庭组,但显示“当前没有其他可用的家庭组计算机?”...
  9. 太赞了!性能超越谷歌MobileNet!ECCV2020重磅推出MobileNeXt !
  10. Oracle数据库碎片分析,oracle数据库碎片概念与分析
  11. 机器学习基石--学习笔记01--linear hard SVM
  12. Spring MVC中@ControllerAdvice注解实现全局异常拦截
  13. [转载] 卷积神经网络做mnist数据集识别
  14. 怎样做风险评估?风险评估有哪些具体实施流程?
  15. 计算机考试科目一模拟试题,学车科目一模拟考试,最全答题知识点,送给准备考驾照的你...
  16. python中reduce什么意思_python中的reduce
  17. 6个不可多得的黑科技网站!
  18. 海康摄像头忘记密码,自己如何快速重置密码
  19. 2020-02-29
  20. GitHub 3.6k Satr自监督学习(Self-Supervised Learning)资源你值得拥有!

热门文章

  1. linux win32disk,windows使用Win32DiskImager安装树莓派系统
  2. 计算机科学与技术分享会,“相伴成长,绘梦未来”——计算机科学学院计算机科学与技术专业举办交流分享会...
  3. python杂记(一)
  4. 将NetConf转成NormalizedNode对象及NormalizedNode对象转回NetConf(序列化与反序列化)
  5. java语言实现图的深度优先遍历
  6. 2021-04-21--中标麒麟-yum源修改
  7. Java实现向指定URL用POST方法发送Json格式字符串参数请求的工具类
  8. 【知识图谱实战】 Neo4j入门与示例
  9. python中对切片的理解
  10. 敏捷项目计划的多层面