ORACLE同义词使用

多用户协同开发中,可以屏蔽对象的名字及其持有者。如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名,

当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。

 

例如:服务SRV_B需要读系统A的数据

SQL>create synonym SRV_B.EMPLOYEE for A.EMPLOYEE ;

SQL> grant select on A.EMPLOYEE to SRV_B;

Grant succeeded.

不赋权的话,SRV_B看不到EMPLOYEE 数据

 批量生成:

 select   'grant select on A.' ||table_name|| ' to ' || owner || ';' from dba_synonyms where OWNER='SRV_B' order by 1;

 

 

 参考阅读:潇湘隐者http://www.cnblogs.com/kerrycode/archive/2012/12/19/2824963.html

posted on 2018-12-20 11:28  HelonTian  阅读(1958)  评论(0编辑  收藏  举报