• ベストアンサー

異なるスキーマからビュー作成

MAINとSUBと言うスキーマを作成し、MAINスキーマにSUBスキーマにある テーブルを使用してVIEWを作成したいのですがうまくいきません。

質問者が選んだベストアンサー

  • ベストアンサー
  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.2

SQLリファレンスで"CREATE VIEW"の部分を見ると、以下のように書かれています。 「ビューが含まれているスキーマの所有者は、そのビューの基礎となっているすべての表またはビューに対する行の選択、挿入、更新または削除の権限が必要です。また、所有者には、これらの権限がロールを介してではなく、直接付与されている必要があります。」 "DBA"はロールなので、CREATE VIEWを成功させるための条件にはなりません。表のSELECT権限を直接与える必要があります。

minamiokudo
質問者

お礼

うまくいきました。ありがとうございました。

その他の回答 (1)

回答No.1

(1) SUBスキーマからMAINスキーマに対しテーブルのSELECT権限を与えてますか? (2) 参照する際に  スキーマ名.テーブル名  でアクセスしてますか? (3) MAINユーザにCREATE VIEW権限は付与されていますか? #どういうSQL文を書いて、どういうエラー(ORA-xxxx)が出たのかを書かないと、回答する側も難しいので最低限書くようにしましょう。(公開できる範囲で。) #バージョンやOS情報あったほうがベターです。

minamiokudo
質問者

補足

言葉足らずで申し訳ございません。 (1)両スキーマ共にDBA権限を与えています。   SUBスキーマからMAINスキーマに対し、と言う点では方法が解りません。 (2)CREATE OR REPLACE VIEW MAIN.V_SYORI_YM ( KY_YMD,SY_YMD ) AS SELECT SUB.TBL_YMD.KY_SIKYU_YYYYMMDD, SUB.TBL_YMD.SY_SIKYU_YYYYMMDD FROM SUB.TBL_YMD WHERE ( SUB.TBL_YMD.KYTAI_CODE = '01' );  上記、SQLではダメでしょうか。 (3)DBA権限を与えています。 エラーはORA-01031: insufficient privilegesです。 OS:2000 DB:ORACLE10Gです。

関連するQ&A