Oracle中创建,删除同义词 Synonym

对另一个数据对象而言同义词是一个别名。public同义词是针对所有用户的,相对而言private同义词则只针对对象拥有者或被授予权限的账户。
   在本地数据库中同义词可以表示表、视图、序列、程序、函数或包等数据对象,也可以通过链接表示另一个数据库的对象。

  创建同义词语法如下:

1 CREATE [ PUBLIC ] SYNONYM synonym_name FOR [ schema .] object[@db_link];


  
  例:

1 CREATE PUBLIC SYNONYM policies FOR poladm.policies@prod;
2  
3 CREATE SYNONYM plan_table FOR system.plan_table;



问题描述:
有两个oralce实例 SID分别为 A B
A中a用户下含有表objects
B中有b用户
使在B中用b用户登录后执行
select * from objects
能显示出A中a.objects的全部内容

问题解答:
用b用户登录到B中,执行:

1 create public synonym objects for a.objects@A


此时执行select * from objects 就能显示出a.objects的全部内容

需要注意的一点:
B中不能含有table b.objects否则语句可以执行,但是执行select操作时显示的仍然为b.objects的内容,需要先把.objects删除掉,重新建立synonym即可。

删除同义词

使用DROP SYNONYM语句删除不再需要的同义词 要想删除私有同义词 就省略 PUBLIC 关键字;

要想删除公共同义词 就要包括PUBLIC 关键字

1 DROP SYNONYM emp;  删除名为emp 的私有同义词
2  
3 DROP PUBLIC SYNONYM public_emp;  删除名为public_emp的公有同义词


 原文地址 http://hi.baidu.com/mcj0127/blog/item/352af451bdd8801f367abe9e.html

阅读更多
个人分类: oracle
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭