Oracle同義詞從字面上理解就是別名的意思,和視圖的功能類似,就是一種映射關(guān)系。在Oracle中對(duì)用戶的管理是使用權(quán)限的方式來管理的,也就是說,如果我們想使用數(shù)據(jù)庫,我們就必須得有權(quán)限,但是如果是別人將權(quán)限授予了我們,我們也是能對(duì)數(shù)據(jù)庫進(jìn)行操作的,但是我們必須要已授權(quán)的表的名稱前鍵入該表所有者的名稱,如bsrun.doctor_info,所以這比較麻煩,遇到這種情況,我們?cè)撛趺崔k呢?創(chuàng)建個(gè)同義詞吧!這樣我們就可以直接使用同義詞來使用表了。
1、 如果我們要將bsrun用戶的所有對(duì)象都創(chuàng)建一個(gè)同義詞,則可以這樣寫:
select ' create synonym ' || OBJECT_NAME ||' for bsrun.'||OBJECT_NAME||';'
from user_objects where object_type in('TABLE','VIEW','PROCEDURE','TRIGGER','FUNCTION','PACKAGE');
將以上語句取得的結(jié)果集,在PL/SQL工具中執(zhí)行就可以了,以上創(chuàng)建的是私有同義詞,即只有創(chuàng)建者才能訪問。
以下語句則是創(chuàng)建公有同義詞,所有有權(quán)限的用戶都能訪問:
select ' create public synonym ' || OBJECT_NAME ||' for bsrun.'||OBJECT_NAME||';'
from user_objects where object_type in('TABLE','VIEW','PROCEDURE','TRIGGER','FUNCTION','PACKAGE');
2、刪除同義詞:
DROP SYNONYM emp; --刪除名為emp 的私有同義詞
DROP PUBLIC SYNONYM public_emp; --刪除名為public_emp的公有同義詞
新聞熱點(diǎn)
疑難解答
圖片精選