(一)同义词的概念html
同义词是数据库中表、视图、序列、过程、函数、程序包、物化视图、Java类模式对象、用户定义对象类型,或另外一个同义词的别名。与视图类似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义。数据库
在开发数据库时,应尽可能避免直接引用表、视图或其余数据库对象,不然,当表的结构发生了改变,就会影响应用程序的使用,这个时候须要从新编译程序,若是为数据库对象建立了同义词,就能够在程序中使用同义词,这样表的结构发生变化,也不会影响到应用程序。此外,运用同义词还能够隐藏数据库对象名称以及对象全部者的信息,还能够简化对数据库对象的访问。函数
(二)同义词分类spa
同义词分为私有同义词和公有同义词,私有同义词只能被建立它的用户拥有,该用户能够控制其余用户对其同义词的使用权。公有同义词被用户组PUBLIC所拥有,数据库全部用户均可以使用公有同义词。code
(三)同义词相关权限htm
(1)系统权限:对象
SYSTEM PRIVILEGE | MARK |
CREATE SYNONYM | 在当前Schema中建立私有同义词。同时能够修改、删除同义词 |
CREATE PUBLIC SYNONYM | 在当前 Schema中建立公有同义词 |
CREATE ANY SYNONYM | 在任意Schema中建立私有同义词 |
DROP ANY SYNONYM | 删除任意Schema中的私有同义词 |
DROP PUBLIC SYNONYM | 删除当前Schema中的公有同义词 |
(2)对象权限blog
无(不肯定)ci
(四)同义词的使用开发
(1)建立同义词
1 |
CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object [ @ dblink ]; |
(2)使用同义词
用户可使用本身Schema中的同义词,也可使用PUBLIC同义词,还可使用其余Schema中的同义词,可是用户还必须具备与同义词对应的数据库对象的操做权限。
(3)删除同义词
1 |
|
*用户能够删除本身Schema下的私有同义词,要删除公有同义词,需具备DROP PUBLIC SYNONYM权限,要删除其它Schema中的同义词,须要具备DROP ANY SYNONYM权限。
(5)与同义词相关的数据字典
VIEW | MARK |
DBA_SYNONYMS | 查看数据库所有同义词 |
ALL_SYNONYMS | 查看当前用户能够看到的所有同义词 |
USER_SYNONYMS | 查看当前用户拥有的同义词 |
分类: Oracle