欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于Oracle数据库同义词的讲解

程序员文章站 2023-12-04 15:06:46
一、定义 同义词顾名思义,是数据库方案对象的一个别名。这里的数据库方案对象指表、视图、序列、存储过程、包等。 二、同义词的好处 1、不占内存空间,节省大量的数据库空间 2、...

一、定义

同义词顾名思义,是数据库方案对象的一个别名。这里的数据库方案对象指表、视图、序列、存储过程、包等。

二、同义词的好处

1、不占内存空间,节省大量的数据库空间

2、简化了数据库对象的访问

3、提高了数据库对象访问的安全性

4、扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接

三、创建同义词语法

create public synonym table_a for  user.table_a;

四、同义词的删除语法

因为同义词也是对象 ,删除语法统表一样

drop public synonym table_a;

五、扩展

如果要访问不同数据库下或者不同用户下的表table_a,当然也可以使用同义词,但需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:

create synonym table_a for table_a @DB_Link;

六、实例演示

1、同库不同用户演示

如图所示 在ctdev用户下有 表employees

关于Oracle数据库同义词的讲解

但是在ctcheck用户没有这张表,在ctcheck用户下如图不能访问表employees;

关于Oracle数据库同义词的讲解

创建同义词

create public synonym employees for ctdev.employees;

创建好后就可以在ctcheck用户下访问ctdev用户的表employees

关于Oracle数据库同义词的讲解

2、跨库同义词演示

在10.248.100.81库下用户cwuser中并不能访问employees ,如下图所示。

关于Oracle数据库同义词的讲解

已知10.248.100.81库下用户cwuser用户下已有访问 库10.1.2.1用户ctdev的dblink名称为to_ctdev。如下图所示

关于Oracle数据库同义词的讲解

在cwuser用户下创建访问ctdev下employees 表的同义词

create synonym employees for employees@TO_CTDEV

即可在cwuser下访问ctdev下的表employees ,如下图所示

关于Oracle数据库同义词的讲解