[開発][DB][Oracle] スキーマとシノニム

■スキーマ
データの論理構造の集合で
スキーマ・オブジェクトと言う
スキーマは データベース・ユーザーによって所有され
そのユーザーと同じ名前を持つ
各ユーザーは単一のスキーマを所有し
SQLで作成や操作が出来る。
スキーマには以下のものが存在する。

クラスタ
―データベース・リンク
―データベース・トリガー
―ディメンション
―外部プロシージャ・ライブラリ
―索引および索引タイプ
―Javaクラス、Javaリソース、Javaソース
―マテリアライズド・ビュー、マテリアライズド・ビュー・ログ
―オブジェクト表、オブジェクト型、オブジェクトビュー
―演算子
―順序
―ストアドファンクション、プロシージャ、パッケージ
シノニム
―テーブル(表)及び索引構成表
―ビュー


シノニム
テーブル・ビュー・プロシージャ・ファンクション・パッケージなどに対する別名
単なる別名だけのもの
シノニムには
パブリックシノニム と プライベートシノニム
がある

□パブリックシノニム
PUBLICユーザーが所有し
全てのユーザーがアクセスできる
□プライベートシノニム
特定ユーザーのスキーマに含まれ
そのユーザーが他ユーザーに対する
シノニムの使用許可を制限する。

シノニムは
セキュリティと便利さの為のもの


あるシノニムの元となるテーブルが
テーブル名の変更やテーブルを別環境に移動するような場合
シノニムのみを再定義すれば
そのシノニムを参照しているアプリケーションの変更の必要が無い

ユーザ'RES'が所有するスキーマ内にテーブル'SALES_DATA'があり
'SALES_DATA'に対するSELECT権限がPUBLICに付与されている場合
通常
このテーブルを参照するには
テーブルを含むスキーマとテーブル名の両方が必要
SELECT * FROM RES.t_SALES_DATA;
ここで
下記のSQLでパブリックシノニムを作成することで
CREATE PUBLIC SYNONYM SALE FOR RES.SALES_DATA;
ユーザーはより単純なSQLでテーブル'SALES_DATA'を参照できる
SELECT * FROM SALE;
同時に
パブリックシノニム'SALE'で
テーブル名'SALES_DATA'とスキーマ名'RES'を隠蔽している

ref:
SQL:Oracle:スキーマ、シノニムとは何か?, Web Artisan Blog
http://www.res-system.com/weblog/item/246

tag : Oracle DB クラスタ シノニム

2009-12-26 01:09 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud