在A用户下,想访问B用户下的表,一遍需要用 “用户名.表名 ”的格式进行访问。如果想不加用户名,直接访问,需要建同义词。
同义词语法如下:
CREATE [PUBLIC] SYNONYM synonym_name FOR object;
DROP[PUBLIC] SYNONYM synonym_name;
1、中括号里面的内容是可选内容,如果加上PUBLIC表示公用同义词,不加的话就是私有同义词;
公用同义词:能被所有的数据库用户访问的同义词,毫无疑问只有具有DBA权限的方案用户才可以设置;
私有同义词:只能由创建的用户访问的同义词;
2、synonym_name表示同义词的名字
3、object表示要创建同义词的对象
比如:
1、没有创建同义词,在A用户下,访问B用户的表,语句如下:
select * from B.inf_crm_znf_test;
2、在A用户下,执行如下语句,创建同义词
CREATE SYNONYM inf_crm_znf_test FOR B.Inf_Crm_Znf_Test;
3、在A用户下,访问B用户的表,就可以直接查询,不需要加用户名了。语句如下:
select * from inf_crm_znf_test;
4、删除同义词。在A用户下,执行如下语句:
drop synonym inf_crm_znf_test;
5、删除同义词后,在A库中直接查询 inf_crm_znf_test表,将报错。