Oracle同义词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle同义词相关的知识,希望对你有一定的参考价值。

1.同义词介绍
同义词在对象简化与数据链接这块应用场景比较多,有了同义词非自主对象就可以不用带上对象的schema来简化书写。
create synonym table_name for [email protected]_Link,这里可以在有防火墙问题的前提下,在ABC三库下,通过建立同义词,达到一定操作。(A不能访问C,A能访问B,B能访问C)
同义词跟视图的功能类似,就是一种映射关系,都并不占用实际存储空间,只有在数据字典中保存了同义词的定义。
在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。

2 同义词分类

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

1)Oracle公用同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
2)Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
----公共同义词和用户的schema无关,但是公共的意思并不是所有的用户都可以访问它,必须被授权后才能进行

CREATE SYNONYM、CREATE ANY SYNONYM、CREATE PUBLIC SYNONYM
CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同义词名称 FOR [ schema.] object [ @dblink ];
存在同名对象和公共同义词时,数据库优先选择对象作为目标,存在同名私有同义词和公共同义词时,数据库优先选择私有同义词作为目标

以上是关于Oracle同义词的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查看同义词

oracle 中怎么创建同义词?

oracle 创建所有表的同义词

Oracle 基础——同义词

oracle同义词

Oracle中的Dblink和同义词有啥区别吗