(57)【特許請求の範囲】
【請求項１】
リレーショナルデータベースシステムへのアクセスを選択的に監査する方法であって、
該リレーショナルデータベースシステムのクエリを処理するデータベースサーバにおいて、クライアントからクエリを受信する工程を含み、該リレーショナルデータベースシステムは複数のリレーショナルテーブルを有し、リレーショナルテーブルの各々は、そのリレーショナルテーブルに対する監査がイネーブルにされているか否かを示す監査フラグを含んでおり、該方法はさらに、
リレーショナルテーブルをチェックしてそのリレーショナルテーブルに対して監査フラグがセットされているかを参照することで、監査がイネーブルにされているか否かを判断し、監査がイネーブルにされている場合には、監査条件を満たす行に対する監査記録を生成して記録させるためのモニタロジックをクエリに挿入する工程と、
該データベースサーバにおいて該クエリを処理して、クエリ結果を生成する工程と、
該クエリによってアクセスされ、かつ、監査条件を満たすリレーショナルテーブル内の行の監査記録を生成する工程と、
該監査記録を監査記録保管部に記録する工程と、
該クエリ結果を該クライアントに返す工程とを含む方法。
【請求項２】
前記クエリを処理することにより、該クエリによってアクセスされ、かつ、前記監査条件を満たす、リレーショナルテーブル内の行の前記監査記録が作成および記録されるように、該クエリを処理する前に該クエリを修正する工程をさらに含む、請求項１に記載の方法。
【請求項３】
前記監査条件は、前記リレーショナルデータベースシステム内のテーブルに関連付けられている、請求項１に記載の方法。
【請求項４】
前記監査条件は、複数の監査条件を含む、請求項１に記載の方法。
【請求項５】
前記監査記録は、
前記クエリを行っているユーザのユーザ名と、
該クエリの時間を指定する時間スタンプと、
該クエリのテキストとを含む、請求項１に記載の方法。
【請求項６】
前記監査記録を生成する工程は、
監査がイネーブルにされているか否かを判定する工程と、
監査がイネーブルにされている場合に、該監査記録を生成する工程とを含む、請求項１に記載の方法。
【請求項７】
監査は、テーブルごとにテーブル上でイネーブルにされる、請求項６に記載の方法。
【請求項８】
前記監査記録は、前記クエリ結果が生成されている間に生成される、請求項１に記載の方法。
【請求項９】
前記監査記録は、前記クエリ結果が生成された後に生成される、請求項１に記載の方法。
【請求項１０】
前記監査条件は、前記リレーショナルデータベースシステム内のフィールドの条件を含む、請求項１に記載の方法。
【請求項１１】
命令を格納したコンピュータ読み出し可能記憶媒体であって、該命令は、コンピュータによって実行された場合、リレーショナルデータベースシステムへのアクセスを選択的に監査する方法を該コンピュータに実行させ、該方法は、
該リレーショナルデータベースシステムのクエリを処理するデータベースサーバにおいて、クライアントからクエリを受信する工程を含み、該リレーショナルデータベースシステムは複数のリレーショナルテーブルを有し、リレーショナルテーブルの各々は、そのリレーショナルテーブルに対する監査がイネーブルにされているか否かを示す監査フラグを含んでおり、該方法はさらに、
リレーショナルテーブルをチェックしてそのリレーショナルテーブルに対して監査フラグがセットされているかを参照することで、監査がイネーブルにされているか否かを判断し、監査がイネーブルにされている場合には、監査条件を満たす行に対する監査記録を生成して記録させるためのモニタロジックをクエリに挿入する工程と、
該データベースサーバにおいて該クエリを処理して、クエリ結果を生成する工程と、
該クエリによってアクセスされ、かつ、監査条件を満たすリレーショナルテーブル内の行の監査記録を生成する工程と、
該監査記録を監査記録保管部に記録する工程と、
該クエリ結果を該クライアントに返す工程とを含む、コンピュータ読み出し可能記憶媒体。
【請求項１２】
前記方法は、前記クエリを処理することにより、該クエリによってアクセスされ、かつ、前記監査条件を満たす、リレーショナルテーブル内の行の前記監査記録が作成および記録されるように、該クエリを処理する前に該クエリを修正する工程をさらに含む、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１３】
前記監査条件は、前記リレーショナルデータベースシステム内のテーブルに関連付けられている、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１４】
前記監査条件は、複数の監査条件を含む、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１５】
前記監査記録は、
前記クエリを行っているユーザのユーザ名と、
該クエリの時間を指定する時間スタンプと、
該クエリのテキストとを含む、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１６】
前記監査記録を生成する工程は、
監査がイネーブルにされているか否かを判定する工程と、
監査がイネーブルにされている場合に、該監査記録を生成する工程とを含む、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１７】
監査は、テーブルごとにテーブル上でイネーブルにされる、請求項１６に記載のコンピュータ読み出し可能記憶媒体。
【請求項１８】
前記監査記録は、前記クエリ結果が生成されている間に生成される、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項１９】
前記監査記録は、前記クエリ結果が生成された後に生成される、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項２０】
前記監査条件は、前記リレーショナルデータベースシステム内のフィールドの条件を含む、請求項１１に記載のコンピュータ読み出し可能記憶媒体。
【請求項２１】
リレーショナルデータベースシステムへのアクセスを選択的に監査する装置であって、
該リレーショナルデータベースシステムのクエリを処理するデータベースサーバを備えみ、該リレーショナルデータベースシステムは複数のリレーショナルテーブルを有し、リレーショナルテーブルの各々は、そのリレーショナルテーブルに対する監査がイネーブルにされているか否かを示す監査フラグを含み、該装置はさらに、
該データベースサーバにおいて、クライアントからクエリを受信するように構成されるとともに、リレーショナルテーブルをチェックしてそのリレーショナルテーブルに対して監査フラグがセットされているかを参照することで、監査がイネーブルにされているか否かを判断し、監査がイネーブルにされている場合には、監査条件を満たす行に対する監査記録を生成して記録させるためのモニタロジックをクエリに挿入する受信機構と、
該データベースサーバにおいて該クエリを処理して、クエリ結果を生成するように構成されたクエリプロセッサと、
監査機構とを備え、該監査機構は、
該クエリによってアクセスされ、かつ、監査条件を満たすリレーショナルテーブル内の行の監査記録を生成し、
該監査記録を監査記録保管部に記録するように構成されており、該装置はさらに、
該クエリ結果を該クライアントに返すリターン機構を備える、装置。
【請求項２２】
前記クエリを処理することにより、該クエリによってアクセスされ、かつ、前記監査条件を満たす、リレーショナルテーブル内の行の前記監査記録が作成および記録されるように、該クエリを処理する前に該クエリを修正するように構成されたクエリ修正機構をさらに備える、請求項２１に記載の装置。
【請求項２３】
前記監査条件は、前記リレーショナルデータベースシステム内のテーブルに関連付けられた、請求項２１に記載の装置。
【請求項２４】
前記監査条件は、複数の監査条件を含む、請求項２１に記載の装置。
【請求項２５】
前記監査記録は、
前記クエリを行っているユーザのユーザ名と、
該クエリの時間を指定する時間スタンプと、
該クエリのテキストとを含む、請求項２１に記載の装置。
【請求項２６】
前記監査機構は、
監査がイネーブルにされているか否かを判定し、
監査がイネーブルにされている場合に、前記監査記録を生成するように構成されている、請求項２１に記載の装置。
【請求項２７】
前記監査機構は、テーブルごとにテーブル上で監査をイネーブルにするように構成されている、請求項２６に記載の装置。
【請求項２８】
前記監査機構は、前記クエリ結果が生成されている間に前記監査記録を生成するように構成されている、請求項２１に記載の装置。
【請求項２９】
前記監査機構は、前記クエリ結果が生成された後に前記監査記録を生成するように構成されている、請求項２１に記載の装置。
【請求項３０】
前記監査条件は、前記リレーショナルデータベースシステム内のフィールドの条件を含む、請求項２１に記載の装置。
【発明の詳細な説明】
【０００１】
（背景）
（発明の分野）
本発明は、コンピュータ化されたデータベースにおけるセキュリティの提供に関する。具体的には、本発明は、監査条件に基づいてリレーショナルデータベーステーブルへのアクセスを選択的に監査する方法および装置に関する。
【０００２】
（関連技術）
データベースは通常、給料、企業の金融データ、さらには極秘の軍事機密などの非常に機密性の高いデータを格納する。セキュリティの理由から、この機密性の高いデータへのアクセスを監査することが可能であることが不可欠である。従来のデータベースシステムは通常、ユーザに関する一般情報および発行されたクエリを含む監査追跡を記録する通常の監査設備を提供する。
【０００３】
しかし、従来の監査設備は複数の弱点を有する。従来の監査設備は、アプリケーション、セッション環境または最も重要には、クエリ結果に関する特定の情報を記録しない。結果的に、従来の監査設備によって収集された情報は、イベントを再構築するに不十分、またはさらには、アクセス権を違反しているか否かを判定するに不十分であることが多い。
【０００４】
従来のリレーショナルデータベースシステムにおいて、監査設備は、どのテーブルがアクセスされたかに関する情報のみを記録し、所与のテーブル内の特定の行がアクセスされたか否かに関する情報は記録しない。このテーブルレベルの監査は、所与のテーブルへの多くのアクセスが機密性の高いデータに触れないため、大量の偽の監査記録を生成する傾向にある。
【０００５】
必要なのは、関連テーブルへのアクセスの間、より細かい粒度（ｇｒａｎｕｌａｒｉｔｙ）監査条件を指定して、生成される偽の監査記録の数を最小限に抑える監査機構である。
【０００６】
データベースアクセスを監査する際の別の問題は、分散型データベースアーキテクチャにおいて生じる。このアーキテクチャにおいて、アプリケーションサーバ上に設けられたアプリケーションは、データベースサーバ上に設けられたデータベースにクエリを送信する。このタイプの分散型アーキテクチャにおいて、監査は通常、カスタマイズされた監査機構を、データベースサーバではなく、アプリケーションサーバ上のアプリケーションに埋め込むことによって実行される。大量のアプリケーションが潜在的にデータベースにアクセスし得るため、監査を実行するアプリケーションに依存することにより、多くの問題が生じ得る。この結果、これらのアプリケーションの各々１つが監査を正確に実行するように構成されていることを保証することがほぼ不可能である。
【０００７】
必要なのは、監査を実行するためにデータベースサーバ外部のアプリケーションに依存しないデータベースアクセスの監査機構である。
【０００８】
（要旨）
本発明の一実施形態は、リレーショナルデータベースシステムへのアクセスを選択的に監査するシステムを提供する。このシステムは、データベースサーバにおいてクライアントからクエリを受信することによって開始する。上記システムは、上記データベースサーバにおいてこのクエリを処理してクエリ結果を生成する。上記システムは、上記クエリによってアクセスされ、かつ、監査条件を満たす関連テーブル内の行の監査記録も作成する。次に、上記システムは、上記監査記録を監査記録保管部に記録して、上記クエリ結果を上記クライアントに返す。このように上記監査設備を上記リレーショナルデータベースシステム内に統合すると、どのアプリケーションが上記クエリを生成するかに関わらず、監査が同様に実行されることが保証される。さらに、この監査はアプリケーションおよびユーザに対してトランスペアレントである。
【０００９】
本発明の一実施形態において、上記システムはさらに、上記クエリを処理することにより、上記クエリによってアクセスされ、かつ、上記監査条件を満たす、関連テーブル内の行の上記監査記録が作成および記録されるように、上記クエリを修正する。この実施形態の変形において、上記監査条件は上記リレーショナルデータベースシステム内のテーブルに関連付けられる。
【００１０】
本発明の一実施形態において、上記監査条件は複数の監査条件を含む。
【００１１】
本発明の一実施形態において、上記監査記録は、上記クエリを行っているユーザのユーザ名と、上記クエリの時間を指定する時間スタンプと、上記クエリのテキストとを含む。
【００１２】
本発明の一実施形態において、上記システムは、監査がイネーブルにされているか否かを判定し、そして監査がイネーブルにされている場合に、上記監査記録を生成する。
【００１３】
本発明の一実施形態において、監査はテーブルごとにテーブル上でイネーブルにされる。
【００１４】
本発明の一実施形態において、上記監査記録は、上記クエリ結果が生成されている間に生成される。
【００１５】
本発明の一実施形態において、上記監査記録は、上記クエリ結果が生成された後に生成される。
【００１６】
本発明の一実施形態において、上記監査条件は、上記リレーショナルデータベースシステム内のフィールドの条件を含む。
【００１７】
（詳細な説明）
以下の説明を提示して、当業者が本発明を製造および使用することを可能にする。以下の説明を特定の用途およびその要件のコンテキストにおいて提供する。開示する実施形態への種々の改変は当業者に容易に理解され、本明細書において規定する概括的な原理は、本発明の意図および範囲から逸脱しない場合、他の実施形態および用途に適用され得る。したがって、本発明は、図示する実施形態に限定されることを意図せず、本明細書において開示する原理および特徴と一致する最も広い範囲に従うことを意図する。
【００１８】
詳細な説明において説明するデータ構造およびコードは通常、コンピュータ読み出し可能記憶媒体上に格納される。コンピュータ読み出し可能記憶媒体は、コンピュータシステムによって用いられるコードおよび／またはデータを格納し得る任意のデバイスまたは媒体であり得る。これは、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）およびＤＶＤ（デジタルビデオディスク）などの磁気記憶デバイスおよび光記憶デバイス、ならびにキャリア波（この上で信号が変調される）を用いてまたは用いずに、伝送媒体に統合されたコンピュータ命令信号を含む（但し、これらに限定されない）。例えば、伝送媒体は、インターネットなどの通信ネットワークを含み得る。
【００１９】
（分散型演算システム）
図１は、本発明の一実施形態による分散型演算システム１００を示す。分散型演算システム１００は、クライアント１０２〜１０４、アプリケーションサーバ１０８およびデータベースサーバ１１０を含む複数のコンピュータシステム（ノード）を含む。コンピュータシステム１０２〜１０４、１０８および１１０は通常、任意のタイプのコンピュータシステムを含み得る。このコンピュータシステムは、マイクロプロセッサに基づいたコンピュータシステム、メインフレームコンピュータ、デジタル信号プロセッサ、自己管理手帳、デバイスコントローラ、および装置内の演算エンジンを含む（但し、これらに限定されない）。
【００２０】
コンピュータシステム１０２〜１０４、１０８および１１０は、コンピュータネットワーク（図示せず）によって結合される。このコンピュータネットワークは、演算ノードを結合することが可能な、任意のタイプの有線通信チャンネルまたは無線通信チャンネルを含み得る。このコンピュータネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、またはネットワークの組み合わせを含む（但し、これらに限定されない）。本発明の一実施形態において、このネットワークはインターネットを含む。
【００２１】
クライアント１０２〜１０４は、演算能力を含み、そしてネットワークを介して通信する機構を含む、ネットワーク上の任意のノードを含み得る。図１に示す本発明の実施形態において、クライアント１０２〜１０４は、アプリケーションサーバ１０８上に設けられたアプリケーション１０７と通信する。次いで、アプリケーション１０７は、データベースサーバ１１０上のリレーショナルデータベース１０９と通信する。アプリケーションサーバ１０８およびデータベースサーバ１１０は、クライアントからのリクエストを演算リソースおよび／またはデータ格納リソースにサービスする機構を含むコンピュータネットワーク上の任意のノードを含み得る。アプリケーションサーバ１０８は、データベースサーバ１１０のクライアントとして機能することに留意されたい。
【００２２】
データベースサーバ１１０はリレーショナルデータベース１０９を含む。リレーショナルデータベース１０９は通常、関連テーブル周辺に設計された任意のタイプのデータベースシステムを含み得る。リレーショナルデータベース１０９内には、クエリプロセッサ１２０および監査機構１２２を含む複数の機構が存在する。クエリプロセッサ１２０は、テーブル１１４およびテーブル１１６を含む複数の関連テーブル１１３上で動作する。監査機構１２２は、監査記録を監査記録保管部１１８に記録する。
【００２３】
テーブル１１３および監査記録保管部１１８は、データベースサーバ１１０によって制御される記憶デバイス１１２上に常駐することに留意されたい。記憶デバイス１１２は、磁気記憶デバイス、光学記憶デバイスおよび／または磁気光学記憶デバイスに基づいた不揮発性記憶デバイスなどの、任意のタイプの不揮発性記憶デバイスを含み得る。記憶デバイス１１２は、フラッシュメモリまたはバッテリによってバックアップされるランダムアクセスメモリに基づいた不揮発性の半導体記憶デバイスも含み得る。テーブル１１３および監査記憶保管部１１８の選択された部分のコピーもデータベースサーバ１１０内のメモリ内に存在し得る。
【００２４】
（テーブル構造）
図２は、本発明の一実施形態によるリレーショナルデータベース１０９内のテーブル１１４の構造を示す。テーブル１１４は、種々のフィールドを含む複数の行を含む、リレーショナルデータベース内の典型的なテーブルと同じ構造を有する。
【００２５】
テーブル１１４は、監査がこのテーブルにイネーブルにされているか否かを示す低レベルの監査フラグ２０６も含む。本発明の別の実施形態において、システムは、リレーショナルデータベース１０９全体の行レベルの監査をイネーブルにする、データベース全体にわたった行レベルの監査フラグを含む。
【００２６】
テーブル１１４はさらに、監査条件２０２「ｓａｌａｒｙ＞１，０００，０００」および監査条件２０４「ｔｉｔｌｅ＝’ＣＥＯ’」を含む複数の監査条件に関連付けられる。監査条件２０２および２０４は、１，０００，０００より大きい値を有する給料フィールドを含むか、またはＣＥＯを指定するタイトルフィールドを含むテーブル１１４内でアクセスされた任意の行の監査記録を生成するようにリレーショナルデータベース１０９に命令する。これらの監査条件のいずれも満たさないテーブル１１４内の他の行にアクセスすると、監査記録は生成されない。
【００２７】
（クエリを監査するプロセス）
図３は、本発明の一実施形態によるクエリを監査するプロセスを示すフローチャートである。システムは、アプリケーションサーバ１０８内のアプリケーション１０７から、データベースサーバ１１０内のリレーショナルデータベース１０９においてクエリ１２３を受信することによって開始する（工程３０２）。
【００２８】
システムはまず、クエリによって参照されるすべてのテーブルをチェックして、監査フラグがそのテーブルに設定されているかをチェックすることによって監査がイネーブルにされているか否かを判定する（工程３０３）。監査がイネーブルされていない場合、システムは通常通りクエリ１２３を処理して、クエリ結果１２４を生成し（工程３０５）、次いで、クエリ結果１２４を返す（工程３１４）。
【００２９】
監査がイネーブルされると、システムは、モニタリング論理をクエリ１２３に挿入することによって、クエリを修正する（工程３０４）。このモニタリング論理により、監査条件を満たすあらゆる行の監査記録が生成され、そして記録される。
【００３０】
本発明の一実施形態において、クエリ１２３にステートメントを挿入して、テーブル内の行が監査条件を満たす場合に、監査記録を生成および記録する関数をクエリ１２３に呼び出させることによって、クエリ１２３を修正する。
【００３１】
本発明の別の実施形態において、修正クエリ１２３は２つの別個のクエリを生成することに関与する。第１のクエリはさらに、監査条件に基づいた制約を含む。このクエリは監査条件を満たす行のみの監査記録を生成する。第２のクエリは最初のクエリから修正されず、クエリ結果を生成するために用いられる。
【００３２】
本発明の一実施形態において、監査条件はリレーショナルデータベース１０９全体に対して指定される。別の実施形態において、監査条件はテーブルごとに指定される。
【００３３】
次に、最適化層はビューの合成を実行し（工程３０５）、システムはクエリ１２３を処理してクエリ結果１２４を生成する（工程３０６）。このようにして、システムは、クエリ１２３によってアクセスされ、かつ、監査条件を満たす行の監査記録を生成する（工程３１０）。あるいは、後に第２のクエリを実行して監査記録を生成することによって、監査記録を生成し得る。
【００３４】
監査記録はクエリを行っているユーザのユーザ名、クエリの時間を指定する時間スタンプ、クエリのテキストおよびクエリに特定の変数結合（ｖａｒｉａｂｌｅ  ｂｉｎｄｉｎｇｓ）を含むことに留意されたい。
【００３５】
次いで、システムは、監査記録保管部１１８に監査記録を記録し（工程３１２）、次いで、クエリ結果１２４をアプリケーション１０７に返す（工程３１４）。
【００３６】
（クエリを再編成するプロセス）
図４は、本発明の一実施形態による監査を目的としてクエリを再編成するプロセスを示すフローチャートである。システムは、リレーショナルデータベース１０９においてクエリ１２３を受信することによって開始する（工程４０２）。システムは次に、テーブル１１４に関連付けられた監査条件２０２および２０４など、クエリ１２３に含まれた、テーブル用に存在し得る任意の監査条件を取り出す（工程４０４）。
【００３７】
クエリ１２３が、削除ステートメント、挿入ステートメントまたは更新ステートメントなどのリレーショナルデータベース１０９内のテーブルを修正するステートメントを含む場合、システムは、データベースシステム内に既存のトリガーを用いて、これらのステートメントの監査記録を作成する（工程４０５）。データベースシステムは通常、データベーステーブルへのログ変更を保持するため、ログに加えて、これらの変更に対する監査機構を提供することは不必要であり得ることに留意されたい。次いで、システムはクエリ１２３を処理してクエリ結果１２４を生成する（工程４１８）。
【００３８】
クエリ１２３が選択ステートメントを含む場合、システムは、ビュー拡大機構を用いて、各監査条件のクエリ１２３にケースステートメントを付加する（工程４０６）。例えば、監査条件がＤＥＰＴ＝’ＳＡＬＥＳ’であると仮定すると、クエリ１２３は、
ＳＥＬＥＣＴ＊ＦＲＯＭ  ｐａｙｒｏｌｌ  ＷＨＥＲＥ  ｓａｌａｒｙ＞１５０，０００
システムは選択ステートメントにケースステートメントを以下のように付加する。
【００３９】
ＳＥＬＥＣＴ＊ＦＲＯＭ
（
ＳＥＬＥＣＴ＊ＦＲＯＭ  ｐａｙｒｏｌｌ
ＷＨＥＲＥ（ＣＡＳＥ  ＷＨＥＮ（ｄｅｐｔ＝’ｓａｌｅｓ’）ＴＨＥＮ  ＳＹＳ＿ＡＵＤＩＴ（）
ＥＬＳＥ  ＮＯＴ  ＮＵＬＬ  ＥＮＤ）ＩＳ  ＮＯＴ  ＮＵＬＬ
）
ＷＨＥＲＥ  ｓａｌａｒｙ＞１５０，０００
この例において、監査条件が満たされた場合に、ケースステートメントにより、ＳＹＳ＿ＡＵＤＩＴ（）関数が呼び出される。このＳＹＳ＿ＡＵＤＩＴ（）関数により、監査記録が作成および記録される。
【００４０】
関数ＳＹＳ＿ＡＵＤＩＴ（）は、（ＳＹＳ＿ＡＵＤＩＴ（）内でエラー状態が生じない限り）常にＮＯＴ  ＮＵＬＬに返ることに留意されたい。したがって、述語は常にＴＲＵＥと評価される。したがって、述語はクエリ１２３の論理に影響を与えず、述語はクエリ１２３に安全に適用され得る。
【００４１】
次に、クエリプロセッサはクエリ１２３にバッファを割り当てることが可能になる（工程４０８）。バッファが割り当てられた後、システムはクエリ１２３からケースステートメントを排除する（工程４１０）。本発明の一実施形態において、これは、クエリブロックデータ構造内の一時的な位置に、クエリ１２３のすべてのメタ情報を含む述語を指すクエリフィルタリストデータ構造を移動させることに関与する。このように述語を移動させると、最適化プログラムが、ＣＡＳＥ文節およびクエリプラン層を再組織化して、ＣＡＳＥ節に行ソースを割り当てることが防止される。
【００４２】
最適化の後、システムは、クエリ１２３のクエリプランを生成して、クエリ１２３に含まれる動作が実行される順序を指定する（工程４１２）。
【００４３】
クエリプランが生成された後（しかし、存在し得る任意の「ＧＲＯＵＰ  ＢＹ」文節の実行プランを生成する前）、クエリ１２３内のすべての先行する条件を満たす行に対してのみ、ケースステートメントが評価されるように、システムはケースステートメントの実行プランを生成する（工程４１４）。このように、監査記録はクエリ１２３によってアクセスされる行に対してのみ生成される。次に、システムは、クエリ１２３を処理して、クエリ結果１２４を生成する（工程４１８）。これにより、各行に対して、クエリ１２３の条件および監査条件を満たす監査記録が生成（工程４２０）および記録（工程４２２）される。
【００４４】
最後に、システムは、クエリ１２３を発行したエンティティにクエリ結果１２４を返す（工程４２４）。
【００４５】
本発明の実施形態の上述の説明を、例示および説明を目的としてのみ提示してきた。上述の説明は、包括的であることも、本発明を開示する形態に限定することも意図しない。したがって、多くの改変および変形が当業者に明らかである。さらに、上述の開示は本発明を限定することを意図しない。本発明の範囲は上掲の特許請求の範囲によって規定される。
【図面の簡単な説明】
【図１】    図１は、本発明の一実施形態による分散型演算システムを示す。
【図２】  図２は、本発明の一実施形態によるリレーショナルデータベース内のテーブルを示す。
【図３】  図３は、本発明の一実施形態によるクエリを監査するプロセスを示すフローチャートである。
【図４】  図４は、本発明の一実施形態による監査を目的としてクエリを再編成するプロセスを示すフローチャートである。
【図１】
0004716635.tif 000002
【図２】
0004716635.tif 000003
【図３】
0004716635.tif 000004
【図４】
0004716635.tif 000005