1、同义词概述
同义词从字面上理解就是别名的意思,和视图的功能类似。就是一种映射关系。同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。
知识扩展:数据库对象
表、视图、序列、过程、函数、程序包,甚至其它同义词都可以创建同义词。
同义词分为:私有同义词、公有同义词。
私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身的模式创建私有同义词,
用户必须拥有CreateSynonym系统权限。要在其它用户模式创建私有同义词,用户必须拥有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 |