您的位置:首页 > 数据库 > Oracle

ORACLE同义词详解

2016-10-28 00:00 477 查看


1. 同义词概述

同义词从字面上理解就是别名的意思,和视图的功能类似。就是一种映射关系。同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。

知识扩展:数据库对象

表、视图、序列、过程、函数、程序包,甚至其它同义词都可以创建同义词。

同义词分为:私有同义词、公有同义词。

私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身的模式创建私有同义词,

用户必须拥有Create Synonym系统权限。要在其它用户模式创建私有同义词,用户必须拥有Create Any Synonym系统权限。

公有同义词可被所有的数据库用户访问。要创建公有同义词,用户必须拥有Create Public Synonym系统权限。

2. 同义词创建

创建同义词语法:

Create [PUBLIC] SYNONYM synonym_name FOR [schema.]object_name;
示例1:

create public synonym emp_syn from scott.emp;
此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词。

示例2:

create synonym table_name for table_name@DB_Link;
当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2

3. 删除同义词

删除同义词语法是:

drop [public] synonym table_name;
4. 查看所有同义词:

select * from dba_synonyms
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  博为峰 Oracle 同义词