DBA_* ビューに対する選択権限を持つスキーマ A を持つ Oracle データベースがあります。
これらの権限を持たないスキーマ B もありますが、多くの具体化されたビューがあります。
スキーマ A には 3 つの更新グループがあり、それぞれにスキーマ B からのいくつかのマテリアライズド ビューがあります。
更新グループ外のスナップショットがあるかどうかを確認したいのですが、この確認は B として接続して行いたいと考えています。
次のクエリを使用して、スキーマ A でこのチェックを実行しています。
SELECT OWNER, NAME FROM DBA_SNAPSHOTS WHERE OWNER = 'B'
MINUS
SELECT OWNER, NAME FROM DBA_REFRESH_CHILDREN WHERE RNAME IN ('REFRESH_G1','REFRESH_G2','REFRESH_G3');
問題点:
- B は DBA_* ビューに対する権限を持っていません (そして持つことはできません)
- ALL_* ビューの DBA_* ビューを変更すると、B は更新グループを表示できません (また、マテリアライズド ビューの変更を B に許可することもできません)。
そう:
- Bでこのチェックを実行する別の方法はありますか?
- または、B に更新グループを表示させる別の方法はありますか?
- または、ALL_* ビューを使用してクエリの結果を「凍結」する方法はありますか?たとえば、B はクエリの結果を A として表示しますか?
ありがとう!