参考资料:https://blog.csdn.net/yu102655/article/details/52089170

在正式使用Oracle同义词之前,需要普及一个知识点:Oracle数据库中对权限的管理是通过方案来进行的,一个方案通常就是一个用户名。我们拿Oracle的用户:Scott和Hr用户举例子,当用户Scott进入Oracle后,其创建的数据库对象可以称为Scott方案对象,为了让Hr方案的用户可以访问,除了要给Hr用户分配必要权限比如检索权限之外,Hr用户访问Scott用户的对象必须使用"Scott.数据库对象名"这样的格式,也就是说每次访问都要用上面这种格式,那么有没有一种更友好的访问方式呢?答案肯定是有的,Oracle的同义词提供了该功能,同时记住:创建同义词的目的是为了简化对目标对象的访问,特别是对于分布式数据库查询中,可以简化对查询语句的编写,且同义词不占用实际存储空间,如同视图一样,只在数据字典中保存了同义词的定义。

Oracle中,同义词可以分为如下两类:

1、公用同义词:能被所有的数据库用户访问的同义词,毫无疑问只有具有DBA权限的方案用户才可以设置;

2、私有同义词:只能由创建的用户访问的同义词;

概念介绍完了,老规矩看同义词语法:

CREATE [PUBLIC] SYNONYM synonym FOR object;

针对上述语法:有以下几点需要说明:

1、一般来说,Oracle里,中括号里面的内容是可选内容,在这里,如果加上PUBLIC表示公用同义词,不加的话就是私有同义词;

2、synonym 这里表示同义词的名字

3、object表示要创建同义词的对象

比如要为Scott方案用户分配检索Hr方案用户的jobs表的权限的话,需要这么操作:

CREATE SYNONYM hrjobs FOR HR.jobs;

创建同义词之后,Scott如果想要操作这个表的话,不用再像以前那样SELECT * FROM  HR.jobs这样了,只需要像SELECT * FROM hrjobs;这样就可以了,就好像操作自己方案下的表那样方便,其它DML操作类似,在此不做赘述,说完基础知识,再来谈谈同义词权限的问题,都知道在Oracle中离开了权限,任何一个方案用户都是寸操作难行的,那么为了创建同义词,我们需要了解哪些权限呢?

1、比如用户A想要创建对用户B的test表的权限,那么首先用户A要具有对用户B的test表的CURD权限;

2、用户在自己的模式下创建私有同义词,比如具有CREATE SYNONYM权限,否则不能创建私有同义词;

3、创建公用同义词,需要具有CREATE PUBLIC SYNONYM权限;

4、如果想给其它方案用户创建私有同义词,那么需要具有CREATE ANY SYNONYM权限;

最后需要说明的是,如果存在私有同义词和共有同义词重名的状况,那么一般来说,Oracle采取就近原则,即采用私用同义词来作为目标!对于开发人员来说,需要掌握的同义词知识点大体如上了,如需要更细致了解,建议参照Oracle官方文档

【转载】Oracle之同义词(SYNONYM)相关推荐

  1. 【DB.Oracle】同义词——SYNONYM

    Oracle中同义词是任何表.视图.物化视图.序列.存储过程.函数.包.类型.JAVA类对象.用户定义类型,或是其他的同义词的别名.由于其只是一个别名,所以除了在数据字典中的定义外不占任何空间. 同义 ...

  2. Oracle中同义词synonym的作用

    公司给了一个Oracle数据库连接的配置,当我使用oracle SQL Developer连接的时候.点击表没有数据,如下图所示 然而却没有表的数据,当时就奇怪了. 当点击同义词时,就出现了表. 然后 ...

  3. Oracle中同义词(synonym)的用法

    1.创建同义词create synonym 自己准备定义的表名称 for scott.emp; 如 create synonym heihei for scott.emp; 这样就可以拿heihei ...

  4. Oracle 同义词(synonym) 简介

    从sql server or sybase 转到oracle既程序猿可能对同义词这个概念有点陌生. 同义词不难理解, 只不过是oracle的对象起个别名罢了. 下面介绍下同义词synonym的用法. ...

  5. oracle vs. SQL 同义词synonym 别名 alias

    oracle 同义词 synonym 为数据库对象建立同义词后,当dba对数据库对象(table,view,序列)做了一个简单改动之后,如名字或者结构改变,则不需要重新更改并编译应用.在数据库字典中有 ...

  6. Oracle数据库之同义词(SYNONYM)使用

    本教程用示例来说明在Oracle数据中如何创建和删除同义词(SYNONYM). 概念 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个 ...

  7. Oracle中的同义词synonym

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

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

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

  9. Oracle数据库:创建、修改、删除、使用同义词synonym和索引index

    Oracle数据库:创建.修改.删除.使用同义词synonym和索引index 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得 ...

  10. Oracle 同义词(Synonym)

    一.简述 Oracle 同义词(Synonym) 是数据库对象的一个别名,Oracle 可以为表.视图.序列.过程.函数.程序包等指定一个别名.同义词有两种类型: 私有同义词:拥有 CREATE SY ...

最新文章

  1. 原生ajax表单交互
  2. 阿里云rds linux平台使用wget 工具下载备份与日志文件
  3. linux系统的日常管理2
  4. PTA实验作业-01
  5. 轻松搭建基于 SpringBoot Vue 的 Web 商城应用
  6. 【ARM】一步一步移植Linux Kernel 2.6.13到板子
  7. 最短路径问题的算法实现【转载】
  8. Java多线程之优先级setPriority
  9. 【Touchinput 】创建一个输入法(19)
  10. nmd测试软件中文,阿迪达斯Boost传说中的踩屎感,NMD跑步真假对比测评!
  11. 软件工程导论 00章数据流图与数据字典
  12. java工程师要懂哪些东西_Java工程师都需要懂哪些知识?学实用知识得高薪
  13. 关于ORM的一些外文资料
  14. Ubuntu下反编译apk源码查看
  15. Python、Lua和Ruby——脚本大P.K.
  16. Antlr4 简单入门
  17. JSch连接SFTP Exception:Algorithm negotiation fail问题解决
  18. 1u服务器支持的显卡体积,1u服务器加独立显卡(1u服务器装显卡)
  19. HDU1847:Good Luck in CET-4 Everybody!(SG博弈)
  20. 2021 谷歌游戏出海峰会精彩内容回放 | 跨界破圈 赢在未来

热门文章

  1. 空间直角坐标系(xyz)与大地坐标系(经纬高)的转换
  2. 解决: error: Class declaration lacks Q_OBJECT macro. 的报错
  3. 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
  4. 快捷方式 java 桌面_创建桌面快捷方式
  5. 微信小程序的登录流程
  6. 十三、直接、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址
  7. C#资源文件的使用实例
  8. 解决笔记本拔掉电源线和插上电源线鸣笛问题
  9. Splitter和Joiner使用手册
  10. 空压机物联网解决方案