VIEWのコンパイルが通らない(ORA-01031: 権限が不足しています。)

個々のテーブルがSELECT可能でもビュー化するとコンパイルできないことがある。
個々の SQL が直接実行可能でもストアド・サブプログラム化するとコンパイルできないことがある。
主な理由はロールによる権限が無効化されることを忘れているため。
DBA ロールユーザだとよくやってしまう。(SELECT ANY TABLE権限では足りない)
実行ユーザーには個別に各種権限の付与を行っておく必要がある。

また、スキーマAのビューV_BVIEW1がスキーマBのビューV_ATABLE1を参照し、
スキーマBのビューV_ATABLE1がスキーマAのテーブルTABLE1を参照しているとき、
(つまりスキーマAはスキーマB経由で自身のテーブルを参照しているとき)
スキーマAはスキーマBに
GRANT SERECT ON TABLE1 TO B WITH GRANT OPTION;
という風にオプションを付ける必要がある。

タグ:

+ タグ編集
  • タグ:
最終更新:2009年11月04日 10:11
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。