Oracle 使用同義詞

2021-09-23 22:15:00 字數 2100 閱讀 6656

使用同義詞

同義詞是方案物件的別名。通過使用同義詞,一方面可以簡化物件訪問,另一方面可以提高物件訪問的安全性。

在oracle資料庫中,同義詞包括公共同義詞和私有同義詞倆種型別,其中公共同義詞是指所有使用者都可以直接引用的同義詞。

並且這種同義詞由public使用者組所擁有;私有同義詞是指只能由其方案使用者直接引用的同義詞。

如果資料庫使用者要訪問公共同義詞,那麼可以直接引用,不需要加方案名;

如果資料庫使用者要訪問其他方案的私有同義詞,那麼必須加方案名作為字首。

注意,無論是訪問公共同義詞還是私有同義詞,資料庫使用者必須要具有訪問同義詞基物件的許可權。

一、建立同義詞

1.建立公共同義詞

建立公共同義詞是使用create public synonym語句來完成的。如果使用者要建立公共同義詞,那麼要求該使用者必須具有create public synonym系統許可權。語法如下:

create public synonym synonym for [schema.]object;

如上所示,synonym用於指定同義詞名,schema用於指定方案名,object用於指定物件名。

create public synonym public_emp for scott.emp;

當執行了以上語句之後,會建立公共同義詞public_emp。因為該同義詞屬於public使用者組,所以任何使用者都可以直接引用該同義詞。

注意,如果使用者要使用該同義詞,必須具有訪問scott.emp表的許可權。

使用同義詞的例項如下:

update public_emp set sal=3100 where ename='scott';

select ename,sal,job from public_emp where ename='scott';

2.建立私有同義詞

建立私有同義詞是使用create synonym語句來完成的。如果在當前方案中建立私有同義詞,那麼資料庫使用者必須具有create synonym系統許可權;如果在其他方案中建立私有同義詞,

那麼資料庫使用者必須具有create any synonym系統許可權。語法如下:

如上所示,synonym用於指定同義詞名,schema用於指定方案名,object用於指定物件名。

create synonym private_emp for scott.emp;

當執行了以上語句之後,會建立私有同義詞private_emp。因為該同義詞是私有同義詞,所以只有當前使用者可以直接引用,而其他使用者在引用時必須帶有方案名。

select ename,sal,job from scott.private_emp where ename='scott';

二、刪除同義詞

1.刪除公共同義詞

刪除公共同義詞是使用drop public synonym語句來完成的。如果使用者要刪除公共同義詞,那麼要求使用者必須具有drop public synonym系統許可權。語法如下:

drop public synonym synonym;

如上所示,synonym用於指定要刪除的同義詞名稱。

drop public synonym public_emp;

2.刪除私有同義詞

刪除私有同義詞是使用drop synonym語句來完成的。使用者可以直接刪除其自身方案的同義詞,而如果要刪除其他方案的同義詞,則使用者必須具有drop any synonym系統許可權。語法如下:

drop synonym synonym;

如上所示,synonym用於指定要刪除的同義詞名稱。

drop synonym private_emp;

三、顯示同義詞資訊

當建立同義詞時,oracle會將同義詞的資訊存放到資料字典中。通過查詢資料字典檢視user_synonyms,可以顯示當前使用者所有同義詞的詳細資訊。

注意,因為oracle為該資料字典檢視提供了同義詞syn,所以可以使用syn取得當前使用者的私有同義詞。

select table_owner,table_name from syn

where synonym_name='private_emp';

如上所示,table_owner用於標識同義詞所對應物件的物件所有者,table_name用於標識同義詞對應的物件名,synonym_name用於標識同義詞的名稱。

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