mysql实现oracle的同义词_ORACLE同义词总结(上)

同义词的概念

Oracle的同义词字面意思是别名,类似于视图的功能,即一种映射关系。可以节省大量的数据库空间,对于不同的用户来说,对同一个表的操作没有太大的区别;它扩展了数据库的使用范围,可以实现不同数据库用户之间的无缝交互。当使用同义词时,Oracle数据库将它们翻译成相应模式对象的名称。在Oracle数据库的大多数数据库对象中,如表、视图、物化视图、序列、函数、存储过程、包、同义词等。

同义词分类

甲骨文同义词有两种类型,分别是甲骨文公共同义词和甲骨文私有同义词。

1.Oracle公用同义词:由特殊用户组Public拥有。顾名思义,数据库中的所有用户都可以使用公共同义词。

2.Oracle私有同义词:它对应于公共同义词,由创建它的用户拥有。

同义功能。

1在多用户协同开发中,可以屏蔽对象及其持有者的名称。如果没有同义词,在操作其他用户的表时,必须在使用Oracle同义词后隐藏用户名。

2.为用户简化sql语句。上面这个其实是简化sql的一个体现。同时,如果您自己的表的名称非常长,您可以为此表创建一个Oracle同义词,以简化sql开发。

3.为分布式数据库中的远程对象提供位置透明性。

4.同义词在数据库链接中的作用。

数据库链接是描述从一个数据库到另一个数据库的路径的命名对象,通过它可以实现不同数据库之间的通信。

同义词权限管理

与同义词相关的权限包括CREATESYNONYM、CREATEANYONYM和CREATEPUBLICSYNONYM。

用户在自己的模式下创建私有同义词,并且该用户必须拥有CREATESYNONYM权限,否则无法创建私有同义词。

如下所示,用户DM缺乏CREATESYNONYM权限,创建同义词时会报告ORA-01031错误。

mysql实现oracle的同义词_ORACLE同义词总结(上)_第1张图片

授予DM帐户使用sys帐户创建SYNNYM的权限。

mysql实现oracle的同义词_ORACLE同义词总结(上)_第2张图片

然后创建一个私有同义词。

2ff83a4382816a3fc68fafc09493f103.png

2.如果需要在其他模式下创建同义词,您必须有权限创建同义词。

请看下面的例子,用户DM想在SCOTT模式下创建一个私有同义词。

mysql实现oracle的同义词_ORACLE同义词总结(上)_第3张图片

使用sys帐户授予DM帐户CREATEANYSYNONYM权限。

mysql实现oracle的同义词_ORACLE同义词总结(上)_第4张图片

3.创建公共同义词需要CREATEPUBLICSYNONYM系统权限。

创建同义词

常见用法如下图所示:

mysql实现oracle的同义词_ORACLE同义词总结(上)_第5张图片

如果要为远程数据库上的表创建同义词,需要先创建一个DatabaseLink(数据库连接)来扩展访问,然后再使用如下语句创建数据库同义词:createsynonymtable_namefortable_name@DB_Link;

公共同义词与用户的模式无关,但是公共意味着不是所有用户都可以访问它,并且在继续之前必须得到授权。私有同义词是模式的对象。

你可能感兴趣的:(mysql实现oracle的同义词_ORACLE同义词总结(上))