Oracle同義詞

1.同義詞介紹
同義詞在對象簡化與數據鏈接這塊應用場景比較多,有了同義詞非自主對象就可以不用帶上對象的schema來簡化書寫。
create synonym table_name for table_name@DB_Link,這裏可以在有防火牆問題的前提下,在ABC三庫下,通過建立同義詞,達到一定操作。(A不能訪問C,A能訪問B,B能訪問C)
同義詞跟視圖的功能類似,就是一種映射關係,都並不佔用實際存儲空間,只有在數據字典中保存了同義詞的定義。
在Oracle數據庫中的大部分數據庫對象,如表、視圖、物化視圖、序列、函數、存儲過程、包、同義詞等等,數據庫管理員都可以根據實際情況爲他們定義同義詞。

2 同義詞分類

Oracle同義詞有兩種類型,分別是Oracle公用同義詞與Oracle私有同義詞。普通用戶創建的同義詞一般都是私有同義詞,公有同義詞一般由DBA創建,普通用戶如果希望創建同義詞,則需要CREATE PUBLIC SYNONYM這個系統權限。

1)Oracle公用同義詞:由一個特殊的用戶組Public所擁有。顧名思義,數據庫中所有的用戶都可以使用公用同義詞。公用同義詞往往用來標示一些比較普通的數據庫對象,這些對象往往大家都需要引用。
2)Oracle私有同義詞:它是跟公用同義詞所對應,他是由創建他的用戶所有。當然,這個同義詞的創建者,可以通過授權控制其他用戶是否有權使用屬於自己的私有同義詞。
----公共同義詞和用戶的schema無關,但是公共的意思並不是所有的用戶都可以訪問它,必須被授權後才能進行

CREATE SYNONYM、CREATE ANY SYNONYM、CREATE PUBLIC SYNONYM
CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同義詞名稱 FOR [ schema.] object [ @dblink ];
存在同名對象和公共同義詞時,數據庫優先選擇對象作爲目標,存在同名私有同義詞和公共同義詞時,數據庫優先選擇私有同義詞作爲目標

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章