S-JIS[2007-09-22] 変更履歴

シノニム

Oracleシノニムとは、オブジェクトに別の名前を付けて、その名前で使えるようにする機能。

テーブルを参照するのにシノニムを使うならビューを作るのと大差ないが、シノニムはテーブル以外のオブジェクトでも作れる。


プライベートシノニムの作成例

プライベートシノニムは、特定のユーザーだけが使えるようになるシノニム。

scottユーザーのempテーブルを、hishidamaユーザーから見られるようにする例。

  1. シノニムを作成する。
    hishidamaユーザーにて:
    SQL> create synonym emp for scott.emp;
    
    シノニムが作成されました。
  2. しかし、そのままではアクセス権限が無いので使えない。
    hishidamaユーザーにて:
    SQL> desc emp;
    ERROR:
    ORA-04043: オブジェクト"SCOTT"."EMP"は存在しません。
    SQL> select * from emp;
    select * from emp
                  *
    行1でエラーが発生しました。:
    ORA-00942: 表またはビューが存在しません。
  3. 元の持ち主やDB管理者から(必要な)アクセス権限を付与してもらう必要がある。
    scottユーザーにて:
    SQL> grant select,insert,update,delete on emp to hishidama;
    
    権限付与が成功しました。
  4. 使えるようになった。
    hishidamaユーザーにて:
    SQL> desc emp
     名前                                      NULL?    型
     ----------------------------------------- -------- ----------------------------
     EMPNO                                     NOT NULL NUMBER(4)
     ENAME                                              VARCHAR2(10)
    〜

パブリックシノニムの作成例

パブリックシノニムは、全ユーザーが使えるようになるシノニム。
これを作るには、パブリックシノニムを作る権限が必要。(例えばsysユーザーで作る)

scottユーザーのempテーブルのパブリックシノニムを作る例。

  1. シノニムを作成する。
    sysユーザーにて:
    SQL> create public synonym all_emp for scott.emp;
    
    シノニムが作成されました。
  2. それだけで他のユーザーから使えるようになる。
    hishidamaユーザーにて:
    SQL> desc all_emp
     名前                                      NULL?    型
     ----------------------------------------- -------- ----------------------------
     EMPNO                                     NOT NULL NUMBER(4)
     ENAME                                              VARCHAR2(10)
    〜

SQLメモへ戻る / Oracle目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま