ヘッダーをスキップ

Oracle Database 2日でデータ・ウェアハウス・ガイド
11g リリース1(11.1)

E05764-01
目次
目次
索引
索引

戻る 次へ

14 データ・ウェアハウスの操作の最適化

この項では、データ・ウェアハウスのセキュリティの準備の考慮事項について説明します。次のトピックが含まれます。

データ・ウェアハウスのセキュリティについて

データ・ウェアハウジングは、セキュリティに対して固有の課題を投げかけます。業務データ・ウェアハウスは、巨大なシステムであることが多く、多様なセキュリティ上のニーズに応えるとともに、数多くのユーザーに対応しています。また、データ・ウェアハウスは、柔軟性のある、強力なセキュリティ・インフラストラクチャを必要としますが、そのセキュリティ機能は、厳密なパフォーマンスとスケーラビリティなど条件付きの環境で動作する必要があります。

データ・ウェアハウスのセキュリティの必要性について

よく知られたセキュリティに関する多くの基本要件は、他のシステムと同等にデータ・ウェアハウスにも適用されます。アプリケーションでは、不正ユーザーによるデータへのアクセスまたは修正を防止する必要があります。また、アプリケーションおよび基礎データは、簡単にハッカーが盗用できるものであってはなりません。データは、正当なユーザーが必要に応じてデータを使用できるようにする必要があります。さらに、ユーザーが実行するアクティビティのレコードをシステムで保持する必要があります。

ウェアハウスには複数のソースから統合されたデータが含まれるため、情報を盗もうとする側から見ると、企業で最も利益を得られるターゲットとなる可能性があるため、セキュリティの要件はデータ・ウェアハウスでは特に重要です。さらに、強固なセキュリティ・インフラストラクチャにより、有効性が大幅に改善され、データ・ウェアハウス環境のコストが削減されます。

データ・ウェアハウスのセキュリティの一般的な顧客シナリオには次のような事例があります。

データ・ウェアハウスのセキュリティのロールおよび権限の使用

システム権限、オブジェクト権限およびロールは、基本的なデータベース・セキュリティを提供します。また、ユーザーによるデータへのアクセスを制御し、ユーザーが実行可能なSQL文の種類を制限するように設計されています。ロールは異なるレベルのデータベース・アクセスを作成するために使用できる権限のグループです。たとえば、表およびプログラムを作成できるように、アプリケーション開発者に対してロールを作成できます。

必要な権限を所有する場合にかぎり、他のユーザーに権限およびロールを付与できます。ロールおよび権限の付与は、管理者レベルで開始します。データベースの作成で管理ユーザーSYSにより、すべてのシステム権限および事前定義されたOracleロールの作成と付与が行われます。ユーザーSYSは、他のユーザーに権限およびロールを付与でき、これらを付与されたユーザーに対して、他のユーザーに特定の権限を付与する権限を付与することもできます。明示的に付与された権限がない場合、ユーザーはデータベース内のどの情報にもアクセスできません。

ロールおよび権限はデータのセキュリティを規定し、データ・ウェアハウスにとってこれらのロールおよび権限の使用は不可欠です。これは多くのアプリケーションおよびツールを介してユーザーがデータにアクセスするためです。

データ・ウェアハウスの仮想プライベート・データベースの使用

仮想プライベート・データベース(VPD)によって、表、ビューまたはシノニムで直接、粒度の細かいレベルにセキュリティを規定できます。これは、セキュリティ・ポリシーが表、ビューまたはシノニムに直接連結されており、ユーザーがデータにアクセスする際にセキュリティをバイパスする方法がない場合に自動的に適用されるためです。述語を使用する動的に付与されているSQL文によって、VPDはデータへのアクセスを低いレベルに制限し、セキュリティ・ポリシーをデータベース・オブジェクトに関連付けます。また、完全なデータ分離の保証があれば、複数のユーザーが単一のデータベース・サーバーに格納された重要なデータへ直接セキュア・アクセスできます。VPDを使用すると、銀行顧客には顧客自身のアカウント履歴のみを見せ、複数の企業(競争企業同士)のデータを扱う企業の場合は、同じデータ・ウェアハウスからデータを扱っている企業にそれぞれのデータのみを見せることができます。さらに、VPDはセキュリティ関連列への制御アクセスを提供するので、従業員は自身の給与のみを確認できるようになります。

VPDは透過アプリケーションです。セキュリティはデータベース層で規定され、データベース内でのデータ・アクセスを制御するためのアプリケーション固有のロジックを考慮します。標準のアプリケーションおよびカスタム・ビルドのアプリケーションは、アプリケーション・コードの単一行の変更を行うことなく、ファイングレイン・アクセス制御を活用できます。

Enterprise内では、VPDによりアプリケーションの配布にかかる所有コストが削減され、データにアクセスするすべてのアプリケーション内ではなくウェアハウス内にセキュリティが構築されます。セキュリティは、ユーザーによるデータへのアクセスに関係なくデータベースによって規定されているためにより強固になりましたが、非定型の問合せのツールまたは新しいレポート・ライターを介してデータへアクセスするユーザーはセキュリティを経由できません。多くのエンドユーザー・ツールと同様、様々なアプリケーションをサポートするEnterpise Data Warehouseにおいて、仮想プライベート・データベースは主要なテクノロジです。

仮想プライベート・データベースの動作方法

仮想プライベート・データベースは表、ビューまたはシノニムを使用するセキュリティ・ポリシーとの関連付けにより有効になります。管理者はPL/SQL DBMS_RLSパッケージを使用して、ポリシー・ファンクションとデータベース・オブジェクトをバインドします。連結したセキュリティ・ポリシーを使用するオブジェクトへの直接アクセスまたは間接アクセスにより、データベースはポリシーを実装したファンクションを参照します。ポリシー・ファンクションは、データベースがユーザーのSQL文に追加する述語(WHERE句)を戻します。そのため、ユーザーによるデータへのアクセスの修正は透過的で動的です。

アプリケーション・コンテキストによって、アクセス条件は組織、サブスクライバ番号、アカウント番号または地位など、データベース管理者が重要と考える事実上すべての属性に基づくことができます。たとえば、ユーザーが顧客、営業担当またはマーケティング・アナリストかどうか関係なく、売上データのウェアハウスは顧客番号に基づいたアクセスを規定できます。この場合、顧客はWeb上で注文履歴を確認でき(顧客自身の注文のみ)、営業担当は複数の注文を見ることができます(自身の企業の顧客の注文のみ)。また、アナリストの場合、過去の2四半期におけるすべての売上を分析できます。

アプリケーション・コンテキストは、特定のオブジェクトでファイングレイン・アクセス制御ポリシーに適用する可能性のあるセキュアなデータ・キャッシュとして機能します。ユーザーがデータベースにログインすると、Oracle Databaseはユーザー・セッションのキャッシュ情報にアプリケーション・コンテキストを設定します。アプリケーション・コンテキストの情報は、特定のアプリケーションに関連した情報に基づいて開発者によって定義されます。たとえば、地域別売上データを問い合せるレポート・アプリケーションは、ユーザーの地位および部門に関するアクセス制御に基づくことができます。この場合、アプリケーションはユーザーのログイン時に各ユーザーのアプリケーション・コンテキストを最初に設定し、各ユーザーの地位および部門の従業員と部署に関する表から問い合せられたデータを使用してコンテキストを移入できます。地域別売上表でVPDポリシーを実装しているパッケージは、ユーザーの地位および部門の各問合せを移入するためにこのアプリケーション・コンテキストを参照します。アプリケーション・コンテキストはパフォーマンスの劣化を引き起こす可能性のある実行中の副問合せを不要とみなします。

Oracle Label Securityの概要

Oracle Databaseのセキュリティ・オプションであるOracle Label Securityはラベルベースのアクセス制御を規定するために仮想プライベート・データベース(VPD)を拡張します。Oracle Label Securityは完全なVPD対応アプリケーションで、ラベル付きデータ管理によってVPDを拡大します。セキュアなデータ・ウェアハウスの配布を簡略化し、基本的なセキュリティを提供します。

ラベルベースのアクセス制御を使用すると、表の行に機密性ラベルが割り当てられ、これらのラベルに基づいてデータへのアクセスが制御されて、適切なセキュリティ・ラベルがマークされたデータを確認できます。たとえば、組織が企業の機密情報とパートナに関する情報を区別する場合です。または、特定の主要なパートナと共有できる機密情報、および会計部門や営業部門などの特定の企業内部のグループのみがアクセス可能な機密情報などがある場合です。ラベル・データの管理機能は、適切なデータ・アクセス・レベルで適切な人に適切な情報を提供するために組織にとって非常に有利です。

Oracle Label Securityの動作方法

Oracle Label Securityは、ラベルのコレクション、ユーザーの認可およびセキュリティ強制オプションであるポリシーを使用します。一度作成されると、ポリシーはすべてのアプリケーション・スキーマまたは特定のアプリケーション表に適用できます。Oracle Label Securityは単一のデータ・ウェアハウス内で複数のポリシー定義をサポートします。ラベル定義、ユーザーの認可および強制オプションはポリシーごとに定義されます。たとえば、マーケティングのポリシーにはマーケティングのみのラベルやマネージャおよび上級副社長などのラベルが含まれます。

Oracle Label Securityは行に含まれるラベル、各データベース・セッションと関連付けられたラベル、およびセッションに割り当てられたOracle Label Security権限に基づくデータベース表の列へのアクセスを調整します。これにより、ユーザーに標準のデータベース・システムおよびオブジェクト権限が付与された後にアプリケーション表でアクセス調整が行われます。たとえば、ユーザーに表対するSELECT権限があるとします。ユーザーが表でSELECT文を実行すると、Oracle Label Securityは選択した行を評価し、ユーザーに割り当てられた権限およびアクセス・ラベルに基づいて選択した行にアクセスできるかどうかを決定します。また、Oracle Label SecurityはUPDATE文、DELETE文およびINSERT文に対してセキュリティ・チェックも行います。ラベルは表およびマテリアライズド・ビューに適用できます。マテリアライズド・ビューによりパフォーマンスが増加し、ラベルによりセキュリティが増加するために、データ・ウェアハウス環境で目的の柔軟性、スピードおよびスケーラビリティを実現します。

データ・ウェアハウスによりラベルを利用する方法

Oracle Label Securityを使用すると、複数のソースから利便性、管理性および集中管理によって、1つの大きなシステムに情報を統合できます。このセキュリティ・オプションはアプリケーション自体で行われるので、PL/SQLプログラミングを行う必要がありません。これにより、情報の統合およびデータ自体でのセキュリティの制限によるリスクの最小化が可能になり、行レベルでのデータへのアクセス制御によって精度の高いアクセス・セキュリティが提供されます。

データ・ウェアハウスのファイングレイン監査の概要

ファイングレイン監査により、コンテンツに基づいたデータ・アクセスの監視ができます。監査するレコードの列および条件を指定でき、指定列を使用した接続で使用したDML文の特定のタイプに対する監査の制限を条件に含むことができます。また、監査イベントの発生時におけるルーチン名を指定できます。このルーチンは管理者に通知またはアラートするか、エラーおよび異常を処理できます。たとえば、中央税務当局で使用すると、納税申告へのアクセスを追跡し従業員による詮索を防止できます。特定の表でSELECT文を発行した特定のユーザーを把握するだけでは十分ではなく、日常業務に必要ではない情報にアクセスしようとする際のさらに細かいレベルでの監査が強固なセキュリティに必要です。この場合、列または行のSELECT文には仕事に無関係な情報が含まれます。ファイングレイン監査はこの機能を提供します。

ファイングレイン監査はDBMS_FGAパッケージまたはデータベース・トリガーを使用してユーザー・アプリケーションで実装できます。

データ・ウェアハウスの透過的データ暗号化の概要

透過的データ暗号化によって、オペレーティング・システムのファイルに格納されるデータとして、データベース列にある機密データを暗号化できます。データベース外部のセキュリティ・モジュールで暗号キーの管理および記憶領域をセキュアに保ちます。既存のアプリケーションに暗号化したルーチンを埋め込む必要がなく、コストおよび暗号化の複雑さを大幅に削減しました。いくつかの単純なコマンドを使用することで、機密のアプリケーション・データは暗号化されます。

多くの暗号化ソリューションは、アプリケーション・コード内の暗号化ファンクションに対する特定のコールを必要とします。これには高いコストが必要で、アプリケーションの広範囲にわたる理解、およびソフトウェアの書込みと保持の技術が要求されます。一般的に、ほとんどの組織には既存のアプリケーションを修正して暗号化ルーチンに対するコールを作成する時間や専門家が不足しています。透過的データ暗号化は、Oracle Databaseに埋め込まれた暗号化により暗号化問題を処理します。これはSQL* Loaderではなく直接パス・ロードを使用して行われることに注意してください。

SQLを介して実行されるアプリケーション・ロジックは変更することなく実行を継続します。言い換えれば、アプリケーションはアプリケーション表にデータを挿入するために同じ構文を使用でき、Oracle Databaseはディスクへ情報を書き込む前にデータを自動的に暗号化します。後続のSELECTオプションには透過的に復号化されたデータが含まれ、アプリケーションは通常の作業を継続します。


戻る 次へ
Oracle
Copyright © 2007 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引