
「所有していないマテリアライズド・ビューのマスター表にアクセスする場合は、各表に対するSELECTオブジェクト権限またはSELECT ANY TABLEシステム権限が必要です。」
ということから、selectオブジェクト権限をつけた『ビュー』をもとに、マテリアライズドビューの作成はできないのでしょうか?
例)Aスキーマが所有するTESTビュー表をもとに、Bスキーマでマテリアライズドビューを作成する。
create materialized view mview as select * from A.TESTビュー;
create materialized view 権限は付与しました。
A.TESTビューに対するSELECTオブジェクト権限は付与しました。
結果としては、表またはビューがありません。とエラーがでます。
しかし、Aスキーマが所有するテーブルに対しては、問題なくマテリアライズドビューの作成はできます。
異なるスキーマの『ビュー』を元にマテリアライズドビューの作成は
できない。といった記述はないのですが、実際に作成ができません。
ご教授ください。
No.1ベストアンサー
- 回答日時:
マテリアライズド・ビューの作成以前に・・
ビューにselect権限があっても、ビューが必要とするテーブルやビューに、オブジェクト権限がないのであれば
ビューを使えないと思いますが?
select権限を与えたビューが検索できるか確認してください。
ロールがあると確認が難しくなるので、小さなプロシジャでも書いて確認すると良いかと。
create or replace procedure a is c number; begin select count(*) into c from ビュー; end;
/
execute a;
たぶん、オブジェクト権限なしでコンパイルエラーになるか、ビューの検索でエラーになると思いますよ。
korochanさんありがとうございます。
プロシージャで確認する。という手法ありがとうございます。
結果としては、プロシージャ実行結果は件数がかえってきました。
プロシージャでは正常であるのに、
create materialized view mview
builc defferd
refresh force with rowid
on demand
as
select * from A.TESTビュー
では、エラーが以下のように出力されます。
ORA-00942:表またはビューが存在しません。
ORA-06512:"SYS.DBMS_SNAPSHOT_UTL" 行1543
ORA-06512:行1
ためしに、select * from A.TESTビューをもとに、create view ~
を実行すると、正常に作成できます。
どうもマテリアライズドビューはできないようなのです。
SYS.DBMS_SNAPSHOT_UTL は、暗号化されたパッケージで、
行1に何が書いてあるのかはわかりませんでした。
No.2
- 回答日時:
どこまで確認されたかは分かりませんが・・・
1. MVIEW を作成したいユーザで
SQL> SELECT * FROM A.TESTビュー
OK ==> VIEW に対する MVIEW は作成できない
NG ==> →2 へ
2. TESTビューの元表にもA ユーザがアクセスできるように権限付与して1 の内容が成功するか確認してみる。。
SQL> GRANT SELECT ON 元表A TO SCOTT;
OK ==> 元表に対するSELECT 権限も必要 →MVIEW 作成へ
NG ==> コマンドのどこかに問題がある
こんな感じで切り分けできるのでは?
この回答への補足
1 の結果は、実行できたので、OKです。
ということは、VIEWに対するMVIEWは作成できない。ということになるのでしょうか?
エラー内容としては、
ORA-00942:表またはビューが存在しません
ORA-06512:"SYS.DBMS_SNAPSHOT_UTL" 行1543
ORA-06512:行1
という内容で、権限っぽいのですが、権限は満たしているようなのです。
VIEWをもとにしてマテリアライズドビューを作成する場合、
MVIEWを作成したいユーザが元表のビューを所有していないとだめなようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
- Web・クリエイティブ 【 3DCGソフト⠀MAYAについての質問 】 MAYAでビューからイメージプレーンを読み込むと、ビ 1 2023/07/09 02:50
- iPad iPadでoutlookのビューの幅を広げたいのですが、やり方が分かりません。 iPadでoutlo 2 2022/12/29 10:56
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Excel(エクセル) エクセルの保護ビューについて 1 2022/10/20 11:19
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
異なるスキーマのビューを元に...
-
死ぬ権限がない人
-
Accessのマクロでモジュールを...
-
日付型カラムへのデータINSERT
-
今日の日付が入った行のデータ...
-
Excel VBAで「プログラム実行」...
-
Access VBAで行ラベルが定義さ...
-
キャッシュを使わずにSELECTを...
-
SQL文のエラー
-
PL/SQLカーソルの2重FORループ...
-
SQL*Loader フォーマット変換...
-
SQLserver算術オーバーフロ...
-
Accessの数値から時間に変換す...
-
ACCESS マクロをモジュールに変...
-
ストアド実行時のエラー「参照...
-
Accessでグローバル変数を宣言...
-
OutlookVBAで作成したマクロに...
-
【Excel VBA】 WorksheetやRa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
異なるスキーマのビューを元に...
-
会社の〇〇部と〇〇課の違いっ...
-
別のスキーマのテーブルアップ...
-
roleの権限確認方法
-
ストアドプロシジャで、TRUNCAT...
-
Oracle8iで順序の値のリセット
-
DBMS_LOCK.SLEEPについて
-
Poweruser権限でのIPアドレス変...
-
テーブル権限確認
-
Oracle 10g 他スキーマの参照権...
-
Oracleでオブジェクト権限を調...
-
oracleユーザーの権限確認方法...
-
権限で「委任」「専決」とあり...
-
Flashback Tableで必要な権限
-
トリガーにてビューを作成しよ...
-
Oracle 10g 権限付与
-
死ぬ権限がない人
-
windows 2003 staでのログオン...
おすすめ情報