Oracle之同義詞 SYNONYM

2021-07-16 00:04:13 字數 1361 閱讀 3375

在正式使用oracle同義詞之前,需要普及乙個知識點:oracle資料庫中對許可權的管理是通過方案來進行的,乙個方案通常就是乙個使用者名稱。我們拿oracle的使用者:scott和hr使用者舉例子,當使用者scott進入oracle後,其建立的資料庫物件可以稱為scott方案物件,為了讓hr方案的使用者可以訪問,除了要給hr使用者分配必要許可權比如檢索許可權之外,hr使用者訪問scott使用者的物件必須使用"scott.資料庫物件名"這樣的格式,也就是說每次訪問都要用上面這種格式,那麼有沒有一種更友好的訪問方式呢?答案肯定是有的,oracle的同義詞提供了該功能,同時記住:建立同義詞的目的是為了簡化對目標物件的訪問,特別是對於分布式資料庫查詢中,可以簡化對查詢語句的編寫,且同義詞不占用實際儲存空間,如同檢視一樣,只在資料字典中儲存了同義詞的定義。

oracle中,同義詞可以分為如下兩類:

1、公用同義詞:能被所有的資料庫使用者訪問的同義詞,毫無疑問只有具有dba許可權的方案使用者才可以設定;

2、私有同義詞:只能由建立的使用者訪問的同義詞;

概念介紹完了,老規矩看同義詞語法:

create [public] synonym synonym for object;

針對上述語法:有以下幾點需要說明:

1、一般來說,oracle裡,中括號裡面的內容是可選內容,在這裡,如果加上public表示公用同義詞,不加的話就是私有同義詞;

2、synonym 這裡表示同義詞的名字

3、object表示要建立同義詞的物件

比如要為scott方案使用者分配檢索hr方案使用者的jobs表的許可權的話,需要這麼操作:

create synonym hrjobs for hr.jobs;

建立同義詞之後,scott如果想要操作這個表的話,不用再像以前那樣select * from  hr.jobs這樣了,只需要像select * from hrjobs;這樣就可以了,就好像操作自己方案下的表那樣方便,其它dml操作類似,在此不做贅述,說完基礎知識,再來談談同義詞許可權的問題,都知道在oracle中離開了許可權,任何乙個方案使用者都是寸操作難行的,那麼為了建立同義詞,我們需要了解哪些許可權呢?

1、比如使用者a想要建立對使用者b的test表的許可權,那麼首先使用者a要具有對使用者b的test表的curd許可權;

2、使用者在自己的模式下建立私有同義詞,比如具有create synonym許可權,否則不能建立私有同義詞;

3、建立公用同義詞,需要具有create public synonym許可權;

4、如果想給其它方案使用者建立私有同義詞,那麼需要具有create any synonym許可權;

最後需要說明的是,如果存在私有同義詞和共有同義詞重名的狀況,那麼一般來說,oracle採取就近原則,即採用私用同義詞來作為目標!對於開發人員來說,需要掌握的同義詞知識點大體如上了,如需要更細緻了解,建議參照oracle官方文件。

Oracle同義詞以及同義詞迴圈鏈錯誤。

就是別名的意思。與檢視類似,是一種對映關係。是表 索引 檢視的物件的別名。建立 create public synonym table name for user.table name 好處 節省資料空間,不同使用者操作同一種表無差別。能夠在不同的資料使用者之間實現無縫互動。簡化物件訪問 和 提高物...

Oracle的同義詞

oracle中建立同義詞語句 create synonym table name foruser.table name 其中第乙個user table和第二個user table可以不一樣。此外如果要建立乙個遠端的資料庫上的某張表的同義詞,需要先建立乙個databaselink 資料庫連線 來擴充套...

ORACLE同義詞詳解

1 同義詞概述 同義詞從字面上理解就是別名的意思,和檢視的功能類似。就是一種對映關係。同義詞擁有如下好處 節省大量的資料庫空間,對不同使用者的操作同一張表沒有多少差別 擴充套件的資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫互動 同義詞可以建立在不同乙個資料庫伺服器上,通過網路實現連線。知識...