1.4 二面性ビューのセキュリティ: シンプル、集中管理、ユースケース固有
二面性ビューを使用すると、データ・セキュリティが向上します。アクセスと操作を任意のレベルで制御できます。
セキュリティ制御は集中管理されています。二面性ビューに関する他のすべてのものと同様に、データベースで定義、検証、適用および監査されます。これは、各アプリケーションでデータを保護しようとすることと対照的です。権限、付与およびロールを使用して、他のデータベース・オブジェクトへのアクセスを制御するのと同じ方法で、二面性ビューでサポートされるドキュメントへのアクセスを制御します。
二面性ビューのセキュリティは、ユースケースに固有です。表レベルでの広い可視性を提供するのではなく、二面性ビューでは、基礎となる表からデータの関連する列のみが公開されます。たとえば、一部の受講者データを含む教師ビューにアクセスできるアプリケーションでは、社会保障番号や住所などの非公開の受講者データにアクセスできません。
公開/可視性の他に、二面性ビューでは、どのようにしてどのデータを更新できるかを宣言的に定義できます。受講者ビューでは受講者名を変更でき、教師ビューでは変更できない場合があります。教師向けのアプリケーションはコース名を変更できますが、受講者向けのアプリケーションは変更できません。「更新可能なJSONリレーショナル二面性ビュー」および「二面性ビューでのドキュメント/データの更新」を参照してください。
2種類のセキュリティ制御を組み合せて、誰/何がどのフィールドに対して何を実行できるかを制御できます。
-
ドキュメント・フィールドとしてわずかに異なる列セットを公開する類似の二面性ビューを作成します。つまり、アクターの異なるグループを対象とするビューを定義します。(二面性ビューでサポートされるドキュメントは、それ自体は格納されないため、追加コストはかかりません。)
-
権限とロールを付与して、選択的に異なるグループのユーザー/アプリケーションを様々なビューにアクセスできるようにします。
この宣言的でインデータベースのフィールド・レベルのアクセス制御と、なんらかの方法で(アプリケーション・コードまたはオブジェクト・リレーショナル・マッパー(ORM)を使用して)ユーザーまたはアプリケーションが特定の表またはドキュメントのセット内のすべてのデータにアクセスおよび更新できないようにする必要があることを対比してください。
データベースはドキュメントの変更を自動的に検出し、関連する表の行のみを更新します。逆に、表の更新は、その基になるドキュメントに自動的に反映されます。データベースの外側にマッピング・レイヤーはありません。ORMが再マップの要求を仲介することはありません。
また、クライアント・アプリケーションはJSONドキュメントを直接使用できます。マッパーでは、アプリケーション・オブジェクトおよびクラスをドキュメントおよびドキュメント・タイプに接続する必要はありません。
複数のアプリケーションで、ドキュメントまたは基礎となる表を同時に更新することもできます。どちらかに対する変更は、透過的にただちに他方に反映されます。特に、既存のSQLツールでは、アプリケーションがその行に基づいてドキュメントを更新すると同時に表の行を更新できます。ドキュメント・レベルの一貫性と表の行レベルの一貫性が同時に保証されます。
また、このセキュアな同時実行性はロックフリーになるため、高いパフォーマンスが得られます。「二面性ビューでのオプティミスティックな同時実行性制御の使用」を参照してください。
JSONリレーショナル二面性ビューを使用できる特定のOracle Databaseセキュリティ機能には、透過的データ暗号化(TDE)、データ・リダクションおよび仮想プライベート・データベースなどがあります。
親トピック: JSONリレーショナル二面性ビューの概要