Oracleのシノニムとは、オブジェクトに別の名前を付けて、その名前で使えるようにする機能。
テーブルを参照するのにシノニムを使うならビューを作るのと大差ないが、シノニムはテーブル以外のオブジェクトでも作れる。
プライベートシノニムは、特定のユーザーだけが使えるようになるシノニム。
scottユーザーのempテーブルを、hishidamaユーザーから見られるようにする例。
SQL> create synonym emp for scott.emp; シノニムが作成されました。
SQL> desc emp;
ERROR:
ORA-04043: オブジェクト"SCOTT"."EMP"は存在しません。
	SQL> select * from emp;
select * from emp
              *
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。SQL> grant select,insert,update,delete on emp to hishidama; 権限付与が成功しました。
SQL> desc emp
 名前                                      NULL?    型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
〜パブリックシノニムは、全ユーザーが使えるようになるシノニム。
これを作るには、パブリックシノニムを作る権限が必要。(例えばsysユーザーで作る)
scottユーザーのempテーブルのパブリックシノニムを作る例。
SQL> create public synonym all_emp for scott.emp; シノニムが作成されました。
SQL> desc all_emp
 名前                                      NULL?    型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
〜