oracle同義詞說明

oracle同義詞說明:
1.用戶可以在自己的模式中創建同義詞,這需要具有CREATE SYNONYM這個系統權限。如果希望在其他用戶的模式中創建同義詞,
則需要具有CREATE ANY SYNONYM這個系統權限。普通用戶創建的同義詞一般都是私有同義詞,公有同義詞一般由DBA創建,普通
用戶如果希望創建同義詞,則需要CREATE PUBLIC SYNONYM這個系統權限。
創建私有同義詞的命令是CREATE SYNONYM,它的語法規則爲:
CREATE SYNONYM 同義詞 FOR 用戶名.對象名;


例如:普通用戶創建同義詞:
賦予權限:
grant create synonym to mb_lm_user;
連接用戶:
conn mb_lm_user

創建同義詞:
create synonym TEST_MB_ACCOUNT_FLOWINOUT for MB_ACCOUNT_FLOWINOUT@link_to_shchdb;

用戶如果不使用同義詞時,可以將其刪除。刪除同義詞的命令是DROP SYNONYM。這條命令的語法格式爲:
DROP SYNONYM 同義詞;

刪除同義詞:
drop synonym TEST_MB_ACCOUNT_FLOWINOUT;

創建公有同義詞的命令也是CREATE SYNONYM,只是要使用PUBLIC關鍵字進行限定。創建公有同義詞的命令格式爲:
CREATE PUBLIC SYNONYM 同義詞 FOR 用戶名.對象名;
grant public create synonym to mb_lm_user;

連接用戶:
conn mb_lm_user
create public synonym TEST_MB_ACCOUNT_FLOWINOUT for MB_ACCOUNT_FLOWINOUT@link_to_shchdb;

注意:刪除public同義詞需要具有DROP PUBLIC SYNONYM權限:
grant DROP PUBLIC SYNONYM to mb_lm_user;

用戶如果不使用同義詞時,可以將其刪除。刪除同義詞的命令是DROP SYNONYM。這條命令的語法格式爲:
DROP PUBLIC SYNONYM 同義詞;
刪除同義詞:
drop public synonym mb_lm_user;

一個用戶可以刪除自己創建的同義詞,如果要刪除其他用戶創建的同義詞,則要具有DROP ANY SYNONYM系統權限。
DBA可以刪除所有的公共同義詞,普通用戶需要具有DROP PUBLIC SYNONYM系統權限,才能刪除公共同義詞。同義
詞被刪除以後,它的相關信息也將從數據字典中刪除。
查看所有同義詞:

2.同義詞管理:
sys同義詞查看管理:
select * from dba_synonyms;
select * from user_synonyms;
用戶查詢自己建立的同義詞:
select * from user_synonyms;
注意:用戶只能查詢自己的私有同義詞,如果想查詢public同義詞,需要使用dba_synonyms表:
SQL>  SELECT synonym_name  FROM dba_synonyms WHERE owner='PUBLIC' and synonym_name like 'TEST%';

SYNONYM_NAME
------------------------------
TEST_MB_ACCOUNT_FLOWINOUT
TEST_PUBLIC_MB


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章