Oracle同義詞建立及其做用

Oracle同義詞建立及其做用

Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和視圖的功能相似,就是一種映射關係。
1.建立同義詞語句:
create public 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

2.刪除同義詞:html

--刪除同義詞:
drop public synonym table_name;

3.查看全部同義詞:sql

--查看全部同義詞:
select * from dba_synonyms
同義詞擁有以下好處:節省大量的數據庫空間,對不一樣用戶的操做同一張表沒有多少差異;擴展的數據庫的使用範圍,可以在不一樣的數據庫用戶之間實現無縫交互;同義詞能夠建立在不一樣一個數據庫服務器上,經過網絡實現鏈接。 
Oracle數據庫中提供了同義詞管理的功能。Oracle同義詞是數據庫方案對象的一個別名,常常用於簡化對象訪問和提升對象訪問的安全性。
AD:在Oracle中對用戶的管理是使用權限的方式來管理的,也就是說,若是咱們想使用數據庫,咱們就必須得有權限,可是若是是別人將權限授予了咱們,咱們也是能對數據庫進行操做的,可是咱們必需要已受權的表的名稱前鍵入該表全部者的名稱,因此這就是比較麻煩的,遇到這種狀況,咱們該怎麼辦呢?建立個Oracle同義詞吧!這樣咱們就能夠直接使用同義詞來使用表了。
1.同義詞的概念
Oracle數據庫中提供了同義詞管理的功能。同義詞是數據庫方案對象的一個別名,常常用於簡化對象訪問和提升對象訪問的安全性。在使用同義詞時,Oracle數據庫將它翻譯成對應方案對象的名字。與視圖相似,同義詞並不佔用實際存儲空間,只有在數據字典中保存了同義詞的定義。在Oracle數據庫中的大部分數據庫對象,如表、視圖、同義詞、序列、存儲過程、包等等,數據庫管理員均可以根據實際狀況爲他們定義同義詞。
2.Oracle同義詞的分類
Oracle同義詞有兩種類型,分別是公用Oracle同義詞與私有Oracle同義詞。
1)公用Oracle同義詞:由一個特殊的用戶組Public所擁有。顧名思義,數據庫中全部的用戶均可以使用公用同義詞。公用同義詞每每用來標示一些比較普通的數據庫對象,這些對象每每你們都須要引用。
2)私有Oracle同義詞:它是跟公用同義詞所對應,他是由建立他的用戶全部。固然,這個同義詞的建立者,能夠經過受權控制其餘用戶是否有權使用屬於本身的私有同義詞。
3.Oracle同義詞建立及刪除
建立公有Oracle同義詞的語法:Create [public] synonym 同義詞名稱 for [username.]objectName;
Drop [public] synonym 同義詞名稱
4.Oracle同義詞的做用
1) 多用戶協同開發中,能夠屏蔽對象的名字及其持有者。若是沒有同義詞,當操做其餘用戶的表時,必須經過user名.object名的形式,採用了Oracle同義詞以後就能夠隱蔽掉user名,固然這裏要注意的是:public同義詞只是爲數據庫對象定義了一個公共的別名,其餘用戶可否經過這個別名訪問這個數據庫對象,還要看是否已經爲這個用戶受權。
2) 爲用戶簡化sql語句。上面的一條其實就是一種簡化sql的體現,同時若是本身建的表的名字很長,能夠爲這個表建立一個Oracle同義詞來簡化sql開發。
3)爲分佈式數據庫的遠程對象提供位置透明性。
5.Oracle同義詞在數據庫鏈中的做用
數據庫鏈是一個命名的對象,說明一個數據庫到另外一個數據庫的路徑,經過其能夠實現不一樣數據庫之間的通訊。
Create database link 數據庫鏈名 connect  to  user名 identified by 口令  using ‘Oracle鏈接串’; 訪問對象要經過 object名@數據庫鏈名。同義詞在數據庫鏈中的做用就是提供位置透明性
相關文章
相關標籤/搜索