1.同义词介绍
同义词在对象简化与数据链接这块应用场景比较多,有了同义词非自主对象就可以不用带上对象的schema来简化书写。
create synonym table_name for table_name@DB_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 ];
存在同名对象和公共同义词时,数据库优先选择对象作为目标,存在同名私有同义词和公共同义词时,数据库优先选择私有同义词作为目标
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。