度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 998|回复: 5
打印 上一主题 下一主题

[分享] 同义词

[复制链接]

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
跳转到指定楼层
楼主
发表于 2020-4-27 14:30:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
概念
同义词是数据库对象的一个别名,常用于简化对象访问及提高对象访问的安全性。在使用同义词时,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、为分布式数据库的远程对象提供位置透明性。在分布式数据库环境中,为了识别一个数据库对象,必须规定主机名、服务器名、对象的拥有者和对象名,这无疑增加了访问者的访问难度。为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以为数据库对象创建同义词。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
沙发
 楼主| 发表于 2020-4-27 14:31:38 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
发表于 2020-4-27 17:04:49 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
地板
 楼主| 发表于 2020-4-30 17:37:00 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
5#
发表于 2020-4-30 17:46:42 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
6#
发表于 2020-5-1 17:13:45 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-1 14:22 , Processed in 0.116846 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表