多用戶協同開發中,可以屏蔽對象的名字及其持有者。如果沒有同義詞,當操作其他用戶的表時,必須通過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
