同义词(synonym)是数据库对象,相当于给表起一个别名。
通过创建同义词可以简化对象的访问,使用同义词可以:
1)更方便的引用其他用户拥有的表
2)缩短冗长的对象名
例子:
SQL> select object_name, object_type, owner from dba_objects where object_name='DUAL'; OBJECT_NAME OBJECT_TYPE OWNER ------------- ------------- ------------- DUAL TABLE SYS DUAL SYNONYM PUBLIC
从例子中看到SYS用户有DUAL表,为了让其它用户能引用DUAL表,建立了一个公共的同义词。
1、创建同义词
CREATE [PUBLIC] SYNONYM synonym_name FOR object_name;
2、删除同义词
DROP SYNONYM synonym_name;
3、查看所有同义词
select * from dba_synonyms;
4、权限
CREATE SYNONYM权限:创建自己私有同义词
CREATE ANY SYNONYM权限:创建其它用户的私有同义词
CREATE PUBLIC SYNONYM权限:创建自己公有同义词
5、授权其它用户访问公共同义词
公共同义词并不是所有的用户都可以访问它,必须被授权后才能访问。私有同义词只有自己用户能访问。
在hr用户下建立公共同义词:
create public synonym hr_test for test_t;
hr用户下执行授权liu用户:
grant select hr_test to liu;
同样如果授予insert/update/delete权限,也可以对同义词做增删改操作。
参考资料:
http://blog.csdn.net/indexman/article/details/37507197