一、介绍

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

很多时候,会有多个oracle账号访问一个账号下的表,比如:USER_A用户下面有很多表,相关的sql语句都是USER_A.Tablename等等等,这时候需要用USER_B用户去访问USER_A的表,但是sql语句还要保持USER_A.Tablename,就需要用到同义词了

同义词分类: Oracle同义词有两种类型,分别是Oracle公用同义词与Oracle私有同义词。普通用户创建的同义词一般都是私有同义词,公有同义词一般由DBA创建,普通用户如果希望创建同义词,则需要CREATE PUBLIC SYNONYM这个系统权限。

Oracle公用同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。

Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。

二、创建同义词

语法:

CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同义词名称 FOR [ schema.] object [ @dblink ];

专有(私有)同义词

CREATE SYNONYM SYSN_TEST FOR TEST;

公共同义词

CREATE PUBLIC SYNONYM PUBLIC_TEST FOR TEST;

2.1首先需要sys用户授权USER_B创建同义词权限

其中USER_B是需要创建同义词的用户

GRANT CREATE SYNONYM TO USER_B;

这个时候还需要一个权限就是USER_B用户select USER_A用户table的权限,这个时候是在USER_A用户下赋值的

grant select on tableA to user_temp;

2.2创建同义词

create synonym USER_B.Tablename for USER_A.Tablename;

2.3测试同义词

使用USER_B用户oracle,有输出结果代表可以在USER_B用户下以USER_B的schema查看USER_A的表

select count(*) from USER_B.Tablename;

三、批量创建同义词

很多时候,当前环境下的表有几百张甚至几千张,很多人说可以select * from dba_tables where owner='UPCENTER' 把表名查出来,用notpad拼成命令,批量执行,这里是行不通的,因为每条命令的行尾都不一样(表名不同) 这时候可以先用notpad软件把USER_B用户select USER_A用户table的权限批量执行,然后再执行下面的命令,把输出结果执行以下即可:

select 'create synonym USER_B.'||table_name||' for upcenter.'||table_name||';' from dba_tables where owner='USER_A'

四、查看同义词和删除同义词

4.1查看用户下的同义词

SELECT * FROM DBA_SYNONYMS where OWNER = 'UPAPP';

4.2删除同义词

DROP SYNONYM SYSN_NAME;

oracle 批量修改同义词,Oracle批量创建同义词相关推荐

  1. 如何批量修改文件名?批量修改照片文件名和添加前缀

    通常我们使用手机或者相机拍摄了一堆照片拷贝到电脑之后,照片的命名通常都是随机混乱的,如果要规范文件命名,你是不是会去一个一个去修改文件名呢?其实完全不需要这么麻烦,今天电脑百事小编就来教大家一个批量快 ...

  2. 计算机怎么快速改图片名称,如何批量修改文件名?批量修改照片文件名和添加前缀方法...

    通常我们使用手机或者相机拍摄了一堆照片拷贝到电脑之后,照片的命名通常都是随机混乱的,如果要规范文件命名,你是不是会去一个一个去修改文件名呢?其实完全不需要这么麻烦,今天电脑百事小编就来教大家一个批量快 ...

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

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

  4. oracle mysql 同义词_Oracle数据库创建同义词(synonym)详细讲解

    1.1数据库创建同义词(synonym) Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没 ...

  5. oracle表修改语句,Oracle的常用修改表及字段的语句

    单行注释:-- 多行注释:/* */ Oracle中修改表结构 增加字段 ALTER TABLE table_name ADD column_name data_type; 删除字段 ALTET TA ...

  6. python改文件名_python批量修改文件名、批量修改xml文件的path和filename

    1. python批量修改文件名(控制文件名的起始编号) import os path = "E:/Project/label/fire/" # 目标路径 filename_lis ...

  7. python 批量修改文件名_Python 批量修改文件名

    当你从网络下载一季电视剧或一部电影时,文件名前边可能有很多前缀,比如说圣城家园,人人影视或者其他什么的. 在查看文件时往往只显示前面的一些不是那么必要的字符了,降低了查看文件名的效率,在文件夹里看起来 ...

  8. python怎样批量修改文件大小_python:批量修改文件名批量修改图片尺寸

    功能:批量修改图片尺寸 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用 ...

  9. python批量修改图片内容_python批量修改图片大小的方法

    本文实例为大家分享了python批量修改图片大小的具体代码,供大家参考,具体内容如下 引用的模块 from PIL import Image Image的使用 def resize_image(img ...

  10. ae批量修改字体_批量修改文字样式字体AE脚本CreativeDojo Dojo Text Updater V1.0

    批量修改文字样式字体AE脚本CreativeDojo Dojo Text Updater V1.0 Dojo Text Updater是一个由CreativeDojo开发的After Effects脚 ...

最新文章

  1. rsync文件同步的两种方式——ssh协议和守护进程(端口873)
  2. 高速缓存系统之redis c++使用实例
  3. ffmpeg avi 1080P解析 编译选项
  4. 详解ASP.NET页面的aspx扩展
  5. Python中__new__和__init__的区别与联系
  6. 有趣的css图形实现
  7. ES6规格之数组的空位
  8. 培养用户习惯才是软件的唯一出路!
  9. .NET框架图解之五:System.Reflection
  10. dism++封装系统使用教程_win7系统部署工具Dism的操作方法
  11. 在Ubuntu 18.04中安装ROS操作系统
  12. css canvas_混合canvas API和HTML / CSS模型
  13. 趁年轻,我们干点什么吧
  14. 微带线 带状线 过孔的时延对比
  15. ES6 语法之 Set 与 Map 数据结构
  16. 51单片机定时时间的计算
  17. [BJDCTF 2nd]假猪套天下第一
  18. Firefox火狐浏览器打开页面链接的方式的设置
  19. 互联网日报 | iPhone 12系列手机正式发布;盒马入局火锅市场;东风汽车A股IPO申请获受理...
  20. 解决labelimg闪退

热门文章

  1. php 单笔转账到支付宝账户,php之支付宝转账或发红包到指定账户(提现功能)
  2. SecureCRT 64位 破解版v8.1.4及安装
  3. 腾讯课堂视频回放下载(Edge浏览器+猫抓+夸克浏览器)
  4. 【公司邮箱怎么注册】Foxmail帐户邮箱数据保存在什么地方?如何备份一个帐户?
  5. 【Java教程】UDP实现群聊聊天室
  6. python 二项分布_Python模拟伯努利试验和二项分布代码实例
  7. Python编程基础的应用
  8. cad修改快捷键_CAD快捷键,提高绘图速度
  9. 九层之台,起于累土:码良组件开发
  10. web微信授权登录-代码篇