创建同义词:
--普通用法
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.] 同义词名称 FOR [schema.] object [@dblink];
--创建专有(私有)同义词
CREATE SYNONYM SYSN_TEST FOR TEST;
--创建公共同义词
CREATE PUBLIC SYNONYM PUBLIC_SYSN_TEST FOR TEST;
注意:
1、创建同义词之前需要先给用户/角色赋值相关的权限
例如:用管理员SYS账号给TEST账号赋予创建同义词CREATE SYNONYM的权限;
GRANT CREATE SYNONYM TO TEST;
2、在同一个数据库的不同用户下创建同义词(要在UAERA用户下创建UAERB用户下TABLEB表的同义词)
首先我们需要给userA用户赋予创建同义词的权限:
GRANT CREATE SYNONYM TO UAERA;
然后,我们还需要给USERA用户赋予select TABLEA的权限,该权限是在USERB用户下赋值的:
GRANT SELECT ON TABLEB TO USERA;
最后,我们就可以在USERA用户下创建同义词:
CREATE OR REPLACE SYNONYM SYNO_TABLEB FOR USERB.TABLEB;
3、如何创建一个远程数据库上的某张表的同义词?
首先创建一个database link(数据库连接)来扩展访问,然后给当前用户赋予创建同义词的权限,最后创建同义词: