【转载】Oracle之同义词(SYNONYM)
参考资料: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)相关推荐
- 【DB.Oracle】同义词——SYNONYM
Oracle中同义词是任何表.视图.物化视图.序列.存储过程.函数.包.类型.JAVA类对象.用户定义类型,或是其他的同义词的别名.由于其只是一个别名,所以除了在数据字典中的定义外不占任何空间. 同义 ...
- Oracle中同义词synonym的作用
公司给了一个Oracle数据库连接的配置,当我使用oracle SQL Developer连接的时候.点击表没有数据,如下图所示 然而却没有表的数据,当时就奇怪了. 当点击同义词时,就出现了表. 然后 ...
- Oracle中同义词(synonym)的用法
1.创建同义词create synonym 自己准备定义的表名称 for scott.emp; 如 create synonym heihei for scott.emp; 这样就可以拿heihei ...
- Oracle 同义词(synonym) 简介
从sql server or sybase 转到oracle既程序猿可能对同义词这个概念有点陌生. 同义词不难理解, 只不过是oracle的对象起个别名罢了. 下面介绍下同义词synonym的用法. ...
- oracle vs. SQL 同义词synonym 别名 alias
oracle 同义词 synonym 为数据库对象建立同义词后,当dba对数据库对象(table,view,序列)做了一个简单改动之后,如名字或者结构改变,则不需要重新更改并编译应用.在数据库字典中有 ...
- Oracle数据库之同义词(SYNONYM)使用
本教程用示例来说明在Oracle数据中如何创建和删除同义词(SYNONYM). 概念 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个 ...
- Oracle中的同义词synonym
一.同义词概念 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩 ...
- oracle mysql 同义词_Oracle数据库创建同义词(synonym)详细讲解
1.1数据库创建同义词(synonym) Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没 ...
- Oracle数据库:创建、修改、删除、使用同义词synonym和索引index
Oracle数据库:创建.修改.删除.使用同义词synonym和索引index 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得 ...
- Oracle 同义词(Synonym)
一.简述 Oracle 同义词(Synonym) 是数据库对象的一个别名,Oracle 可以为表.视图.序列.过程.函数.程序包等指定一个别名.同义词有两种类型: 私有同义词:拥有 CREATE SY ...
最新文章
- 原生ajax表单交互
- 阿里云rds linux平台使用wget 工具下载备份与日志文件
- linux系统的日常管理2
- PTA实验作业-01
- 轻松搭建基于 SpringBoot Vue 的 Web 商城应用
- 【ARM】一步一步移植Linux Kernel 2.6.13到板子
- 最短路径问题的算法实现【转载】
- Java多线程之优先级setPriority
- 【Touchinput 】创建一个输入法(19)
- nmd测试软件中文,阿迪达斯Boost传说中的踩屎感,NMD跑步真假对比测评!
- 软件工程导论 00章数据流图与数据字典
- java工程师要懂哪些东西_Java工程师都需要懂哪些知识?学实用知识得高薪
- 关于ORM的一些外文资料
- Ubuntu下反编译apk源码查看
- Python、Lua和Ruby——脚本大P.K.
- Antlr4 简单入门
- JSch连接SFTP Exception:Algorithm negotiation fail问题解决
- 1u服务器支持的显卡体积,1u服务器加独立显卡(1u服务器装显卡)
- HDU1847:Good Luck in CET-4 Everybody!(SG博弈)
- 2021 谷歌游戏出海峰会精彩内容回放 | 跨界破圈 赢在未来