Oracle中創建同義詞語句:
create synonym table_name for user.table_name;
其中第一個user_table和第二個user_table可以不一樣。
此外如果要創建一個遠程的數據庫上的某張表的同義詞,需要先創建一個Database Link(數據庫連接)來擴展訪問,然後在使用如下語句創建數據庫同義詞:create synonym table_name for table_name@DB_Link;
當然,你可能需要在user用戶中給當前用戶(user2)授權: grant select/delete/update on user2
創建好同義詞之後,你可以對它進行DML(insert,update,delete)操作,當然select語句時肯定支持的。刪除同義詞:drop synonym table_name;這裏的table_name是指同義詞的表名。
同義詞擁有如下好處:節省大量的數據庫空間,對不同用戶的操作同一張表沒有多少差別;擴展的數據庫的使用範圍,能夠在不同的數據庫用戶之間實現無縫交互;同義詞可以創建在不同一個數據庫服務器上,通過網絡實現連接。
待研究:不同用戶對通一張表操作時,使用鎖對多用戶的影響,能否使用鎖,事務進行操作
查看所有同義詞:
select * from dba_synonyms
我們都知道,在oracle中對用戶的管理是使用權限的方式來管理的,也就是說,如果我們想使用數據庫,我們就必須得有權限,但是如果是別人將權限授予了我們,我們也是能對數據庫進行操作的,但是我們必須要已授權的表的名稱前鍵入該表所有者的名稱,所以這就是比較麻煩的,遇到這種情況,我們該怎麼辦呢?創建個同義詞吧!這樣我們就可以直接使用同義詞來使用表了。 CREATE PUBLIC SYNONYM public_emp FOR jward.emp; -- jward 用戶名 刪除同義詞 DROP SYNONYM emp; --刪除名爲emp 的私有同義詞
|