使用者可以在自己的模式中建立同義字,這需要具有CREATE SYNONYM這個系統許可權。如果希望在其他使用者的模式中建立同義字,則需要具有CREATE ANY SYNONYM這個系統許可權。普通使用者建立的同義字一般都是私人同義字,公有同義字一般由DBA建立,普通使用者如果希望建立同義字,則需要CREATE PUBLIC SYNONYM這個系統許可權。
建立私人同義字的命令是CREATE SYNONYM,它的文法規則為:
CREATE SYNONYM 同義字 FOR 使用者名稱.對象名;
例如,假設目前使用者為了方便地訪問scott使用者的表dept,可以執行下面的CREATE語句建立同義字:
CREATE SYNONYM sy_dept FOR scott.dept;
這樣在具有相應許可權的情況下,目前使用者就可以通過這個同義字代替原來的表,在SQL語句中通過訪問同義字來對原來的表進行操作。例如:
SELECT deptno,dname,loc FROM sy_dept;
建立公有同義字的命令也是CREATE SYNONYM,只是要使用PUBLIC關鍵字進行限定。建立公有同義字的命令格式為:
CREATE PUBLIC SYNONYM 同義字 FOR 使用者名稱.對象名;
例如,為了讓大家都能方便地訪問scott使用者的表dept,DBA可以通過執行下面的語句建立一個公用同義字:
CREATE PUBLIC SYNONYM pub_dept FOR scott.dept;
在具有相應許可權的情況,任何使用者都可以通過這個同義字訪問SCOTT使用者的表dept。
使用者如果不使用同義字時,可以將其刪除。刪除同義字的命令是DROP SYNONYM。這條命令的文法格式為:
DROP SYNONYM 同義字;
一個使用者可以刪除自己建立的同義字,如果要刪除其他使用者建立的同義字,則要具有DROP ANY SYNONYM系統許可權。DBA可以刪除所有的公用同義字,普通使用者需要具有DROP PUBLIC SYNONYM系統許可權,才能刪除公用同義字。同義字被刪除以後,它的相關資訊也將從資料字典中刪除。