y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

オラクル、スキーマ、シノニム

脂の乗ったおっさんがオラクルのお勉強中である。
単純に、テーブルのアクセス権限をユーザ単位で制限したいのだが、結構面倒なことに。
MS-SQLMSDE)を使っていたときには、テーブルに対して個別にアクセス権限を設定し、dbo.テーブル名なんていう形でアクセスするだけで良かった。←意識していなかっただけで、今思えば”パブリックシノニム”みたいなものか*。

ラクル(MS-SQLもか?)では、ユーザADMINが作成した表に、WEBUSERがアクセスするためには、スキーマという名前空間(?)が立ちはだかる。
スキーマって何やねん?」と思って調べてみる。ユーザ単位でスキーマを定義するから、ユーザが所有する最上位のオブジェクト空間みたいなものだ。←合ってるか?大丈夫か?
SQL中でTBL_USERにアクセスする場合、ADMIN.TBL_***みたいにしないといけなくて、プログラム中で”これは誰の持ち物か”をいちいち明示してやらなければならない。他のDBエンジンでも動作するようにプログラムを組むのが普通だから、これは面倒くさい。普通にTBL_***とアクセスしたい。
「ADMINが所有、メンテナンスするTBL_***を、参照専用でWEBUSERに公開するためにはどうするか?」
ちょっと考えた。一日勉強したらなんとなく正解が見えてきた。
解決に至ったキーワードは、始め意味が分からなかった、”シノニム”だ。
シノニムという単語自体の意味は、”同義語”というような意味らしい。
「ははーん、エイリアスみたいなものか。」なんとなく想像ができてきた。