同義詞(synonym):
也是數據庫中的常見對象,可以看作是為表、視圖、物化視圖、序列、過程、函數、包、類型(type)、Java 類對象(Java class schema object)、用戶定義對象類型 (user-defined object type)或是另一個同義詞所創建的別名。
使用同義詞是出於方便或安全上的考慮。例如,可以使用同義詞進行以下工作:
- 隱藏一個數據庫對象的名字和擁有者(owner)
- 隱藏分布式環境(distributed database)中遠程對象(remote object)的位置
- 簡化數據庫用戶的 SQL 語句
- 和視圖類似能夠限制訪問,用於實現更精細的訪問控制(fine-grained access control)
用戶可以創建公共(public)或私有(private)的同義詞。公共同義詞由特殊的用戶組 PUBLIC所擁有,數據庫中的每個用戶都能夠訪問。而私有同義詞屬於某個用戶,此用戶能夠控制哪些
用戶可以使用這些私有同義詞。
CREATE PUBLIC SYNONYM sales FOR eygle.sales_data;
如果要查看數據庫中有哪些同義詞,可用過以下視圖查詢:
ALL_SYNONYMS:描述當前用戶可訪問的全部同義詞
DBA_SYNONYMS:描述數據庫中的全部同義詞
USER_SYNONYMS:描述當前用戶擁有的全部同義詞
