Oracle 中的 同义词(synonym)

(一)同义词的概念

同义词是数据库中表、视图、序列、过程、函数、程序包、物化视图、Java类模式对象、用户定义对象类型,或另一个同义词的别名。与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义。

在开发数据库时,应尽量避免直接引用表、视图或其他数据库对象,否则,当表的结构发生了改变,就会影响应用程序的使用,这个时候需要重新编译程序,如果为数据库对象创建了同义词,就可以在程序中使用同义词,这样表的结构发生变化,也不会影响到应用程序。此外,运用同义词还可以隐藏数据库对象名称以及对象所有者的信息,还可以简化对数据库对象的访问。

(二)同义词分类

同义词分为私有同义词和公有同义词,私有同义词只能被创建它的用户拥有,该用户可以控制其他用户对其同义词的使用权。公有同义词被用户组PUBLIC所拥有,数据库所有用户都可以使用公有同义词。

(三)同义词相关权限

(1)系统权限:

SYSTEM PRIVILEGEMARK
CREATE SYNONYM在当前Schema中创建私有同义词。同时可以修改、删除同义词
CREATE PUBLIC SYNONYM在当前 Schema中创建公有同义词
CREATE ANY SYNONYM在任意Schema中创建私有同义词
DROP ANY SYNONYM删除任意Schema中的私有同义词
DROP PUBLIC SYNONYM删除当前Schema中的公有同义词

(2)对象权限

无(不确定)

(四)同义词的使用

(1)创建同义词

1

CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object [ @ dblink ];

(2)使用同义词

用户可以使用自己Schema中的同义词,也可以使用PUBLIC同义词,还可以使用其他Schema中的同义词,但是用户还必须具有与同义词对应的数据库对象的操作权限。

(3)删除同义词

1

DROP [PUBLIC] SYNONYM synonym_name

*用户可以删除自己Schema下的私有同义词,要删除公有同义词,需具有DROP PUBLIC SYNONYM权限,要删除其它Schema中的同义词,需要具有DROP ANY SYNONYM权限。

(5)与同义词相关的数据字典

VIEWMARK
DBA_SYNONYMS查看数据库全部同义词
ALL_SYNONYMS查看当前用户可以看到的全部同义词
USER_SYNONYMS查看当前用户拥有的同义词

分类: Oracle

转载于:https://my.oschina.net/u/553266/blog/1845286

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值