sql >> データベース >  >> RDS >> Oracle

許可にもかかわらず、別のスキーマのオブジェクトにアクセスするOracleViewを作成できません

    ドキュメントに記載されているように、 (強調を追加):

    ロールを介して付与された基になるテーブルに対するselect特権のみがある場合、それに対してビューを作成することはできません。一般的に役割に移行する場合でも、作成するビューについては、明示的な付与を最上位に維持する必要があります。

    これは、役割がどのように機能するかに関係していると思います。直接付与により、Oracleは、他のスキーマでテーブルを表示できるかどうかを認識します。ビューの選択を他の人に許可すると、他の人がビューを照会すると、Oracleは特権のチェーンがそこにあることを認識します。テーブルへの直接付与が取り消された場合、依存オブジェクトを無効にするメカニズムがあります。ただし、テーブルに対するロールの選択権限は取り消されます。または、役割へのアクセスが取り消されます。または、自分のセッション内で、そのロールを無効にするとどうなりますか?引き続きビューにアクセスできますか?一見すると少し複雑です。

    幸い、ビューの作成は比較的まれで、制御可能である必要があります。ロールを介してテーブルにアクセスするほとんどの人は、テーブルにビューを作成する必要はありません(私は推測します!)。

    ここでのもう1つのオプションは、ARIELでビューを作成することです。 スキーマを作成し、APEX_ARIELに権限を付与します および/または役割。それが適切かどうかは、実際のビュークエリとビューを作成する動機によって異なります。




    1. Oracleデータ型エラー

    2. UDFの保存/保存

    3. SQLが重複するレコードを見つけることは可能ですか?

    4. SQL Server(T-SQL)でサーバーの現在のタイムゾーンを取得する