0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Database SQL (1Z0-071-JPN)試験 シノニム【第11章_後編】

0
Last updated at Posted at 2026-04-10

シノニムとは

表・ビュー・シーケンス・ファンクション・プロシージャ・パッケージなどのオブジェクトに付ける別名(エイリアス)。
以下のような目的で使用される。

  • 長いスキーマ修飾(スキーマ名.オブジェクト名)を省略してSQLを簡潔にする
  • オブジェクトの所在スキーマを隠蔽し、セキュリティを高める
  • アプリケーション側のSQL修正を最小化する(スキーマ移動・リネーム時など)

シノニムの種類

① プライベートシノニム

  • 作成したユーザーのスキーマに格納される
  • そのシノニムを所有するユーザーのみが使用できる(他ユーザーは使用できない)
  • 作成には CREATE SYNONYM システム権限が必要
  • プライベートシノニムの名前は、同じスキーマ内の表名・ビュー名と同じにすることはできない(同じネームスペースを共有するため)

② パブリックシノニム

  • どのスキーマにも属さない(PUBLICネームスペースに格納される)
  • 作成には CREATE PUBLIC SYNONYM システム権限が必要(通常は DBA 権限を持つユーザーが他のユーザーに付与する)
  • パブリックシノニムにアクセスすること自体は権限なしでできるが、シノニムが指すオブジェクト(表など)に対するオブジェクト権限は別途必要
  • パブリックシノニムの名前は、プライベートシノニム名や表名と同じにすることができる

シノニムの作成

CREATE [OR REPLACE] [PUBLIC] SYNONYM <シノニム名>
FOR [<スキーマ名>.]<オブジェクト名>[@<DBリンク名>];
  • OR REPLACE を指定すると既存の同名シノニムを削除せずに再定義できる
  • PUBLIC を指定するとパブリックシノニム、指定しないとプライベートシノニムが作成される
  • FOR 句にスキーマ名を省略すると、作成ユーザー自身のスキーマのオブジェクトを参照する
  • シノニムを作成する時点では、参照先のオブジェクトが存在しなくてもエラーにならない(シノニムの参照解決は使用時に行われる)

他スキーマ・リモートオブジェクトへのシノニム

-- 他スキーマ内オブジェクトへのシノニム
CREATE OR REPLACE PUBLIC SYNONYM <シノニム名>
  FOR <スキーマ名>.<オブジェクト名>;

-- データベースリンクを経由するリモートオブジェクトへのシノニム
CREATE OR REPLACE PUBLIC SYNONYM <シノニム名>
  FOR <オブジェクト名>@<DBリンク名>;

シノニムに必要な権限まとめ

操作 必要な権限
プライベートシノニムの作成 CREATE SYNONYM システム権限
パブリックシノニムの作成 CREATE PUBLIC SYNONYM システム権限
シノニムを通じたオブジェクトの参照 参照先オブジェクトへのオブジェクト権限が別途必要
自スキーマのプライベートシノニムの削除 特に権限不要
他スキーマのプライベートシノニムの削除 DROP ANY SYNONYM システム権限
パブリックシノニムの削除 DROP PUBLIC SYNONYM システム権限

シノニムの削除

-- プライベートシノニムの削除
DROP SYNONYM <シノニム名>;

-- パブリックシノニムの削除
DROP PUBLIC SYNONYM <シノニム名>;
  • PUBLIC を指定するとパブリックシノニムを削除する
  • PUBLIC を指定しないとプライベートシノニムを削除する
  • シノニムを削除しても、シノニムが指していた元のオブジェクトは削除されない

プライベートシノニムとパブリックシノニムの比較

特性 プライベートシノニム パブリックシノニム
格納場所 作成ユーザーのスキーマ PUBLICネームスペース(スキーマなし)
作成権限 CREATE SYNONYM CREATE PUBLIC SYNONYM
使用範囲 所有ユーザーのみ すべてのユーザー(オブジェクト権限は別途必要)
名前の衝突 同スキーマの表・ビュー名と重複不可 プライベートシノニム・表名と重複可
削除権限 自スキーマは不要 / 他スキーマは DROP ANY SYNONYM DROP PUBLIC SYNONYM

プライベートシノニムと同名オブジェクトの優先順位

同名のプライベートシノニムとパブリックシノニムが存在する場合、プライベートシノニムが優先される。
また、同名の表やビューがスキーマに存在する場合は、その表/ビューが優先され、シノニムは使用されない。


参考

  1. シノニムの理解

  2. シノニムについて - Zenn

  3. Oracle シノニム(Synonym)完全ガイド|作成・権限・確認手順と ...

  4. プライベートシノニムにアクセスできる権限について - Ping-t

  5. 24 ビュー、順序およびシノニムの管理

  6. CREATE SYNONYM

  7. DROP SYNONYM シノニムを削除するSQL文 - SE学院

  8. Synonyms Creation - Oracle SQL Certification (1Z0-071) | Section 17, Video 2

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?