Oracle 同义词 synonym

同义词:

      对另一个数据对象而言同义词是一个别名,同义词对其目标对象进行依赖,如果目标对象被更改或删除,则该同义词将变为无效。

      同义词不能代替数据库对象的特权,即先用对模式的对象有查询、执行、删除等权限。

权限:

      要在自己的模式中创建私有同义词,您必须具有CREATE SYNONYM系统特权。

      要在另一个用户的模式中创建私有同义词,您必须具有CREATE ANY SYNONYM系统特权。

      要创建PUBLIC同义词,您必须具有CREATE PUBLIC SYNONYM系统特权。

表的同义词

     CREATE   SYNONYM   offices    FOR hr.locations;

存储过程的同义词

      create or replace synonym SP_INSERTXY for ys_adm.SP_INSERTXY;

      grant execute on SP_INSERTXY to ys_app

 

示例:

   如果用户oa有 offices表对象,且对hr的offices表有查询权限,那么select  * from  offices时,查询的是自己的数据。如果要查hr模式,需要select  * from  hr.offices

   如果户oa没有 offices表对象,且对hr的offices表有查询权限,通过创建同义词CREATE   SYNONYM   offices    FOR hr.offices;执行select  * from  offices;系统返回是hr用户的数据。

 

posted @ 2017-11-25 17:06  彩虹消失了  阅读(1123)  评论(0编辑  收藏  举报