Database Securityホームページへ戻る

Virtual Private Database

Oracle Database 11g Enterprise Editionの機能であるVirtual Private Database(VPD)は、Oracle8i Databaseで導入された、現在もっとも一般的に利用されているデータベースのセキュリティ機能です。 標準のオブジェクト権限および対応付けられたデータベース・ロールが不十分なために、アプリケーションのセキュリティ要件を満たせない場合に、VPDを使用します。 VPDポリシーは、セキュリティ要件に応じて単純な場合も複雑な場合もあります。 VPDを"アプリケーション・コンテキスト"機能と組み合わせることにより、行や列レベルで、プライバシーや規制遵守に関する高度なセキュリティ要件に対応できます。 たとえば、単純なVPDで営業時間内のデータへのアクセスを制限することも、複雑なVPDでログイン・トリガー時にアプリケーション・コンテキストを読み取り、ORDERS表に対して行レベルのセキュリティを適用することもできます。

ユーザーが保護された表にどのような方法(アプリケーション、Webインタフェース、またはSQL*Plus)で接続しても、結果は同じになります。 アクセス・ポリシーが表にアタッチされているため、アクセス・ポリシーを迂回することができないことから、"アプリケーションのセキュリティ問題"はなくなります。

単純なVPD
例:顧客はCUSTOMERS表(上図)にリストされているため、調べられるのはORDERS表(下図)にある顧客自身の注文内容のみです。


"列関連性"を使用すると、重要な列が選択された場合にのみポリシーが実施されるようにVPDを構成できます。

VPD列関連性(パッシブ)

VPD列関連性(アクティブ)
例:ACCOUNT_MGR_IDが"149"である経理担当者は、CUSTOMERS表のすべての行を確認できますが、与信限度を調べることはできません。 CREDIT_LIMIT列の問合せを行った場合、担当する顧客の与信限度のみが表示されます。


VPDの最も高度な構成である"列のマスキング"により、使いやすさとセキュリティのもっとも効果的な組合せが実現します。 担当者は、CUSTOMERS表内のパブリックな情報へはアクセスできますが、機密情報は表示されません。

VPD列のマスキング
例:CREDIT_LIMIT列には、この経理担当者が担当する顧客のデータ・セルのみが表示され、それ以外はすべて空白です。



ハンズオン


 VPD policy groups for application users('driving application context'を含む)
 Combine VPD and Oracle Label Security to hide sensitive columns based on OLS user clearance

セキュリティ機能


 Data Encryption
 Virtual Private Database
 データベース監査
 暗号化バックアップ
 エクスポート・ファイルの暗号化
 プロキシ認証
 Enterprise User Security
 Secure Application Roles
 Fine Grained Auditing

掲示板


 Security
 Audit Vault
 Database

セキュリティ・オプション


 Oracle Database Vault
 Oracle Advanced Security
 Oracle Label Security

関連テクノロジー


 Database Firewall
 Audit Vault
 Data Masking(pdf)
 Secure Backup
 Configuration Management
 Information Rights Management
 Identity Management