度量快速开发平台-专业、快速的软件定制快开平台
标题: 同义词 [打印本页]
作者: fteair 时间: 2020-4-27 14:30
标题: 同义词
概念
同义词是数据库对象的一个别名,常用于简化对象访问及提高对象访问的安全性。在使用同义词时,Oracle 数据库自动将它翻译成对应模式对象的名字。与视图类似,同义词并不占用实际存储空间,只在数据字典中保存了同义词的定义。同义词可以指向的对象有表、视图、物化视图、序列、函数、存储过程、包、同义词等。Oracle 同义词有公用同义词和专用同义词两种。普通用户如果希望创建同义词,还需要有 CREATE PUBLIC SYNONYM 这个系统权限。
公用同义词:由一个特殊的用户组 PUBLIC 所拥有,顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
专用同义词:由创建它的用户专用,当然,这个同义词的创建者,也可以通过授权来让别的用户访问自己的专用同义词。
语法
创建同义词:
CREATE [PUBLIC] SYNONYM [SCHEMA.]synonym_name FOR [SCHEMA.]object_name[@dblink];说明:加PUBLIC表示公用,不能同时指定PUBLIC和synonym_name的SCHEMA,@dblink表示远程数据库连接。
示例:
CREATE PUBLIC SYNONYM staff FOR demo.t_staff;删除同义词:
DROP [PUBLIC] SYNONYM [SCHEMA.]synonym_name; -- 也不能同时指定`PUBLIC`和`synonym_name`的`SCHEMA`示例:
DROP PUBLIC SYNONYM staff;用途
1、多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过schema.object_name的形式,采用了 Oracle 同义词之后就可以屏蔽掉 schema,当然这里要注意的是:PUBLIC 同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2、为用户简化 SQ了语句,屏蔽 schema 也是一种简化 SQL 的体现。同时,如果自己建的表的名字很长,也可以为这个表创建一个 Oracle 同义词来简化 SQL 开发。
3、为分布式数据库的远程对象提供位置透明性。在分布式数据库环境中,为了识别一个数据库对象,必须规定主机名、服务器名、对象的拥有者和对象名,这无疑增加了访问者的访问难度。为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以为数据库对象创建同义词。
作者: fteair 时间: 2020-4-27 14:31
作者: 张兴康 时间: 2020-4-27 17:04
作者: fteair 时间: 2020-4-30 17:37
作者: caixuqad 时间: 2020-4-30 17:46
作者: 张兴康 时间: 2020-5-1 17:13
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) |
Powered by Discuz! X3.2 |