Oracle 中的 同義詞(synonym)

(一)同義詞的概念html

同義詞是數據庫中表、視圖、序列、過程、函數、程序包、物化視圖、Java類模式對象、用戶定義對象類型,或另外一個同義詞的別名。與視圖類似,同義詞不佔用實際的存儲空間,在數據字典中只存同義詞的定義。數據庫

在開發數據庫時,應儘可能避免直接引用表、視圖或其餘數據庫對象,不然,當表的結構發生了改變,就會影響應用程序的使用,這個時候須要從新編譯程序,若是爲數據庫對象建立了同義詞,就能夠在程序中使用同義詞,這樣表的結構發生變化,也不會影響到應用程序。此外,運用同義詞還能夠隱藏數據庫對象名稱以及對象全部者的信息,還能夠簡化對數據庫對象的訪問。函數

(二)同義詞分類spa

同義詞分爲私有同義詞和公有同義詞,私有同義詞只能被建立它的用戶擁有,該用戶能夠控制其餘用戶對其同義詞的使用權。公有同義詞被用戶組PUBLIC所擁有,數據庫全部用戶均可以使用公有同義詞。code

(三)同義詞相關權限htm

(1)系統權限:對象

SYSTEM PRIVILEGE MARK
CREATE SYNONYM 在當前Schema中建立私有同義詞。同時能夠修改、刪除同義詞
CREATE PUBLIC SYNONYM 在當前 Schema中建立公有同義詞
CREATE ANY SYNONYM 在任意Schema中建立私有同義詞
DROP ANY SYNONYM 刪除任意Schema中的私有同義詞
DROP PUBLIC SYNONYM 刪除當前Schema中的公有同義詞

(2)對象權限blog

無(不肯定)ci

(四)同義詞的使用開發

(1)建立同義詞

1

CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object [ @ dblink ];

(2)使用同義詞

用戶可使用本身Schema中的同義詞,也可使用PUBLIC同義詞,還可使用其餘Schema中的同義詞,可是用戶還必須具備與同義詞對應的數據庫對象的操做權限。

(3)刪除同義詞

1

DROP [PUBLIC] SYNONYM synonym_name

*用戶能夠刪除本身Schema下的私有同義詞,要刪除公有同義詞,需具備DROP PUBLIC SYNONYM權限,要刪除其它Schema中的同義詞,須要具備DROP ANY SYNONYM權限。

(5)與同義詞相關的數據字典

VIEW MARK
DBA_SYNONYMS 查看數據庫所有同義詞
ALL_SYNONYMS 查看當前用戶能夠看到的所有同義詞
USER_SYNONYMS 查看當前用戶擁有的同義詞

分類: Oracle

相關文章
相關標籤/搜索