oracle學習篇七:同義字

來源:互聯網
上載者:User

標籤:

Oracle資料庫中提供了同義字管理的功能。Oracle同義字是資料庫方案對象的一個別名,經常用於簡化對象訪問和提高對象訪問的安全性。

在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名@資料庫鏈名。同義字在資料庫鏈中的作用就是提供位置透明性。

5.同義字普通用法如下所示:

CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同義字名稱 FOR [ schema.] object [ @dblink ];

--1》專有(私人)同義字

CREATE SYNONYM SYSN_TEST FOR TEST; (授予帳號建立同義字的許可權:GRANT CREATE ANY SYNONYM TO DM;)


--2》公用同義字

CREATE PUBLIC SYNONYM PUBLIC_TEST FOR TEST;(授予帳號建立同義字的許可權:GRANT CREATE PUBLIC SYNONYM TO DM;)

--3》此外如果要建立一個遠端資料庫上的某張表的同義字,需要先建立一個Database Link(資料庫連接)來擴充訪問,
然後在使用如下語句建立資料庫同義字:create synonym table_name for [email protected]_Link;

6.使用同義字:
SELECT * FROM SYSN_TEST;

使用同義字可以保證當資料庫的位置或對象名稱發生改變時,應用程式的代碼保持穩定不變,僅需要改變同義字;

當使用一個沒有指定schema的同義字是,首先在使用者自己的schema中尋找,然後再公用同義字中尋找

7.刪除同義字

DROP [ PUBLIC ] SYNONYM [ schema. ] 同義字名稱 [ FORCE ];

DROP SYNONYM SYSN_TEST;

DROP PUBLIC SYNONYM PUBLIC_TEST;--當同義字的原對象被刪除是,同義字並不會被刪除

8.編譯同義字

ALTER SYNONYM T COMPILE; --當同義字的原對象被重建立立時,同義字需要重新編譯

oracle學習篇七:同義字

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.