对另一个数据对象而言同义词是一个别名。public同义词是针对所有用户的,相对而言private同义词则只针对对象拥有者或被授予权限的账户。在本地数据库中同义词可以表示表、视图、序列、程序、函数或包等数据对象,也可以通过链接表示另一个数据库的对象。
创建同义词语法如下: CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] object[@db_link]; 例: CREATE PUBLIC SYNONYM policies FOR poladm.policies@prod; 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中,执行: create public synonym objects for a.objects@A 此时执行select * from objects 就能显示出a.objects的全部内容 需要注意的一点: B中不能含有table b.objects否则语句可以执行,但是执行select操作时显示的仍然为b.objects的内容,需要先把.objects删除掉,重新建立synonym即可。 |
|