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