一、同义词概念
Oracle数据库同义词(synonyms)就是一种映射关系,又称为别名,同视图一样,在数据库中不占用内存空间,只有在数据字典中保存了同义词的定义,经常用于简化对象访问和提高对象访问的安全性。
二、同义词分类
Oracle数据库中的同义词分为两类:公有同义词和私有同义词。
1)公用Oracle同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
2)私有Oracle同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
三、同义词的作用
1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2) 为用户简化sql语句。上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个Oracle同义词来简化sql开发。
3)为分布式数据库的远程对象提供位置透明性。
四、同义词的操作
1.创建
1)创建公有同义词
create or replace public synonym 同义词 for 表名
2)创建私有同义词
create or replace synonym 同义词 for 表拥有者.表名
2.删除
drop [public] synonym 同义词
3.查看所有同义词
select * from synonyms;
阅读(8917) | 评论(0) | 转发(0) |