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用户的数据。

 

原文地址:https://www.cnblogs.com/walkwithmonth/p/7895787.html