Oracle中的同义词synonym
一、同义词概念
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。
二、同义词分类
Oracle同义词有两种类型,分别是Oracle公用同义词与Oracle私有同义词。普通用户创建的同义词一般都是私有同义词,公有同义词一般由DBA创建,普通用户如果希望创建同义词,则需要CREATE PUBLIC SYNONYM这个系统权限。
1)Oracle公用同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
2)Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
三、同义词作用
1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2) 为用户简化sql语句。上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个Oracle同义词来简化sql开发。比如,如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1,建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,开发不就方便多了
3)为分布式数据库的远程对象提供位置透明性。
4)Oracle同义词在数据库链接中的作用
数据库链接是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。
Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle连接串’; 访问对象要通过 object名@数据库链名。同义词在数据库链中的作用就是提供位置透明性。
四、同义词权限管理
1、创建同义词synonym
作用:可以隐藏表原来的信息
分为:私有同义词 公共同义词
//给表t_user创建一个私有同义词
create synonym my_test
for t_user;
//给用户briup授权可以查询my_test
grant select
on my_test
to briup;
//收回用户briup查询my_test的权限
revoke select
on my_test
from briup;
//利用数据字典查看同义词synonyms
//用户创建的同义词有哪些
select synonym_name
from user_synonyms;
//用户有权利查询的同义词有哪些
select synonym_name
from all_synonyms;
//用户有权利查询的同义词有哪些是以字母D开头的
//注意:表中的数据都是大写存在
select synonym_name
from all_synonyms
where synonym_name like 'D%';
结果可以看到我们常用的dual
2.删除同义词synonym
drop synonym name;
例如:
删除私有同义词
drop synonym my_test;
删除公共同义词
drop public synonym your_test;
3.公共的同义词
因为普通用户没有创建public synonym的权限,所以我们需要用dba的身份登录到数据库中去创建。
sqlplus "/as sysdba"或者system用户登录
create public synonym your_test
for test.t_user;
注:test.t_user表示的是test用户下面的t_user表
//让所有人都有查询这个同义词的权限
grant select on your_test to public;
然后其他用户登录之后就可以通过这个公共的同义词来查询test用户下面的t_user表了
Oracle中的同义词synonym相关推荐
- Oracle中创建同义词
Oracle中创建同义词语句: 我们都知道,在oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库 ...
- 数据库中的同义词synonym
这篇文章讲的是数据库中的同义词synonym,如有错误或不当之处,还望各位大神批评指正. 什么是同义词 同义词相当于是对象的小名,作用是缩短对象的长度,便于书写与访问. 同义词的创建 假设有表s_st ...
- oracle vs. SQL 同义词synonym 别名 alias
oracle 同义词 synonym 为数据库对象建立同义词后,当dba对数据库对象(table,view,序列)做了一个简单改动之后,如名字或者结构改变,则不需要重新更改并编译应用.在数据库字典中有 ...
- oracle中private同义词和public同义词
项目中遇到,遂从网上搜索了下,觉得如下解释较为通俗易懂: 假设oracle有以下两个用户: admin , visitor 我们在admin下建立了 testtable 这个表,并且对visitor用 ...
- Oracle数据库之同义词(SYNONYM)使用
本教程用示例来说明在Oracle数据中如何创建和删除同义词(SYNONYM). 概念 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个 ...
- Oracle数据库之同义词(SYNONYM)使用(转)
最近在公司听到同义词,不是很懂,甚是尴尬,决定看了一看 从网上看了看资料 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个对象名字的限 ...
- oracle中的同义词
同义词是现有对象的一个别名,是为了简化SQL语句,亦或者是隐藏对象的名称和所有者,提供对象的公共访问等等. 1.同义词的类型 : 分为两大类 :私有同义词 synonym 只能在其模式内访问,不能与模 ...
- oracle中创建同义词(synonyms)表
一.同义词概念和作用. Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系. 同义词作用之一:多用户的数据库中,有时候访问其他用户的表必须通过use ...
- oracle中同义词的用法,Oracle中使用同义词介绍
一.背景 有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1.其中Auser2和Buser1建立了dblink.现希望通过登录Bus ...
最新文章
- 对Android GPS获取位置信息的新研究.
- MySql随笔part3 表操作
- SpringMVC请求流程
- 拿下字节offer,这些面试题命中率高达90%以上
- 从Centos7升级到Centos8的教程(图文详解)
- 第一:MySQL安装和配置(超详细)
- 典型重构3 (Try/Catch)
- web 流程图工具_要什么第三方流程图制作软件,微软的Visio 2016不香吗?
- mysql书籍知识点梳理3(数据与表)
- Unity 窗口界面的简单介绍
- JavaScript设计模式——观察者模式
- VMware虚拟机装系统出现Units specified dont exist
- 一场雨我们的见证了什么?
- oracle ko16mswin949,PRM DUL Oracle数据库恢复的最后一步
- ABB机器人画圆编程_ABB机器人使用rapid编程中问号的用法及画整圆指令
- Excel的照相机功能(转载+亲自实践)
- 利用convert【ImageMagick】把pdf批量转换为图片踩坑(gs报错和清晰度问题)
- Java程序界面设计
- 【IoT】创业:如何设计强有力的价值主张?
- Android 展讯-关闭IP拨号功能
热门文章
- Maven工具栏消失的解决办法
- 转载 jacob Dispatch not hooked to windows memory 异常处理
- 安卓车机root改流浪地球_随时代替安卓!华为鸿蒙系统正式发布,你手机里早就有了.......
- eclipse theia_如何在Ubuntu 18.04上设置Eclipse Theia Cloud IDE平台
- 18.我在乐字节学习的第六天(Java)
- 防火墙,如何理解防火墙,他与堡垒机的差别
- 便民,合格证自助打印一体机投用,只花一分钟即可实现领取实体证
- v11.03 鸿蒙内核源码分析(内存分配) | 内存有哪些分配方式 | 百篇博客分析HarmonyOS源码
- 独家 | Google 资深软件工程师 LeetCode 刷题笔记首次公开
- 最长公共子序列【省选模拟赛】