同义词
同义词 synonym
简介
-
同义词就是表、索引、视图等模式对象的一个别名。
-
优点:
-
通过模式同义词的创建,可以隐藏对象的实际名称和所有者信息,或者隐藏分布式数据库中远程对象的设置信息,由此为对象提供一定的安全性保证。
-
与视图、序列一样,同义词值在数据库的数据字典中保存期定义的描述,而不占据表空间。
-
开发数据库时,尽量避免直接引用表。视图或者其他数据库对象的名称。而是改用其同义词。好处:避免在管理员对数据库对象作出修改和变动后,必须重新编译应用程序。
-
简化sql语句
-
为分布式数据库的远程对象提供位置透明性
-
Oracle同义词在数据库链接中的作用
注意:
数据库链接是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。
Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle连接串’; |
分类
public 和 私有(默认)
create public synonym for 模式对象名
create synonym for 模式对象名
注意:
- public synonym 需要create public synonym 系统权限。
- 创建私有 synonym :
- 在当前用户下创建,就需要权限 create synonym
- 在其他模式中创建私有synonym 也需要create any synonym权限。
- 私有synonym只有在当前用户可以使用,其他用户使用时必须携带 “模式名.”
- 当基础对象的名称和位置被修改后,用户需要重新为他建立同义词。
- 删除 public synonym 需要权限 drop public synonym
- 删除 私有 synonym :
- 用户可以删除自己的 synonym
- 删除其他模式下的私有synonym,需要 drop any synonym系统权限
- 删除共有的synonym : drop public synonym
- 删除同义词后不对其基础对象的数据影响
- 公共同义词是和用户的schema无关的,但是公共的意思并不是所有的用户都可以访问它,必须被授权后才能进行;私有同义词是schema的对象
- 当同义词的原对象被重新建立时,同义词需要重新编译
ALTER SYNONYM T COMPILE;
查看同义词
利用数据字典视图user_synonyms、all_synonyms查看同义词信息。
desc user_synonyms
desc all_synonyms
名称 空值? 类型 |
注: 在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。
拓展
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 noticase!
评论
ValineLivere