JP2023152910A - コンピュータ実装方法、コンピュータプログラム、システム(データベース監査の精度及び効率を改善するための構造化監査ログの活用) - Google Patents
コンピュータ実装方法、コンピュータプログラム、システム(データベース監査の精度及び効率を改善するための構造化監査ログの活用) Download PDFInfo
- Publication number
- JP2023152910A JP2023152910A JP2023052304A JP2023052304A JP2023152910A JP 2023152910 A JP2023152910 A JP 2023152910A JP 2023052304 A JP2023052304 A JP 2023052304A JP 2023052304 A JP2023052304 A JP 2023052304A JP 2023152910 A JP2023152910 A JP 2023152910A
- Authority
- JP
- Japan
- Prior art keywords
- data
- database
- record
- structured
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012550 audit Methods 0.000 title claims abstract description 316
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004590 computer program Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 13
- 230000014509 gene expression Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 54
- 238000004458 analytical method Methods 0.000 description 32
- 230000009471 action Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 241000282813 Aepyceros melampus Species 0.000 description 2
- 241000282412 Homo Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 1
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】データベース監査の精度及び効率を改善するコンピュータ実装方法、システム及びコンピュータプログラムを提供する。【解決手段】方法は、データベースのテーブル、リスト又はインデックスを解析して、時系列データ、ユーザデータ、インターネットプロトコルアドレス及びオペレーションデータを含むメタデータを識別する。識別されたメタデータが抽出されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付けられ、対応するデータオペレーションに基づき、解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかに関する決定が行われ、識別されたメタデータ及び記録されたデータ画像は、構造化監査ログに記憶され、クエリに関連付けられたレコード又は行識別子(RID)と、構造化監査ログに関連付けられたRIDとの一致に基づき、構造化監査ログから監査情報を取得する。【選択図】図4
Description
本開示は、概して、データベース監査に関し、より具体的には、データベース監査の精度及び効率を改善するための構造化監査ログの活用に関する。
データベース監査とは、選択されたユーザデータベースアクションの監視及び記録である。それは、実行されたSQLステートメントの種類のような個々のアクション、又はユーザ名、アプリケーション、時間などのようなファクタの組み合わせに基づき得る。
そのような監査は、通常、特定のスキーマ、テーブル、又は行において行われた、又は特定のコンテンツに影響をもたらす現在のアクションに対する将来的なアカウンタビリティを可能にするために使用されている。さらに、そのような監査は、そのアカウンタビリティに基づき、ユーザ(又は他者)の不適切なアクションを阻止するために使用されてよい。また、そのような監査により、不審なアクティビティを調査することが可能となる。例えば、あるユーザがテーブルからデータを削除する場合、セキュリティ管理者は、データベースへのすべての接続、及びデータベースにおけるすべてのテーブルからのすべての成功した、及び失敗した行の削除を監査する決定を下すことがある。加えて、そのような監査は、特定のデータベースアクティビティに関するデータを監視及び収集するために使用されてよい。例えば、どのテーブルが更新されているか、論理入力/出力オペレーションが何回実行されているか、又はピーク時に接続している同時ユーザの数に関する統計が収集され得る。さらに、そのような監査は、認可又はアクセス制御の実装に関する問題を検出するために使用されてよい。
そのようなデータベース監査の用途に基づき、データベースのどの行及び列が、誰によっていつアクセスされたかを特定することが重要である。残念ながら、特にNoSQL(非構造化クエリ言語(non-structured query language(SQL)))データベースの場合、そのような情報は、容易に追跡及び記録されない。
NoSQLデータベースは、リレーショナルデータベースにおいて使用される表形式の関係とは異なる手段でモデル化されたデータの記憶及び取得のためのメカニズムを提供する。NoSQLデータベースにより使用されるデータ構造(例えば、キーと値のペア)は、リレーショナルデータベースにおいてデフォルトで使用されるそれらとは異なり、NoSQLにおけるいくつかのオペレーションを高速化する。さらに、NoSQLデータベースは、非構造化ストレージを使用しており、これにより大量の情報を高性能かつ俊敏に処理することが可能である。例えば、NoSQLデータベースは、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶し得る。しかしながら、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶することにより、そのようなデータベースの監査に困難が生じている。
現状では、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、監査プラグインが使用されることがある。残念ながら、データオペレーション(例えば、更新オペレーション、読取オペレーション)のみが記録される。監視及び記録されるデータが限定的である結果として、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において監査は不十分である。
代替的に、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、テンポラルテーブルが使用されることがある。残念ながら、いくつかのオペレーションは記録されない。監査プラグインを使用するシナリオと同様に、テンポラルテーブルを使用する結果として、監視及び記録されるデータが限定的となり、それゆえに、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において、監査が不十分となる結果が生じている。さらに、テンポラルテーブルの使用は、特に、データベース上での頻繁な読取、追加、削除、及び更新オペレーションを伴う場合に、時間を要し、非効率的である。加えて、トランザクションの並行処理(重複する時間中に同じデータベースの行にアクセスするなどの2つのトランザクションの同時実行)におけるダーティリードデータなどの特定の情報を取得するという要求を、テンポラルテーブルを用いて達成できないことがある。
したがって、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明を可能にするような効率的な方法で、データベースアクションを効果的に監査するための手段は、現状において存在しない。
本開示の一実施形態では、データベース監査の精度及び効率を改善するためのコンピュータ実装方法は、メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する段階、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(Internet Protocol,IP)アドレス及びオペレーションデータを有する、を備える。本方法は、前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける段階をさらに備える。加えて、本方法は、対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する段階を備える。さらに、本方法は、前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する段階を備える。
このようにして、構造化監査ログの活用により、データベース監査の精度及び効率が改善される。
本開示の別の実施形態では、データベース監査の精度及び効率を改善するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、具現化されたプログラムコードを有する1又は複数のコンピュータ可読記憶媒体を備え、前記プログラムコードは、メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する手順、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む、のためのプログラミング命令を有する。前記プログラムコードは、前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける手順のためのプログラミング命令をさらに有する。前記プログラムコードは加えて、対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する手順のためのプログラミング命令を有する。さらに、前記プログラムコードは、前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する手順のためのプログラミング命令を有する。
このようにして、構造化監査ログの活用により、データベース監査の精度及び効率が改善される。
本開示のさらなる実施形態において、システムは、データベース監査の精度及び効率を改善するためのコンピュータプログラムを記憶するためのメモリ及び前記メモリに接続されたプロセッサを備える。前記プロセッサは、メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する手順、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む、を有する前記コンピュータプログラムのプログラム命令を実行するように構成されている。前記プロセッサはさらに、前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける手順を有する前記コンピュータプログラムのプログラム命令を実行するように構成されている。前記プロセッサは加えて、対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する手順を有する前記コンピュータプログラムのプログラム命令を実行するように構成されている。さらに、前記プロセッサは、前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する手順を有する前記コンピュータプログラムのプログラム命令を実行するように構成されている。
このようにして、構造化監査ログの活用により、データベース監査の精度及び効率が改善される。
上述は、以下に続く本開示の詳細な説明がより良好に理解され得るために、本開示の1又は複数の実施形態の特徴及び技術的な利点をかなり一般的に概略している。本開示の追加の特徴及び利点は、以降で説明されることになり、本開示の特許請求の範囲の主題を形成し得る。
以下の詳細な説明が以下の図面と併せて考慮されると、本開示のより良好な理解が得られ得る。
背景技術の項において述べた通り、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明を可能にするような効率的な方法で、データベースアクションを効果的に監査するための手段は、現状において存在しない。
本開示の実施形態は、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明のための構造化監査ログを構築及び使用するための手段を提供する。これら及び他の特徴のより詳細な説明は、以下で提供される。
本開示のいくつかの実施形態では、本開示は、データベース監査の精度及び効率を改善するためのコンピュータ実装方法、システム及びコンピュータプログラム製品を備える。本開示の一実施形態では、データベースのテーブル、リスト又はインデックスを解析して、時系列データ、ユーザデータ、インターネットプロトコルアドレス及びオペレーションデータを含むメタデータを識別する。本明細書において使用される「メタデータ」とは、他のデータに関する情報を提供するデータを指す。本明細書において使用される「時系列データ」とは、データベースのテーブル、リスト又はインデックスからの情報を更新、挿入、削除等するためにクエリが発行された特定の順序を指す。本明細書において使用される「ユーザデータ」とは、データベースのテーブル、リスト又はインデックスのレコード又は行にアクセスするためのクエリを発行した特定のユーザの識別子を指す。本明細書において使用される「インターネットプロトコル(IP)アドレス」とは、データベースなどのデバイスに割り当てられた一意の識別子を指す。本明細書において使用される「オペレーションデータ」とは、コンピューティングデバイスのユーザが発行したクエリによって、データベース上での実行を要求されているオペレーションを指す。一実施形態では、そのようなオペレーションは、更新オペレーション、削除オペレーション、読取オペレーション、データ定義言語オペレーション(構造化クエリ言語におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される)、バッチデータ操作言語オペレーション(データベースのテーブル、リスト又はインデックスの複数のレコード又は行の操作に使用される)等を含む。識別されたメタデータは、当該メタデータが抽出されたデータベースのテーブル、リスト又はインデックスの対応するレコード又は行に関連付けられている。その後、対応するデータオペレーションに基づき、データベースの解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかに関する決定が行われる。本明細書において使用される「生データ画像」又は「データ画像」とは、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの画像を指す。例えば、データオペレーションの結果として生じるデータのデータ画像は、更新又は挿入オペレーションに応答して記録されることがある。しかしながら、データオペレーションの結果として生じるデータのデータ画像は、並行トランザクションが存在する場合を除き、削除オペレーションに応答して、又は読取/クエリオペレーションに応答して記録されないことがある。その後、識別されたメタデータ及び記録されたデータ画像は、これらが存在する場合、そのような構造化情報が取得されたデータベース上の解析されたテーブル、リスト又はインデックスのレコード又は行のレコード又は行識別子に関連付けられた「構造化監査ログ」に記憶される。本明細書において使用される「構造化監査ログ」とは、上述の監査情報(例えば、メタデータ、記録されたデータ画像等)を記憶するデータ構造を指す。一実施形態では、構造化監査ログは、データベース管理システムの記憶デバイス(例えば、メモリ、ディスクユニット)に記憶され、データベースを監査するための将来のクエリは、データベースに関する監査情報を取得するために、そのような記憶された構造化監査ログにアクセスし得る。一実施形態では、適切な監査情報は、クエリに関連付けられた行又はレコード識別子と、要求されたデータベース監査情報を含む構造化監査ログに関連付けられたレコード又は行識別子との一致に基づき、記憶された構造化監査ログから取得される。このようにして、構造化監査ログの活用により、データベース監査の精度及び効率が改善される。
以下の説明において、本開示の深い理解を提供するために多くの具体的な詳細が記載される。しかしながら、そのような具体的な詳細がなくても本開示が実践され得ることが当業者には明らかとなる。他の事例では、不要な詳細で本開示を不明瞭にしないように、周知の回路は、ブロック図の形式で示されている。ほとんどの場合、タイミングの考慮事項等に関する詳細は、そのような詳細が本開示の完全な理解を得るのに必要ではない限り、及び関連技術における当業者の技能の範囲内である限り、省略されている。
ここで図面を詳細に参照すると、図1は、本開示の原理を実践する通信システム100の本開示の一実施形態を示している。通信システム100は、ネットワーク103を介してデータベース管理システム102に接続されたコンピューティングデバイス101を含む。さらに、図1に示すように、データベース管理システム102は、データベース104(例えば、NoSQLデータベース)に接続されている。
コンピューティングデバイス101は、ネットワーク103に接続し、その結果として他のコンピューティングデバイス101及びデータベース管理システム102と通信する能力を有するように構成された任意の種類のコンピューティングデバイス(例えば、ポータブルコンピューティングユニット、パーソナルデジタルアシスタント(Personal Digital Assistant,PDA)、ラップトップコンピュータ、モバイルデバイス、タブレットパーソナルコンピュータ、スマートフォン、携帯電話、ナビゲーションデバイス、ゲーム機、デスクトップコンピュータシステム、ワークステーション、インターネット機器など)であってよい。なお、コンピューティングデバイス101及びコンピューティングデバイス101のユーザの両方が、要素番号101で識別され得る点に留意されたい。
ネットワーク103は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、ワイヤレスワイドエリアネットワーク、回路交換電話網、モバイル通信用グローバルシステム(GSM(登録商標):Global System for Mobile Communications)ネットワーク、ワイヤレスアプリケーションプロトコル(WAP)ネットワーク、WiFiネットワーク、IEEE802.11標準規格ネットワーク、これらの様々な組み合わせ等であってよい。本開示の範囲から逸脱することなく、他のネットワーク(その説明はここでは簡潔性のために省略される)も、図1のシステム100と併せて使用されてもよい。
一実施形態では、コンピューティングデバイス101のユーザは、データベース104からの情報を更新、挿入、削除等するために、データベース管理システム102にクエリ(例えば、構造化クエリ言語(SQL)クエリ、クエリJSON(JavaScript(登録商標)Object Notation)オブジェクト)を発行する。例えば、ユーザは、データベース104においてテーブルにデータの新たな行を追加するためにINSERT INTOのクエリを発行してよい。そのようなクエリは、データベース管理システム102により処理され、ユーザが要求したデータの記憶及び取得などが行われる。
一実施形態では、データベース管理システム102は、リレーショナルデータベース又はNoSQLデータベースなどのデータベース104を維持するように構成されている。一実施形態では、データベース管理システム102は、データベース104を照会する、及び維持するために構造化クエリ言語(SQL)を使用するように構成されたSQLサーバに対応している。一実施形態では、データベース管理システム102は、NoSQLデータベース104において記憶されたクエリJSON(JavaScript(登録商標)Object Notation)データ(例えば、JSONオブジェクト)を照会するように構成されたサーバに対応している。
一実施形態では、データベース管理システム102は、以下でさらに論述する通り、データベース104のデータアクセスの正確な証明のために構造化監査ログを構築及び使用するように構成されている。一実施形態では、そのような構造化監査ログは、該当する場合は生データ画像に加えて、メタデータ(例えば、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータ)を含む。
本明細書において使用される「時系列データ」とは、データベース104のテーブル、リスト又はインデックスからの情報を更新、挿入、削除等するためにクエリが発行された特定の順序を指す。例えば、ある行にアクセスするための最初のクエリはTS1(時系列#1)の時系列データを有し、同じ行にアクセスするための後続のクエリはTS2の時系列データを有してよく、それにより、当該クエリがTS1に関連付けられたクエリに続いたことを示す。
本明細書において使用される「ユーザデータ」とは、データベース104のテーブル、リスト又はインデックスのレコード又は行にアクセスするためのクエリを発行した特定のユーザの識別子を指す。
本明細書において使用される「インターネットプロトコル(IP)アドレス」とは、データベース104などのデバイスに割り当てられた一意の識別子を指す。一実施形態では、メタデータに含まれるIPアドレスは、コンピューティングデバイス101のユーザにより照会されているデータベース104のIPアドレスに対応している。
本明細書において使用される「オペレーションデータ」とは、コンピューティングデバイス101のユーザが発行したクエリにより、データベース104上での実行を要求されているオペレーションを指す。一実施形態では、そのようなオペレーションは、更新オペレーション、削除オペレーション、読取オペレーション、データ定義言語オペレーション(構造化クエリ言語におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される)、バッチデータ操作言語オペレーション(データベース104のテーブル、リスト又はインデックスの複数のレコード又は行の操作に使用される)等を含む。
本明細書において使用される「生データ画像」とは、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの画像を指す。一実施形態では、そのような画像は、変更された列又は行のデータのみを含み得る。
一実施形態では、そのような情報(例えば、メタデータ、生データ画像)は、データベース104のテーブル、リスト又はインデックスのレコード又は行識別子に関連付けられており、そのような識別子は、データオペレーションが実行されたレコード又は行を識別する。
一実施形態では、そのような情報(例えば、メタデータ、生データ画像)は、データベース104のテーブル、リスト又はインデックスのレコード又は行識別子とともに、データベース管理システム102により「構造化監査ログ」に記憶される。本明細書において使用される「構造化監査ログ」とは、上述の情報を記憶するデータ構造を指す。
一実施形態では、構造化監査ログはさらに、該当する場合は対象となるメタデータ及び生データ画像に関連付けられたクエリに先立ち実行された、以前にリンクされたクエリへのポインタを含む。
一実施形態では、構造化監査ログは、データベース管理システム102の記憶デバイス(例えば、メモリ、ディスクユニット)に記憶される。
構造化監査ログを構築すると、データベース管理システム102は、データベース104のデータアクセスの正確な証明のために構造化監査ログを使用する。
これら及び他の特徴のより詳細な説明は、以下でさらに提供される。さらに、データベース管理システム102のソフトウェアコンポーネントの説明が、図2に関連して以下で提供され、データベース管理システム102のハードウェア構成の説明が、図3に関連して以下でさらに提供される。
システム100は、いずれの1つの特定のネットワークアーキテクチャにも範囲を限定されない。システム100は、任意の数のコンピューティングデバイス101、データベース管理システム102、ネットワーク103及びデータベース104を含んでよい。
構造化監査ログの活用によりデータベース監査の精度及び効率を改善するためにデータベース管理システム102により使用されるソフトウェアコンポーネントに関する論述が、図2に関連して以下で提供される。
図2は、本開示の一実施形態に係る、構造化監査ログの活用によりデータベース監査の精度及び効率を改善するためのデータベース管理システム102のソフトウェアコンポーネントの図である。
図1と併せて図2を参照すると、データベース管理システム102は、データベース104のテーブル、リスト若しくはインデックス、又はその組み合わせを解析して、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含むメタデータを識別するように構成された解析エンジン201を含む。
本明細書において使用される「テーブル」とは、データベース104内にテーブル形式で保持された関連データの集合体を指す。
本明細書において使用される「リスト」とは、データベース104のフィールドに記憶されたエントリ又は値など、エントリ又は値の一式を指す。
本明細書において使用される「インデックス」とは、データベース104のデータベーステーブル上におけるデータ取得オペレーションの速度を向上させるデータ構造を指す。インデックスは、データベーステーブルがアクセスされるたびに、データベーステーブルにおけるすべての行を検索する必要なく速やかにデータの位置を特定するために使用される。一実施形態では、インデックスはデータベーステーブルの1又は複数の列を用いて作成され、高速なランダムルックアップ及び順序付けられたレコードの効率的なアクセスの両方のための基礎を提供する。一実施形態では、インデックスは、効率的な検索を可能にするために設計された、テーブルからの、選択されたデータの列のコピーである。一実施形態では、インデックスは、完全な行が効率的に取得されることを可能にするための、コピー元のデータの元の行への「キー」又は直接リンクを含む。
本明細書において使用されるメタデータとは、他のデータに関する情報を提供するデータを指す。一実施形態では、メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む。
上述の通り、本明細書において使用される「時系列データ」とは、データベース104のテーブル、リスト又はインデックスからの情報を更新、挿入、削除等するためにクエリが発行された特定の順序を指す。例えば、ある行にアクセスするための最初のクエリはTS1(時系列#1)の時系列データを有し、同じ行にアクセスするための後続のクエリはTS2の時系列データを有してよく、それにより、当該クエリがTS1に関連付けられたクエリに続いたことを示す。
本明細書において使用される「ユーザデータ」とは、データベース104のテーブル、リスト又はインデックスのレコード又は行にアクセスするためのクエリを発行した特定のユーザの識別子を指す。
本明細書において使用される「インターネットプロトコル(IP)アドレス」とは、データベース104などのデバイスに割り当てられた一意の識別子を指す。一実施形態では、メタデータに含まれるIPアドレスは、コンピューティングデバイス101のユーザにより照会されているデータベース104のIPアドレスに対応している。
本明細書において使用される「オペレーションデータ」とは、コンピューティングデバイス101のユーザが発行したクエリにより、データベース104上での実行を要求されているオペレーションを指す。一実施形態では、そのようなオペレーションは、更新オペレーション、削除オペレーション、読取オペレーション、データ定義言語オペレーション(構造化クエリ言語におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される)、バッチデータ操作言語オペレーション(データベース104のテーブル、リスト又はインデックスの複数のレコード又は行の操作に使用される)等を含む。
一実施形態では、解析エンジン201は、接続オブジェクトを用いたgetMetaData()メソッドなどのメソッド呼び出しを介して、データベース104のテーブル、リスト又はインデックスからメタデータを識別する。
一実施形態では、解析エンジン201は、データベース104のテーブル、リスト又はインデックスからメタデータを抽出するために、データベースドキュメンテーションツールを使用する。データベース104のテーブル、リスト又はインデックスからメタデータを抽出するためのデータベースドキュメンテーションツールの例は、dbdocs.io、Dataedo、Apex(登録商標)SQL RedGate(登録商標)SQL、SchemaSpy、dbForge Documente、DBScribe、SentryOne(登録商標)DOC xPress、Innovasys Document X等を含むが、これらに限定されない。
解析エンジン201はさらに、識別されたメタデータを、当該メタデータが抽出されたテーブル、リスト若しくはインデックス、又はその組み合わせの対応するレコード又は行に関連付けるように構成されている。一実施形態では、そのような関連付けは、テーブル、リスト又はインデックスの特定のレコード又は行を識別するレコード又は行識別子(「RID」)を通じて行われる。一実施形態では、レコード又は行識別子(「RID」)は、テーブル、リスト又はインデックスにおける行のアドレスに対応している。
例えば、メタデータが234567のレコード又は行識別子(「RID」)に対応するデータベース104のテーブルのレコード又は行から抽出された場合、そのようなレコード又は行から抽出された当該メタデータは、RID234567に関連付けられている。
一実施形態では、解析エンジン201は、SQLなどにおいて、ROWIDステートメントを介してRIDを識別する。
一実施形態では、解析エンジン201はさらに、データベース104の解析されたテーブル、リスト又はインデックスのレコード又は行のクエリを、時系列データに基づき、存在する場合は以前に実行されたクエリにリンクさせるように構成されている。例えば、データベース104のテーブル、リスト又はインデックスの特定のレコード又は行から、データを操作又は取得するなどのために、データにアクセスすることを要求すべくコンピューティングデバイス101のユーザにより発行されたクエリは、時点T3で生じ得る。データベース104のテーブル、リスト又はインデックスの同じレコード又は行にアクセスしている先行クエリは、当該クエリが時点T1でデータベース104のテーブル、リスト又はインデックスの同じレコード又は行にアクセスした後に生じた可能性のある時点T2で生じ得る。時点T3で生じたクエリはその後、時点T2及びT1で生じたクエリにリンクされ得る。
一実施形態では、そのようなリンク付けは、時点T1でクエリに関連付けられた構造化監査ログを指し示すポインタを含む時点T2でクエリに関連付けられた構造化監査ログを指し示す時点T3でクエリに関連付けられた構造化監査ログにおけるポインタなど、解析エンジン201により提供されるポインタを介して達成され得る。このようにして、履歴クエリの結果一式(該当する場合はメタデータ及びデータ画像を伴う構造化監査ログ)を容易に取得することができる。
一実施形態では、解析エンジン201は、クエリに関連付けられたレコード又は行識別子(「RID」)に基づき、そのようなリンク付けを決定する。例えば、時点T1、T2及びT3で生じたクエリはすべて、12345などの同じRIDに関連付けられ得る。一実施形態では、解析エンジン201は、データベース104の解析されたテーブル、リスト又はインデックスのためのRIDを、データ構造(例えば、テーブル)などに記憶する。一実施形態では、解析エンジン201はさらに、RIDに関連付けられた時系列データをデータ構造に記憶する。そのような時系列データは、同じRIDに関連付けられた、過去に生じたクエリに関連付けられた構造化監査ログ(以下でさらに論述する通り、時系列データを含む)をリンクさせるために使用され得る。一実施形態では、そのようなデータ構造は、データベース管理システム102の記憶デバイス(例えば、メモリ、ディスクユニット)に記憶される。
データベース管理システム201はさらに、データベース104のテーブルの特定の行の上で実行されている更新オペレーションの結果として生じるデータなど、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの生データ画像を記録するように構成された記録エンジン202を含む。本明細書において使用される「生データ画像」とは、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの画像を指す。
一実施形態では、記録エンジン202は、データオペレーションの種類に基づき、データオペレーションの結果として生じるデータのデータ画像を記録するかどうかを決定する。
一実施形態では、記録エンジン202は、オペレーションの種類(例えば、更新、削除、挿入、読取、データ定義言語、バッチデータ操作言語等)を、抽出されたメタデータから決定する。例えば、解析エンジン201は、TS3の時系列(TS)データ、「ユーザ1」のユーザデータ、「IP1」のデータベース104のIPアドレス、及び更新オペレーションを表す「UPD」のデータオペレーションを有するテーブルの行(RID12345で識別される)からメタデータを抽出した可能性がある。
上述の通り、一実施形態では、記録エンジン202は、対応するデータオペレーションに基づき、データベース104の解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかを決定する。一実施形態では、記録エンジン202は、更新(「UPD」)又は挿入(「INS」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像を記録する。一実施形態では、記録エンジン202は、並行トランザクションが存在する場合を除き、読取/クエリオペレーション(「QRY」)の結果として生じるデータのデータ画像を記録しない。このようにして、以下でさらに論述する通り、トランザクションの並行処理に関わるダーティリードデータが取得され得る。本明細書において使用される「ダーティリード」は、トランザクションがまだコミットされていないデータを読み取る際に生じる。例として、トランザクション1がデータベース104の行を更新することを想定する。トランザクション2は、トランザクション1が更新をコミットする前に、更新された行を読み取る。そのような状況は、「ダーティリード」に相当するとされている。
一実施形態では、記録エンジン202は、削除オペレーション(「DLT」)の結果として生じるデータのデータ画像を記録しない。
一実施形態では、記録エンジン202は、SQLデータ定義言語(DDL)ステートメントを、DDLオペレーションの結果として生じるデータ画像として記録する。一実施形態では、「DDL」オペレーションは、構造化クエリ言語(SQL)におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される。
一実施形態では、記録エンジン202は、SQL式を、バッチデータ操作言語(DML)オペレーションの結果として生じるデータ画像として記録する。一実施形態では、DMLオペレーションは、データ自体を操作するために使用される。DMLオペレーションの例は、SQLにおける挿入、更新、又は削除命令を含む。
該当する場合にデータ画像を記録するために記録エンジン202により使用されるソフトウェアツールの例は、Equalum(登録商標)、Hevo Data、HVR、IBM(登録商標)WebSphere(登録商標)、Qlik(登録商標)、Oracle(登録商標)GoldenGate(登録商標)、Precisely(登録商標)、Striim(登録商標)、Talend(登録商標)等を含むが、これらに限定されない。
データベース管理システム102はさらに、解析エンジン201及び記録エンジン202から取得された情報に基づき構造化監査ログを作成するように構成されている監査ログクリエータ203を含む。本明細書において使用される「構造化監査ログ」とは、解析エンジン201により抽出及び識別されたメタデータ、存在する場合は記録エンジン202により記録された生データ画像、並びに、履歴クエリに関連付けられた構造化監査ログを指し示す、解析エンジン201により提供された任意のポインタを記憶するデータ構造を指す。一実施形態では、そのような構造化監査ログは、データベース管理システム102の記憶デバイス(例えば、メモリ、ディスクユニット)に記憶される。
一実施形態では、監査ログクリエータ203は、作成された構造化監査ログ内に、解析エンジン201により抽出及び識別されたメタデータ、存在する場合は記録エンジン202により記録された生データ画像、並びに、履歴クエリに関連付けられた構造化監査ログを指し示す、解析エンジン201により提供された任意のポインタを記憶する。
構造化監査ログを作成し、そのような作成された構造化監査ログ内に上述の情報を記憶するために、監査ログクリエータ203により使用されるソフトウェアツールの例は、erwin(登録商標)Data Modeler、ER/Studio(登録商標)、DbSchema、ERBuilder、HeidiSQL、Navicat(登録商標)Data Modeler、Toad Data Modeler、Archi等を含むが、これらに限定されない。
データベース管理システム102は加えて、構造化監査ログを介してデータベース104を監査するためのクエリを含む、コンピューティングデバイス101のユーザから発行されたクエリを受信及び処理するように構成されたクエリエンジン204を有する。
一実施形態では、クエリエンジン204(例えば、Presto(登録商標)、Apache(登録商標)Drill、Cloudera(登録商標)Impala、Apache(登録商標)Spark等)は、コンピューティングデバイス101のユーザからデータベース104を監査するためのクエリ要求を受信するように構成されている。一実施形態では、データベース104を監査するためのクエリは、監査を実行する対象であるデータベース104のテーブル、リスト又はインデックスのレコード又は行のレコード又は行識別子(RID)を含む。一実施形態では、クエリエンジン204は、構造化監査ログに関連付けられたRIDを検索して、一致するものがあるかどうかを判断する。一実施形態では、各構造化監査ログはRIDに関連付けられ、そのような情報はデータ構造に記憶される。一実施形態では、クエリエンジン204は、そのようなデータ構造を検索し、任意の一致するRIDを識別する。一実施形態では、クエリエンジン204は、自然言語処理を使用して、データ構造における任意の一致を識別する。一実施形態では、そのようなデータ構造は、データベース管理システム102の記憶デバイス(例えば、メモリ、ディスクユニット)に記憶される。
一実施形態では、クエリエンジン204は、コンピューティングデバイス101のユーザからのデータベース104を監査するためのクエリ要求を解析して、データベース104のテーブル、リスト又はインデックスのどのレコード又は行に対して監査を実行するかを決定する。例えば、クエリは、監査を実行するために、データベース104のテーブル、リスト又はインデックスのレコード又は行を識別するレコード又は行番号関数、又はSELECT句を含んでよい。データベース104のテーブル、リスト又はインデックスのレコード又は行を識別すると、ROWIDステートメントを介してレコード又は行識別子(RID)が識別され得る。
RIDが識別された時点で、クエリエンジン204は、そのようなRID及び上述のデータ構造に記憶された構造化監査ログのRIDの間に一致があるかどうかを判断し得る。例えば、上述の通り、一実施形態では、クエリエンジン204は、自然言語処理を使用して、データ構造における任意の一致を識別する。
クエリに関連付けられたRID及び構造化監査ログのRIDの間に一致がある場合、クエリエンジン204は、一致する構造化監査ログから監査済み情報(例えば、メタデータ、生データ画像)を取得する。そのような監査済み情報は、その後、コンピューティングデバイス101のユーザインタフェースを介すなどして、コンピューティングデバイス101のユーザに提供される。
或いは、クエリに関連付けられたRID及び構造化監査ログのRIDの間に一致がない場合、クエリエンジン204は、リクエスタ(コンピューティングデバイス101のユーザ)に対し、データベース104のテーブル、リスト又はインデックスのレコード又は行がアクセスされていないことを通知する。
構造化監査ログの活用によるデータベース監査の精度及び効率の改善のための方法の論述に関連して、これら及び他の機能の更なる説明が以下で提供される。
構造化監査ログの活用によるデータベース監査の精度及び効率の改善のための方法の論述に先立ち、データベース管理システム102(図1)のハードウェア構成の説明が図3に関連して以下で提供される。
ここで図3を参照すると、図3は、本開示を実践するためのハードウェア環境を代表するデータベース管理システム102(図1)のハードウェア構成の本開示の一実施形態を示している。
データベース管理システム102は、システムバス302により様々な他のコンポーネントに接続されたプロセッサ301を有する。オペレーティングシステム303が、プロセッサ301上で実行され、図3の様々なコンポーネントの制御を提供し、それらの機能を協働させる。本開示の原理に係るアプリケーション304は、オペレーティングシステム303とともに実行され、オペレーティングシステム303に対する呼び出しを提供し、ここで、呼び出しは、アプリケーション304により実行されることになる様々な機能又はサービスを実装する。アプリケーション304は、例えば、解析エンジン201(図2)、記録エンジン202(図2)、監査ログクリエータ203(図2)、及びクエリエンジン204(図2)を含んでよい。さらに、アプリケーション304は、例えば、図4~図10に関連して以下でさらに論述する通り、構造化監査ログの活用によるデータベース監査の精度及び効率の改善のためのプログラムを含んでよい。
再び図3を参照すると、リードオンリメモリ(「ROM」)305は、システムバス302に接続されており、データベース管理システム102の特定の基本機能を制御する基本入力/出力システム(「BIOS」)を含む。ランダムアクセスメモリ(「RAM」)306及びディスクアダプタ307も、システムバス302に接続されている。オペレーティングシステム303及びアプリケーション304を含むソフトウェアコンポーネントは、RAM306にロードされてよく、RAM306は、実行のためのデータベース管理システム102のメインメモリであってよいことに留意されたい。ディスクアダプタ307は、ディスクユニット308、例えば、ディスクドライブと通信するインテグレーテッドドライブエレクトロニクス(「IDE」)アダプタであってよい。なお、図4~図10に関連して以下でさらに論述する通り、構造化監査ログの活用によるデータベース監査の精度及び効率の改善のためのプログラムは、ディスクユニット308又はアプリケーション304に存在してよい。
データベース管理システム102は、バス302に接続された通信アダプタ309をさらに備えてよい。通信アダプタ309は、コンピューティングデバイス101(図1)等の他のデバイスと通信するためにバス302を外部ネットワーク(例えば、図1のネットワーク103)と相互接続する。
一実施形態では、データベース管理システム102のアプリケーション304は、解析エンジン201、記録エンジン202、監査ログクリエータ203、及びクエリエンジン204のソフトウェアコンポーネントを含む。一実施形態では、そのようなコンポーネントは、ハードウェアにおいて実装されてよく、その場合、そのようなハードウェアコンポーネントは、バス302に接続されることになる。そのようなコンポーネントにより実行される上述された機能は、包括的なコンピュータ機能ではない。結果として、データベース管理システム102は、特定の、非包括的なコンピュータ機能を実装する結果である特定の機械である。
一実施形態では、構造化監査ログの活用によるデータベース監査の精度及び効率の改善のための機能を含む、データベース管理システム102のそのようなソフトウェアコンポーネント(例えば、解析エンジン201、記録エンジン202、監査ログクリエータ203、及びクエリエンジン204)の機能は、特定用途向け集積回路において具現化され得る。
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、若しくはコンピュータプログラム製品、又はその組み合わせであり得る。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためにコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持及び記憶し得る、有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述したものの任意の適した組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、次のもの、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、機械的にエンコードされたデバイス、例えば、パンチカード又は命令を記録した溝内の隆起構造、及び前述したものの任意の適した組み合わせを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波又は他の自由に伝播する電磁波、導波路又は他の伝送媒体を通って伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号等、それ自体が一時的な信号であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへと、又は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、若しくは無線ネットワーク、又はその組み合わせなどのネットワークを介して外部コンピュータ又は外部記憶デバイスへとダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、若しくはエッジサーバ、又はその組み合わせを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データであってもよく、Smalltalk(登録商標)又はC++などのようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語を含む1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的にかつリモートコンピュータ上で部分的に、又は、リモートコンピュータ若しくはサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得るか、又は、接続は、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータに行われ得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
本発明の態様は、本発明の実施形態に係る方法、装置(システム)及びコンピュータプログラム製品の、フローチャート図若しくはブロック図又はその組み合わせを参照して本明細書に説明される。フローチャート図若しくはブロック図又はその組み合わせの各ブロックと、フローチャート図若しくはブロック図又はその組み合わせにおける各ブロックの組み合わせとは、コンピュータ可読プログラム命令により実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサ、又は他のプログラマブルデータ処理装置に提供され、マシンを生成し得て、その結果、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート若しくはブロック図、又はその両方の1又は複数のブロックで指定された機能/動作を実施するための手段を作成する。これらのコンピュータ可読プログラム命令は、命令を記憶したコンピュータ可読記憶媒体が、フローチャート若しくはブロック図又はその組み合わせの単数のブロック又は複数のブロックにおいて指定されている機能/動作の態様を実装する命令を含む製品を備えるように、コンピュータ、プログラマブルデータ処理装置、若しくは他のデバイス又はその組み合わせに特定の方式で機能するよう指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連のオペレーションステップを実行させて、コンピュータ実装プロセスを生成し得て、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令が、フローチャート若しくはブロック図、又はその両方の1又は複数のブロックで指定された機能/動作を実装する。
図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装において、ブロックに記載された機能は、図に記載された順序から外れて生じてよい。例えば、連続して示されている2つのブロックは、実際には、1つの段階として達成されても、同時に、実質的に同時に、部分的に若しくは全体的に時間重複する形で実行されてよく、ブロックは、関与する機能に依存して逆の順序で実行されてよい。ブロック図若しくはフローチャート図、又はその組み合わせの各ブロック、並びにブロック図若しくはフローチャート図、又はその組み合わせにおけるブロックの組み合わせは、指定された機能若しくは動作を実行するか、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースシステムにより実装することができることにも留意されたい。
上述の通り、データベース監査とは、選択されたユーザデータベースアクションの監視及び記録である。それは、実行されたSQLステートメントの種類のような個々のアクション、又は、ユーザ名、アプリケーション、時間等のようなファクタの組み合わせに基づき得る。データベース監査の用途に基づき、データベースのどの行及び列が、誰によっていつアクセスされたかを特定することが重要である。残念ながら、特にNoSQL(非構造化クエリ言語(non-structured query language(SQL)))データベースの場合、そのような情報は、容易に追跡及び記録されない。NoSQLデータベースは、リレーショナルデータベースにおいて使用される表形式の関係とは異なる手段でモデル化されたデータの記憶及び取得のためのメカニズムを提供する。NoSQLデータベースにより使用されるデータ構造(例えば、キーと値のペア)は、リレーショナルデータベースにおいてデフォルトで使用されるそれらとは異なり、NoSQLにおけるいくつかのオペレーションを高速化する。さらに、NoSQLデータベースは非構造化ストレージを使用しており、これにより大量の情報を高性能かつ俊敏に処理することが可能である。例えば、NoSQLデータベースは、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶し得る。しかしながら、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶することにより、そのようなデータベースの監査に困難が生じている。現状では、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、監査プラグインが使用されることがある。残念ながら、データオペレーション(例えば、更新オペレーション、読取オペレーション)のみが記録される。監視及び記録されるデータが限定的である結果として、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において監査は不十分である。代替的に、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、テンポラルテーブルが使用されることがある。残念ながら、いくつかのオペレーションは記録されない。監査プラグインを使用するシナリオと同様に、テンポラルテーブルを使用する結果として、監視及び記録されるデータが限定的となり、それゆえに、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において、監査が不十分となる結果が生じている。さらに、テンポラルテーブルの使用は、特に、データベース上での頻繁な読取、追加、削除、及び更新オペレーションを伴う場合に、時間を要し、非効率的である。加えて、トランザクションの並行処理(重複する時間中に同じデータベースの行にアクセスするなどの2つのトランザクションの同時実行)におけるダーティリードデータなどの特定の情報を取得するという要求を、テンポラルテーブルを用いて達成できないことがある。したがって、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明を可能にするような効率的な方法で、データベースアクションを効果的に監査するための手段は、現状において存在しない。
本開示の実施形態は、図4~図10に関連して以下で論述する通り、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明のための構造化監査ログを構築及び使用するための手段を提供する。図4は、構造化監査ログを構築するための方法のフローチャートである。図5は、更新オペレーションを伴う構造化監査ログを示す。図6は、読取又はクエリオペレーションを伴う構造化監査ログを示す。図7は、データ定義言語(data definition language,DDL)オペレーションを伴う構造化監査ログを示す。図8は、バッチデータ操作言語(data manipulation language,DML)オペレーションを伴う構造化監査ログを示す。図9は、構造化監査ログの活用によるデータベース監査の精度及び効率の改善のための方法のフローチャートである。図10は、構造化監査ログに関連付けられたレコード又は行識別子(RID)と、データベースを監査するためのクエリに関連付けられたRIDとが一致する場合及び一致しない場合を示す。
上述の通り、図4は、本開示の一実施形態に係る、構造化監査ログを構築するための方法400のフローチャートである。
図1~3と併せて図4を参照すると、オペレーション401において、データベース管理システム102の解析エンジン201は、データベース104のテーブル、リスト又はインデックスを解析して、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含むメタデータを識別する。
上述の通り、本明細書において使用される「テーブル」とは、データベース104内にテーブル形式で保持された関連データの集合体を指す。
本明細書において使用される「リスト」とは、データベース104のフィールドに記憶されたエントリ又は値など、エントリ又は値の一式を指す。
本明細書において使用される「インデックス」とは、データベース104のデータベーステーブル上におけるデータ取得オペレーションの速度を向上させるデータ構造を指す。インデックスは、データベーステーブルがアクセスされるたびに、データベーステーブルにおけるすべての行を検索する必要なく速やかにデータの位置を特定するために使用される。一実施形態では、インデックスはデータベーステーブルの1又は複数の列を用いて作成され、高速なランダムルックアップ及び順序付けられたレコードの効率的なアクセスの両方のための基礎を提供する。一実施形態では、インデックスは、効率的な検索を可能にするために設計された、テーブルからの、選択されたデータの列のコピーである。一実施形態では、インデックスは、完全な行が効率的に取得されることを可能にするための、コピー元のデータの元の行への「キー」又は直接リンクを含む。
本明細書において使用される「メタデータ」とは、他のデータに関する情報を提供するデータを指す。一実施形態では、メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む。
さらに、上述の通り、本明細書において使用される「時系列データ」とは、データベース104のテーブル、リスト又はインデックスからの情報を更新、挿入、削除等するためにクエリが発行された特定の順序を指す。例えば、ある行にアクセスするための最初のクエリはTS1(時系列#1)の時系列データを有し、同じ行にアクセスするための後続のクエリはTS2の時系列データを有してよく、それにより、当該クエリがTS1に関連付けられたクエリに続いたことを示す。
本明細書において使用される「ユーザデータ」とは、データベース104のテーブル、リスト又はインデックスのレコード又は行にアクセスするためのクエリを発行した特定のユーザの識別子を指す。
本明細書において使用される「インターネットプロトコル(IP)アドレス」とは、データベース104などのデバイスに割り当てられた一意の識別子を指す。一実施形態では、メタデータに含まれるIPアドレスは、コンピューティングデバイス101のユーザにより照会されているデータベース104のIPアドレスに対応している。
本明細書において使用される「オペレーションデータ」とは、コンピューティングデバイス101のユーザが発行したクエリにより、データベース104上での実行を要求されているオペレーションを指す。一実施形態では、そのようなオペレーションは、更新オペレーション、削除オペレーション、読取オペレーション、データ定義言語オペレーション(構造化クエリ言語におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される)、バッチデータ操作言語オペレーション(データベース104のテーブル、リスト又はインデックスの複数のレコード又は行の操作に使用される)等を含む。
一実施形態では、解析エンジン201は、接続オブジェクトを用いたgetMetaData()メソッドなどのメソッド呼び出しを介して、データベース104のテーブル、リスト又はインデックスからメタデータを識別する。
一実施形態では、解析エンジン201は、データベース104のテーブル、リスト又はインデックスからメタデータを抽出するために、データベースドキュメンテーションツールを使用する。データベース104のテーブル、リスト又はインデックスからメタデータを抽出するためのデータベースドキュメンテーションツールの例は、dbdocs.io、Dataedo、Apex(登録商標)SQL RedGate(登録商標)SQL、SchemaSpy、dbForge Documente、DBScribe、SentryOne(登録商標)DOC xPress、Innovasys Document X等を含むが、これらに限定されない。
オペレーション402において、データベース管理システム102の解析エンジン201は、識別されたメタデータを、当該メタデータが抽出されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける。
上述の通り、一実施形態では、そのような関連付けは、テーブル、リスト又はインデックスの特定のレコード又は行を識別するレコード又は行識別子(「RID」)を通じて行われる。一実施形態では、レコード又は行識別子(「RID」)は、テーブル、リスト又はインデックスにおける行のアドレスに対応している。
例えば、メタデータが234567のレコード又は行識別子(「RID」)に対応するデータベース104のテーブルのレコード又は行から抽出された場合、そのようなレコード又は行から抽出された当該メタデータは、RID234567に関連付けられている。
一実施形態では、解析エンジン201は、SQLなどにおいて、ROWIDステートメントを介してRIDを識別する。
オペレーション403において、データベース管理システム102の記録エンジン202は、識別されたメタデータから、データオペレーション(例えば、更新、削除、挿入、読取、データ定義言語、データ操作言語等)の種類を決定する。例えば、解析エンジン201は、TS3の時系列(TS)データ、「ユーザ1」のユーザデータ、「IP1」のデータベース104のIPアドレス、及び更新オペレーションを表す「UPD」のデータオペレーションを有するテーブルの行(RID12345で識別される)からメタデータを抽出した可能性がある。
オペレーション404において、データベース管理システム102の記録エンジン202は、対応するデータオペレーションに基づき、解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかを決定する。
記録エンジン202が、対応するデータオペレーションに基づき、解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録しないことを決定した場合、オペレーション405において、データベース管理システム102の記録エンジン202は、解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられたデータ画像を記録しない。オペレーション405のさらなる説明は、以下でさらに提供される。
しかしながら、記録エンジン202が、対応するデータオペレーションに基づき、解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録することを決定した場合、オペレーション406において、データベース管理システム102の記録エンジン202は、図5~8に関連して以下でさらに論述する通り、当該オペレーションの結果として生じるデータのデータ画像を記録する。
上述の通り、本明細書において使用される「生データ画像」又は「データ画像」とは、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの画像を指す。
一実施形態では、記録エンジン202は、データオペレーションの種類に基づき、データオペレーションの結果として生じるデータのデータ画像を記録するかどうかを決定する。
一実施形態では、記録エンジン202は、オペレーションの種類(例えば、更新、削除、挿入、読取、データ定義言語、バッチデータ操作言語等)を、抽出されたメタデータから決定する。例えば、解析エンジン201は、TS3の時系列(TS)データ、「ユーザ1」のユーザデータ、「IP1」のデータベース104のIPアドレス、及び更新オペレーションを表す「UPD」のデータオペレーションを有するデータベース104のテーブルの行(RID12345で識別される)からメタデータを抽出した可能性がある。
上述の通り、一実施形態では、記録エンジン202は、対応するデータオペレーションに基づき、データベース104の解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかを決定する。一実施形態では、記録エンジン202は、更新(「UPD」)又は挿入(「INS」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像を記録する。一実施形態では、記録エンジン202は、並行トランザクションが存在する場合を除き、読取/クエリオペレーション(「QRY」)の結果として生じるデータのデータ画像を記録しない。このようにして、以下でさらに論述する通り、トランザクションの並行処理に関わるダーティリードデータが取得され得る。本明細書において使用される「ダーティリード」は、トランザクションがまだコミットされていないデータを読み取る際に生じる。例として、トランザクション1がデータベース104の行を更新することを想定する。トランザクション2は、トランザクション1が更新をコミットする前に、更新された行を読み取る。そのような状況は、「ダーティリード」に相当するとされている。
一実施形態では、記録エンジン202は、削除オペレーション(「DLT」)の結果として生じるデータのデータ画像を記録しない。
一実施形態では、記録エンジン202は、SQLデータ定義言語(DDL)ステートメントを、DDLオペレーションの結果として生じるデータ画像として記録する。一実施形態では、「DDL」オペレーションは、構造化クエリ言語(SQL)におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される。
一実施形態では、記録エンジン202は、SQL式を、バッチデータ操作言語(DML)オペレーションの結果として生じるデータ画像として記録する。一実施形態では、DMLオペレーションは、データ自体を操作するために使用される。DMLオペレーションの例は、SQLにおける挿入、更新、又は削除命令を含む。
該当する場合にデータ画像を記録するために記録エンジン202により使用されるソフトウェアツールの例は、Equalum(登録商標)、Hevo Data、HVR、IBM(登録商標)WebSphere(登録商標)、Qlik(登録商標)、Oracle(登録商標)GoldenGate(登録商標)、Precisely(登録商標)、Striim(登録商標)、Talend(登録商標)等を含むが、これらに限定されない。
記録エンジン202が、データオペレーションの結果として生じるデータのデータ画像を記録する場合又は記録しない場合、オペレーション407において、データベース管理システム102の解析エンジン201は、データベース104の解析されたテーブル、リスト又はインデックスのレコード又は行のクエリを、時系列データに基づき、存在する場合は解析されたテーブル、リスト又はインデックスのレコード又は行の以前に実行されたクエリにリンクさせる。例えば、データベース104のテーブル、リスト又はインデックスの特定のレコード又は行から、データを操作又は取得するなどのために、データにアクセスすることを要求すべくコンピューティングデバイス101のユーザにより発行されたクエリは、時点T3で生じ得る。データベース104のテーブル、リスト又はインデックスの同じレコード又は行にアクセスしている先行クエリは、当該クエリが時点T1でデータベース104のテーブル、リスト又はインデックスの同じレコード又は行にアクセスした後に生じた可能性のある時点T2で生じ得る。時点T3で生じたクエリはその後、時点T2及びT1で生じたクエリにリンクされ得る。
上述の通り、一実施形態では、そのようなリンク付けは、時点T1でクエリに関連付けられた構造化監査ログを指し示すポインタを含む時点T2でクエリに関連付けられた構造化監査ログを指し示す時点T3でクエリに関連付けられた構造化監査ログにおけるポインタなど、解析エンジン201により提供されるポインタを介して達成され得る。このようにして、履歴クエリの結果一式(該当する場合はメタデータ及びデータ画像を伴う構造化監査ログ)を容易に取得することができる。
一実施形態では、解析エンジン201は、クエリに関連付けられたレコード又は行識別子(「RID」)に基づき、そのようなリンク付けを決定する。例えば、時点T1、T2及びT3で生じたクエリはすべて、12345などの同じRIDに関連付けられ得る。一実施形態では、解析エンジン201は、データベース104の解析されたテーブル、リスト又はインデックスのためのRIDを、データ構造(例えば、テーブル)などに記憶する。一実施形態では、解析エンジン201はさらに、RIDに関連付けられた時系列データをデータ構造に記憶する。そのような時系列データは、同じRIDに関連付けられた、過去に生じたクエリに関連付けられた構造化監査ログ(以下でさらに論述する通り、時系列データを含む)をリンクさせるために使用され得る。一実施形態では、そのようなデータ構造は、データベース管理システム102の記憶デバイス(例えば、メモリ305、ディスクユニット308)に記憶される。
オペレーション408において、データベース管理システム102の監査ログクリエータ203は、構造化監査ログを作成するとともに、作成された構造化監査ログ内に、解析エンジン201により抽出及び識別されたメタデータ、存在する場合は記録エンジン202により記録された生データ画像、並びに、履歴クエリに関連付けられた構造化監査ログを指し示す、解析エンジン201により提供された任意のポインタ(すなわち、作成された構造化監査ログに関連付けられたデータベース102の解析されたテーブル、リスト又はインデックスの同じレコード又は行に対して以前に実行されたクエリを指し示すポインタ)などの監査情報を記憶する。一実施形態では、そのような構造化監査ログ、及び構造化監査ログに記憶された監査情報は、解析されたテーブル、リスト又はインデックスのレコード又は行のレコード又は行識別子に関連付けられている。
上述の通り、本明細書において使用される「構造化監査ログ」とは、解析エンジン201により抽出及び識別されたメタデータ、存在する場合は記録エンジン202により記録された生データ画像、並びに、履歴クエリに関連付けられた構造化監査ログを指し示す、解析エンジン201により提供された任意のポインタを記憶するデータ構造を指す。一実施形態では、そのような構造化監査ログは、データベース管理システム102の記憶デバイス(例えば、メモリ305、ディスクユニット308)に記憶される。
構造化監査ログを作成し、そのような作成された構造化監査ログ内に上述の監査情報を記憶するために、監査ログクリエータ203により使用されるソフトウェアツールの例は、erwin(登録商標)Data Modeler、ER/Studio(登録商標)、DbSchema、ERBuilder、HeidiSQL、Navicat(登録商標)Data Modeler、Toad Data Modeler、Archi等を含むが、これらに限定されない。
存在する場合はメタデータ及び記録されたデータ画像を、任意の以前に実行されたクエリへのポインタとともに構造化監査ログに記憶する例については、図5~8に関連して以下で論述する。
上述の通り、一実施形態では、記録エンジン202は、図5に示すように、更新(「UPD」)又は挿入(「INS」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像を記録する。
図5は、本開示の一実施形態に係る、更新オペレーションを伴う構造化監査ログ501を示す。
以下でさらに詳細に論述する通り、任意の記録されたデータ画像を含む抽出されたメタデータは、図5の構造化監査ログ500などの構造化監査ログに記憶される。
図5に示す通り、構造化監査ログ501は、レコード又は行識別子(RID)502に関連付けられている。一実施形態では、構造化監査ログ501は、RID502により識別されたデータベース104の解析されたテーブル、リスト又はインデックスのレコード又は行に関して、解析エンジン201により識別されたメタデータフィールド503を含む。例えば、メタデータ503は、時系列(TS)データ504、ユーザデータ505、データベース104のIPアドレス506などのIPアドレス506、及びデータオペレーション(「OP」)507を含む。図5に示す通り、TSデータ504は、TS3の時点に対応している。ユーザデータ505は、ユーザ#1(「USR1」)に対応している。データベース104のIPアドレス506は、「IP1」(例えば、192.158.1.38)に対応している。データオペレーション507は、更新オペレーション(「UPD」)に対応している。
さらに、一実施形態では、構造化監査ログ501は、記録されたデータ画像を記憶するために使用され得る生データ画像フィールド508を含む。
一実施形態では、ストレージ空間を節約するために、記録エンジン202は、図5に示す通り、更新(「UPD」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像508を記録する。例えば、そのようなデータ画像508は、構造化監査ログ501に「Img1v3」として記録及び保存される。
さらに、図5に示す通り、構造化監査ログ501は、構造化監査ログ501と同様に構造化されている構造化監査ログ510へのポインタ509を含む。上述の通り、時系列データは、同じRIDを含む構造化監査ログをリンクさせるために使用され得る。例えば、構造化監査ログ501及び構造化監査ログ510は両方とも同じRIDに関連付けられており、構造化監査ログ510は時点T3(構造化監査ログ501の時系列データフィールド504を参照)の直前に生じる時点T2(構造化監査ログ510の時系列データフィールド504を参照)に関連付けられているため、構造化監査ログ501は構造化監査ログ510にリンクされている。同様に、図5に示す通り、構造化監査ログ510は、構造化監査ログ501と同じRIDを含むが、時点T2(構造化監査ログ510の時系列データフィールド504を参照)の直前に生じる時点T1(構造化監査ログ512の時系列データフィールド504を参照)に関連付けられた(構造化監査ログ501と同様に構造化されている)構造化監査ログ512へのポインタ511を含む。
さらに、図5に示す通り、記録エンジン202は、挿入(「INS」)オペレーション(構造化監査ログ512のデータオペレーションフィールド507を参照)の実行後に、当該オペレーションの結果として生じるデータのデータ画像を記録する。例えば、そのようなデータ画像は、生データ画像フィールド508における構造化監査ログ512に「Img1v1」として記録及び保存される。
上述の通り、ストレージ空間を節約するために、記録エンジン202は、更新(「UPD」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像を記録する。更新オペレーション前のデータの画像を取得するために、上述の通り、ポインタを介して前の画像へのリンクが使用されることがある。
一実施形態では、そのような記録されたデータ画像は、データベース104のテーブル、リスト又はインデックスの変更された行又は列のデータのみを含み得る。
一実施形態では、記録エンジン202は、図6に示すように、並行トランザクションが存在する場合を除き、読取/クエリオペレーション(「QRY」)の結果として生じるデータのデータ画像を記録しない。このようにして、以下でさらに論述する通り、トランザクションの並行処理におけるダーティリードデータが取得され得る。本明細書において使用される「ダーティリード」は、トランザクションがまだコミットされていないデータを読み取る際に生じる。例として、トランザクション1がデータベース104の行を更新することを想定する。トランザクション2は、トランザクション1が更新をコミットする前に、更新された行を読み取る。そのような状況は、「ダーティリード」に相当するとされている。
図6を参照すると、図6は、本開示の一実施形態に係る、読取又はクエリオペレーションを伴う構造化監査ログを示している。
図5に関連して先に論述した通り、構造化監査ログ501は、レコード又は行識別子(RID)502に関連付けられている。そのような構造化監査ログ501は、図6に示す通り、(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ602を指し示すポインタ601に関連付けられてよい。構造化監査ログ501及び構造化監査ログ602は両方とも同じRIDに関連付けられており、構造化監査ログ602は時点T3(構造化監査ログ501の時系列データフィールド504を参照)の直前に生じる時点T2(構造化監査ログ602の時系列データフィールド504を参照)に関連付けられているため、構造化監査ログ501は構造化監査ログ602にリンクされている。
一実施形態では、記録エンジン202は通常、読取/クエリオペレーション(「QRY」)のための生データ画像を記録しない。しかしながら、図6に示すような並行トランザクションが生じた場合、記録エンジン202は、読取/クエリオペレーションの結果として生じる画像を記録し、これは、監査ログクリエータ203により構造化監査ログに記憶される。
例えば、図6に示す通り、構造化監査ログ602、603及び604(すべて構造化監査ログ501と同様に構造化されている)はすべて、時系列データフィールド504においてTS2の時系列データに関連付けられている。構造化監査ログ603において示す通り、データベース104の更新オペレーションが生じ、その結果、図5に関連して上述した通り、更新(「UPD」)オペレーションの実行後に、当該オペレーションの結果として生じるデータのデータ画像(生データ画像フィールド508の「Img1v2」を参照)が記録される。しかしながら、構造化監査ログ604において示す通り、データオペレーションフィールド507に示すような読取オペレーション(「QRY」)は、更新オペレーションがコミットされる前に実行され得る。その結果、構造化監査ログ602は、読取オペレーションのために記録されたデータ画像を記憶する(生データ画像フィールド508の「Img1v1」を参照)。このようにして、トランザクションの並行処理に関わるダーティリードデータが取得され得る。
さらに、図6に示すように、構造化監査ログ602は、構造化監査ログ604へのポインタ606を有する構造化監査ログ603へのポインタ605を有する。これらの構造化監査ログ602、603、604の各々が、時点T2で生じる。特に、構造化監査ログ603、604は、両方とも同時に生じるため、並行トランザクションである。上述の通り、更新オペレーションがコミットされる前に実行される読取/クエリオペレーションなどのトランザクションの並行処理が生じた場合、上記で説明した通り、読取オペレーションのための生データ画像を記憶するために、構造化監査ログ602などの構造化監査ログが作成される。
さらに、図6に示す通り、構造化監査ログ604は、(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ608をリンクさせるためのポインタ607を含む。上述の通り、時系列データは、同じRIDを含む構造化監査ログをリンクさせるために使用され得る。例えば、構造化監査ログ608及び構造化監査ログ604は両方とも同じRIDに関連付けられており、構造化監査ログ608は時点T2(構造化監査ログ604の時系列データフィールド504を参照)の直前に生じる時点T1(構造化監査ログ608の時系列データフィールド504を参照)に関連付けられているため、構造化監査ログ608は構造化監査ログ604にリンクされている。
さらに、一実施形態では、記録エンジン202は、削除オペレーション(「DLT」)の結果として生じるデータのデータ画像を記録しない。
一実施形態では、記録エンジン202は、図7に示す通り、SQLデータ定義言語(DDL)ステートメントを、DDLオペレーションの結果として生じるデータ画像として記録する。一実施形態では、「DDL」オペレーションは、構造化クエリ言語(SQL)におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される。
図7は、本開示の一実施形態に係る、データ定義言語(data definition language,DDL)オペレーションを伴う構造化監査ログ701を示す。
図7を参照すると、(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ701は、解析エンジン201により取得されたメタデータ及び記録エンジン202により記録されたデータ画像を記憶するために、監査ログクリエータ203により作成される。図7に示す通り、データオペレーションフィールド507のデータオペレーションは、DDLオペレーションである「テーブル変更」に対応している。そのような状況において、記録エンジン202は、生データ画像フィールド508において示す通り、SQL DDLステートメントを記録する。
さらに、図7に示す通り、構造化監査ログ701は、ポインタ703を介して構造化監査ログ702にリンクされている。上述の通り、時系列データは、同じRIDを含む構造化監査ログをリンクさせるために使用され得る。例えば、構造化監査ログ701及び構造化監査ログ702は両方とも同じRIDに関連付けられており、構造化監査ログ702は時点T3(構造化監査ログ701の時系列データフィールド504を参照)の直前に生じる時点T2(構造化監査ログ702の時系列データフィールド504を参照)に関連付けられているため、構造化監査ログ701は構造化監査ログ702にリンクされている。
図7にも示す通り、構造化監査ログ702もまた、データオペレーションフィールド507におけるDDLオペレーション(「ビュー作成」)を含み、これにより、構造化監査ログ702の生データ画像フィールド508において示す通り、記録エンジン202はSSL DDLステートメントを記録する。
一実施形態では、記録エンジン202は、図8に示す通り、SQL式を、バッチデータ操作言語(DML)オペレーションの結果として生じるデータ画像として記録する。一実施形態では、DMLオペレーションは、データ自体を操作するために使用される。DMLオペレーションの例は、SQLにおける挿入、更新、又は削除命令を含む。
図8は、本開示の一実施形態に係る、バッチデータ操作言語(data manipulation language,DML)オペレーションを伴う構造化監査ログを示す。
図8を参照すると、一実施形態では、バッチDMLオペレーションなどのバッチオペレーションは、式を用いて一度追跡される。例えば、バッチDMLオペレーションは、複数の記録の更新を伴ってよい。
図8に示す通り、(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ801は、バッチDMLオペレーション(複数の更新オペレーション)を伴い更新されるデータベース104のテーブル、リスト又はインデックスの複数のレコード又は行を表す2つのRID502、すなわちRID=1 802及びRID=2 803に関連付けられている。一実施形態では、監査ログクリエータ203は、構造化監査ログ801の生データ画像フィールド508におけるバッチDMLオペレーションに関連付けられたSQL DDLステートメント(「Col1*0.21+Col2」)を、構造化監査ログ801に記憶する。
さらに、図8に示す通り、そのようなバッチDMLオペレーションにおいて、複数の更新オペレーションが(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ804、805において表され、図8に示す通り、構造化監査ログ805は、ポインタ807を介して(図5の構造化監査ログ501と同様に構造化されている)構造化監査ログ806にリンクされている。上述の通り、時系列データは、同じRIDを含む構造化監査ログをリンクさせるために使用され得る。例えば、構造化監査ログ805及び構造化監査ログ806は両方とも同じRIDに関連付けられており、構造化監査ログ806は時点T2(構造化監査ログ805の時系列データフィールド504を参照)の直前に生じる時点T1(構造化監査ログ806の時系列データフィールド504を参照)に関連付けられているため、構造化監査ログ805は構造化監査ログ806にリンクされている。
構造化監査ログを作成すると、図9に関連して以下で論述する通り、構造化監査ログは、データベース104を監査するために使用され得る。
図9は、本開示の一実施形態に係る、構造化監査ログの活用によるデータベース監査の精度及び効率の改善のための方法900のフローチャートである。
図1~8と併せて図9を参照すると、オペレーション901において、データベース管理システム102ののクエリエンジン204(例えば、Presto(登録商標)、Apache(登録商標)Drill、Cloudera(登録商標)Impala、Apache(登録商標)Spark等)は、コンピューティングデバイス101のユーザからデータベース104を監査するためのクエリ要求を受信する。
オペレーション902において、データベース管理システム102のクエリエンジン204は、当該クエリ要求に関連付けられたレコード又は行識別子(RID)を識別する。
上述の通り、一実施形態では、データベース104を監査するためのクエリは、監査を実行する対象であるデータベース104のテーブル、リスト又はインデックスのレコード又は行のレコード又は行識別子(RID)を含む。一実施形態では、クエリエンジン204は、構造化監査ログに関連付けられたRIDを検索して、一致するものがあるかどうかを判断する。一実施形態では、各構造化監査ログはRIDに関連付けられ、そのような情報はデータ構造に記憶される。一実施形態では、クエリエンジン204は、そのようなデータ構造を検索し、任意の一致するRIDを識別する。一実施形態では、クエリエンジン204は、自然言語処理を使用して、データ構造における任意の一致を識別する。一実施形態では、そのようなデータ構造は、データベース管理システム102の記憶デバイス(例えば、メモリ305、ディスクユニット308)に記憶される。
一実施形態では、クエリエンジン204は、コンピューティングデバイス101のユーザからのデータベース104を監査するためのクエリ要求を解析して、データベース104のテーブル、リスト又はインデックスのどのレコード又は行に対して監査を実行するかを決定する。例えば、クエリは、監査を実行するために、データベース104のテーブル、リスト又はインデックスのレコード又は行を識別するレコード又は行番号関数、又はSELECT句を含んでよい。データベース104のテーブル、リスト又はインデックスのレコード又は行を識別すると、ROWIDステートメントを介してレコード又は行識別子(RID)が識別され得る。
オペレーション903において、データベース管理システム102のクエリエンジン204により、クエリに関連付けられたレコード又は行識別子(RID)及び構造化監査ログ501などの構造化監査ログに関連付けられたレコード又は行識別子の間に一致があるかどうかの判断が行われる。
上述の通り、構造化監査ログのRIDは、データベース管理システム102の記憶デバイス(例えば、メモリ305、ディスクユニット308)に記憶されるなど、データ構造に記憶されてよい。一実施形態では、クエリエンジン204は、自然言語処理を使用して、そのようなデータ構造における任意の一致を識別する。
クエリに関連付けられたRID及び構造化監査ログに関連付けられたRIDの間に一致がある場合、オペレーション904において、データベース管理システム102のクエリエンジン204は、図10に示すように、一致する構造化監査ログから監査済み情報を取得する。そのような監査済み情報は、メタデータフィールド503からの情報及び生データ画像フィールド508からの任意のデータ画像を含み得る。さらに、そのような監査済み情報は、図10に関連して以下でさらに論述する通り、任意のリンクされた構造化監査ログからの任意の監査済み情報を含み得る。
オペレーション905において、データベース管理システム102のクエリエンジン204は、図10に関連して以下で論述する通り、そのような監査済み情報を、コンピューティングデバイス101のユーザインタフェースを介するなどして、コンピューティングデバイス101のユーザに提供する。
図10は、本開示の一実施形態に係る、構造化監査ログに関連付けられたレコード又は行識別子(RID)と、データベースを監査するためのクエリに関連付けられたRIDとが一致する場合及び一致しない場合を示す。
図10を参照すると、クエリエンジン204は、構造化クエリログ1001などの構造化監査ログのRIDを記憶するデータ構造において、クエリに関連付けられたRIDの検索を実行し得る。データ構造及び図10において示す通り、クエリがRID=1に関連付けられており、構造化クエリログ1001がRID=1に関連付けられている場合(図10の要素1002を参照)、クエリエンジン204は、構造化クエリログ1001のRIDを、クエリに関連付けられたRIDと一致するものとして識別する。クエリに関連付けられたRIDと構造化監査ログに関連付けられたRIDとが一致すると、クエリエンジン204は、メタデータフィールド503における情報、及び、存在する場合は生データ画像フィールド508におけるデータ画像などの監査済み情報を取得する。さらに、そのような監査済み情報には、ポインタ1004を介して構造化監査ログ1001にリンクされている構造化監査ログ1003における監査済み情報など、任意のリンクされた履歴クエリを含んでよい。さらに、そのような監査済み情報には、図10に示す通り、ポインタ1006を介して構造化監査ログ1003にリンクされている構造化監査ログ1005における監査済み情報を含んでよい。そのような一致した構造化監査ログは、「RID MATCHED ZONE(RID一致ゾーン)」1007内に存在するとされている;一方、データベース104を監査するためのクエリに関連付けられたRIDと一致しないRIDに関連付けられた構造化監査ログは、「RID UNMATCHED ZONE(RID不一致ゾーン)」1008に存在するとされている。
例えば、構造化監査ログ1009は、クエリエンジン204によって受信されたデータベース104を監査するためのクエリのうちの任意のもののRIDと一致するRIDに関連付けられていなくてよい。図10に示す通り、構造化監査ログ1009は、ポインタ1011を介して構造化監査ログ1010にリンクされている。
図9のオペレーション903に戻ると、データベース104を監査するためのクエリに関連付けられたRID及び構造化監査ログのRIDの間に不一致がある場合、オペレーション906において、データベース管理システム102のクエリエンジン204は、リクエスタ(コンピューティングデバイス101のユーザ)に対し、コンピューティングデバイス101のユーザインタフェースを介するなどして、データベース104のテーブル、リスト又はインデックスのレコード又は行がアクセスされていないことを通知する。
上述の結果として、本開示の実施形態は、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明のための構造化監査ログを構築及び使用するための手段を提供する。
さらに、本開示の原理は、データベース監査を含む技術又は技術分野を改善する。上述の通り、データベース監査とは、選択されたユーザデータベースアクションの監視及び記録である。それは、実行されたSQLステートメントの種類のような個々のアクション、又は、ユーザ名、アプリケーション、時間等のようなファクタの組み合わせに基づき得る。データベース監査の用途に基づき、データベースのどの行及び列が、誰によっていつアクセスされたかを特定することが重要である。残念ながら、特にNoSQL(非構造化クエリ言語(non-structured query language(SQL)))データベースの場合、そのような情報は、容易に追跡及び記録されない。NoSQLデータベースは、リレーショナルデータベースにおいて使用される表形式の関係とは異なる手段でモデル化されたデータの記憶及び取得のためのメカニズムを提供する。NoSQLデータベースにより使用されるデータ構造(例えば、キーと値のペア)は、リレーショナルデータベースにおいてデフォルトで使用されるそれらとは異なり、NoSQLにおけるいくつかのオペレーションを高速化する。さらに、NoSQLデータベースは非構造化ストレージを使用しており、これにより大量の情報を高性能かつ俊敏に処理することが可能である。例えば、NoSQLデータベースは、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶し得る。しかしながら、複数の処理ノード及び複数のサーバにまたがって非構造化データを記憶することにより、そのようなデータベースの監査に困難が生じている。現状では、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、監査プラグインが使用されることがある。残念ながら、データオペレーション(例えば、更新オペレーション、読取オペレーション)のみが記録される。監視及び記録されるデータが限定的である結果として、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において監査は不十分である。代替的に、NoSQLデータベースなどにおけるデータベースアクションを監視及び記録する試みのために、テンポラルテーブルが使用されることがある。残念ながら、いくつかのオペレーションは記録されない。監査プラグインを使用するシナリオと同様に、テンポラルテーブルを使用する結果として、監視及び記録されるデータが限定的となり、それゆえに、データベースのどの行及び列が、誰によっていつアクセスされたかを特定するという点において、監査が不十分となる結果が生じている。さらに、テンポラルテーブルの使用は、特に、データベース上での頻繁な読取、追加、削除、及び更新オペレーションを伴う場合に、時間を要し、非効率的である。加えて、トランザクションの並行処理(重複する時間中に同じデータベースの行にアクセスするなどの2つのトランザクションの同時実行)におけるダーティリードデータなどの特定の情報を取得するという要求を、テンポラルテーブルを用いて達成できないことがある。したがって、データベース(例えば、NoSQLデータベース)のデータアクセスの正確な証明を可能にするような効率的な方法で、データベースアクションを効果的に監査するための手段は、現状において存在しない。
本開示の実施形態は、データベースのテーブル、リスト又はインデックスを解析して、時系列データ、ユーザデータ、インターネットプロトコルアドレス及びオペレーションデータを含むメタデータを識別することにより、そのような技術を改善する。本明細書において使用される「メタデータ」とは、他のデータに関する情報を提供するデータを指す。本明細書において使用される「時系列データ」とは、データベースのテーブル、リスト又はインデックスからの情報を更新、挿入、削除等するためにクエリが発行された特定の順序を指す。本明細書において使用される「ユーザデータ」とは、データベースのテーブル、リスト又はインデックスのレコード又は行にアクセスするためのクエリを発行した特定のユーザの識別子を指す。本明細書において使用される「インターネットプロトコル(IP)アドレス」とは、データベースなどのデバイスに割り当てられた一意の識別子を指す。本明細書において使用される「オペレーションデータ」とは、コンピューティングデバイスのユーザが発行したクエリにより、データベース上での実行を要求されているオペレーションを指す。一実施形態では、そのようなオペレーションは、更新オペレーション、削除オペレーション、読取オペレーション、データ定義言語オペレーション(構造化クエリ言語におけるテーブル作成、テーブル変更、テーブル削除、ビュー作成等のようなデータ構造の定義に使用される)、バッチデータ操作言語オペレーション(データベースのテーブル、リスト又はインデックスの複数のレコード又は行の操作に使用される)等を含む。識別されたメタデータは、当該メタデータが抽出されたデータベースのテーブル、リスト又はインデックスの対応するレコード又は行に関連付けられている。その後、対応するデータオペレーションに基づき、データベースの解析されたテーブル、リスト又はインデックスのレコード又は行に関連付けられた生データ画像を記録するかどうかに関する決定が行われる。上述の通り、本明細書において使用される「生データ画像」又は「データ画像」とは、データオペレーション(例えば、更新オペレーション)の結果として生じるデータの画像を指す。例えば、データオペレーションの結果として生じるデータのデータ画像は、更新又は挿入オペレーションに応答して記録されることがある。しかしながら、データオペレーションの結果として生じるデータのデータ画像は、並行トランザクションが存在する場合を除き、削除オペレーションに応答して、又は読取/クエリオペレーションに応答して記録されないことがある。その後、識別されたメタデータ及び記録されたデータ画像は、これらが存在する場合、そのような構造化情報が取得されたデータベース上の解析されたテーブル、リスト又はインデックスのレコード又は行のレコード又は行識別子に関連付けられた「構造化監査ログ」に記憶される。本明細書において使用される「構造化監査ログ」とは、上述の監査情報(例えば、メタデータ、記録されたデータ画像等)を記憶するデータ構造を指す。一実施形態では、構造化監査ログは、データベース管理システムの記憶デバイス(例えば、メモリ、ディスクユニット)に記憶され、データベースを監査するための将来のクエリは、データベースに関する監査情報を取得するために、そのような記憶された構造化監査ログにアクセスし得る。一実施形態では、適切な監査情報は、クエリに関連付けられた行又はレコード識別子と、要求されたデータベース監査情報を含む構造化監査ログに関連付けられたレコード又は行識別子との一致に基づき、記憶された構造化監査ログから取得される。このようにして、構造化監査ログの活用により、データベース監査の精度及び効率が改善される。さらに、このようにして、データベース監査を含む技術分野において改善がなされる。
本開示により提供される技術的解決策は、人間の精神において、又はペン及び紙を使用する人間によって実行することができない。すなわち、本開示により提供される技術的解決策は、コンピュータを使用することなく、任意の合理的な時間量において、及び任意の合理的な正確性の期待で、人間の精神において、又はペン及び紙を使用する人間によって実現することができない。
本開示の一実施形態では、データベース監査の精度及び効率を改善するためのコンピュータ実装方法は、メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する段階、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(Internet Protocol,IP)アドレス及びオペレーションデータを有する、を備える。本方法は、前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける段階をさらに備える。加えて、本方法は、対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する段階を備える。さらに、本方法は、前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する段階を備える。
加えて、本開示の一実施形態では、本方法は、並行トランザクションが存在する場合に、読取オペレーションの結果として生じるデータの画像を記録する段階をさらに備える。加えて、本方法は、前記並行トランザクションが存在する場合に、前記読取オペレーションの結果として生じる前記データの前記記録画像を前記構造化監査ログに記憶することに応答して、前記構造化監査ログからトランザクションの並行処理に関わるダーティリードデータを取得する段階を備える。
さらに、本開示の一実施形態では、本方法は、構造化クエリ言語データ定義言語ステートメントをデータ定義言語オペレーションのためのデータ画像として記録する段階をさらに備える。加えて、本方法は、構造化クエリ言語式をバッチデータ操作言語オペレーションのためのデータ画像として記録する段階を備える。
加えて、本開示の一実施形態では、本方法は、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のクエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせる段階をさらに備える。
さらに、本開示の一実施形態では、本方法は、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の前記クエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせるためのポインタを前記構造化監査ログにおいて記憶する段階をさらに備える。
加えて、本開示の一実施形態では、本方法は、前記データベースを監査するためのクエリ要求を受信する段階をさらに備える。加えて、本方法は、前記データベースを監査するための前記クエリ要求に関連して、前記データベースのテーブル、リスト又はインデックスのレコード又は行識別子を識別する段階をさらに備える。
さらに、本開示の一実施形態では、本方法は、前記クエリ要求に関連付けられた前記識別されたレコード又は行識別子、及び前記構造化監査ログに関連付けられた前記レコード又は行識別子の間の一致に応答して、前記構造化監査ログから監査済み情報を取得する段階をさらに備える。
上記で説明された方法の実施形態の他の形態は、システムの形態及びコンピュータプログラム製品の形態である。
本開示の様々な実施形態の説明は、例示の目的で提示されるが、網羅的であることも、開示される実施形態に限定されることも意図されていない。説明された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用又はそれに対する技術的改善を最適に説明し、あるいは、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択された。
Claims (20)
- データベース監査の精度及び効率を改善するためのコンピュータ実装方法であって:
メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する段階、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを有する;
前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける段階;
対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する段階;及び
前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する段階
を備える、方法。 - 並行トランザクションが存在する場合に、読取オペレーションの結果として生じるデータの画像を記録する段階;及び
前記並行トランザクションが存在する場合に、前記読取オペレーションの結果として生じる前記データの前記記録されたデータ画像画像を前記構造化監査ログに記憶することに応答して、前記構造化監査ログからトランザクションの並行処理に関わるダーティリードデータを取得する段階
をさらに備える、請求項1に記載の方法。 - 構造化クエリ言語データ定義言語ステートメントをデータ定義言語オペレーションのためのデータ画像として記録する段階;及び
構造化クエリ言語式をバッチデータ操作言語オペレーションのためのデータ画像として記録する段階
をさらに備える、請求項1に記載の方法。 - 前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のクエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせる段階
をさらに備える、請求項1に記載の方法。 - 前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の前記クエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせるためのポインタを前記構造化監査ログにおいて記憶する段階
をさらに備える、請求項4に記載の方法。 - 前記データベースを監査するためのクエリ要求を受信する段階;及び
前記データベースを監査するための前記クエリ要求に関連して、前記データベースのテーブル、リスト又はインデックスのレコード又は行識別子を識別する段階
をさらに備える、請求項1から5のいずれか一項に記載の方法。 - 前記クエリ要求に関連付けられた前記識別されたレコード又は行識別子、及び前記構造化監査ログに関連付けられた前記レコード又は行識別子の間の一致に応答して、前記構造化監査ログから監査済み情報を取得する段階
をさらに備える、請求項6に記載の方法。 - データベース監査の精度及び効率を改善するためのコンピュータプログラムであって、前記コンピュータプログラムは、プログラムコードを備え、前記プログラムコードは:
メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する手順、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む;
前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける手順;
対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する手順;及び
前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する手順
のためのプログラミング命令を有する、
コンピュータプログラム。 - 前記プログラムコードは:
並行トランザクションが存在する場合に、読取オペレーションの結果として生じるデータの画像を記録する手順;及び
前記並行トランザクションが存在する場合に、前記読取オペレーションの結果として生じる前記データの前記記録されたデータ画像画像を前記構造化監査ログに記憶することに応答して、前記構造化監査ログからトランザクションの並行処理に関わるダーティリードデータを取得する手順
のためのプログラミング命令をさらに有する、請求項8に記載のコンピュータプログラム。 - 前記プログラムコードは:
構造化クエリ言語データ定義言語ステートメントをデータ定義言語オペレーションのためのデータ画像として記録する手順;及び
構造化クエリ言語式をバッチデータ操作言語オペレーションのためのデータ画像として記録する手順
のためのプログラミング命令をさらに有する、請求項8に記載のコンピュータプログラム。 - 前記プログラムコードは:
前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のクエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせる手順
のためのプログラミング命令をさらに有する、請求項8に記載のコンピュータプログラム。 - 前記プログラムコードは:
前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の前記クエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせるためのポインタを前記構造化監査ログにおいて記憶する手順
のためのプログラミング命令をさらに有する、請求項11に記載のコンピュータプログラム。 - 前記プログラムコードは:
前記データベースを監査するためのクエリ要求を受信する手順;及び
前記データベースを監査するための前記クエリ要求に関連して、前記データベースのテーブル、リスト又はインデックスのレコード又は行識別子を識別する手順
のためのプログラミング命令をさらに有する、請求項8から12のいずれか一項に記載のコンピュータプログラム。 - 前記プログラムコードは:
前記クエリ要求に関連付けられた前記識別されたレコード又は行識別子、及び前記構造化監査ログに関連付けられた前記レコード又は行識別子の間の一致に応答して、前記構造化監査ログから監査済み情報を取得する手順
のためのプログラミング命令をさらに有する、請求項13に記載のコンピュータプログラム。 - データベース監査の精度及び効率を改善するためのコンピュータプログラムを記憶するためのメモリ;及び
前記メモリに接続されたプロセッサ、ここで、前記プロセッサは:
メタデータを識別するためにデータベースのテーブル、リスト又はインデックスを解析する手順、ここで、前記メタデータは、時系列データ、ユーザデータ、インターネットプロトコル(IP)アドレス及びオペレーションデータを含む;
前記識別されたメタデータを、前記データベースの前記解析されたテーブル、リスト又はインデックスの対応するレコード又は行に関連付ける手順;
対応するデータオペレーションに基づき、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行に関連付けられたデータ画像を記録するかどうかを決定する手順;及び
前記識別されたメタデータ及び記録されたデータ画像を、これらが存在する場合に、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のレコード又は行識別子に関連付けられた構造化監査ログに記憶する手順
を有する前記コンピュータプログラムのプログラム命令を実行するように構成されている
を備える、システム。 - 前記コンピュータプログラムの前記プログラム命令は:
並行トランザクションが存在する場合に、読取オペレーションの結果として生じるデータの画像を記録する手順;及び
前記並行トランザクションが存在する場合に、前記読取オペレーションの結果として生じる前記データの前記記録されたデータ画像画像を前記構造化監査ログに記憶することに応答して、前記構造化監査ログからトランザクションの並行処理に関わるダーティリードデータを取得する手順
をさらに備える、請求項15に記載のシステム。 - 前記コンピュータプログラムの前記プログラム命令は:
構造化クエリ言語データ定義言語ステートメントをデータ定義言語オペレーションのためのデータ画像として記録する手順;及び
構造化クエリ言語式をバッチデータ操作言語オペレーションのためのデータ画像として記録する手順
をさらに備える、請求項15に記載のシステム。 - 前記コンピュータプログラムの前記プログラム命令は:
前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行のクエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせる手順
をさらに備える、請求項15に記載のシステム。 - 前記コンピュータプログラムの前記プログラム命令は:
前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の前記クエリを、前記データベースの前記解析されたテーブル、リスト又はインデックスの前記レコード又は行の以前に実行されたクエリにリンクさせるためのポインタを前記構造化監査ログにおいて記憶する手順
をさらに備える、請求項18に記載のシステム。 - 前記コンピュータプログラムの前記プログラム命令は:
前記データベースを監査するためのクエリ要求を受信する手順;及び
前記データベースを監査するための前記クエリ要求に関連して、前記データベースのテーブル、リスト又はインデックスのレコード又は行識別子を識別する手順
をさらに備える、請求項15から19のいずれか一項に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/708,440 | 2022-03-30 | ||
US17/708,440 US20230315715A1 (en) | 2022-03-30 | 2022-03-30 | Utilizing a structured audit log for improving accuracy and efficiency of database auditing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023152910A true JP2023152910A (ja) | 2023-10-17 |
Family
ID=88194495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023052304A Pending JP2023152910A (ja) | 2022-03-30 | 2023-03-28 | コンピュータ実装方法、コンピュータプログラム、システム(データベース監査の精度及び効率を改善するための構造化監査ログの活用) |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230315715A1 (ja) |
JP (1) | JP2023152910A (ja) |
CN (1) | CN116894022A (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768954B2 (en) * | 2020-06-16 | 2023-09-26 | Capital One Services, Llc | System, method and computer-accessible medium for capturing data changes |
CN114218273A (zh) * | 2021-12-08 | 2022-03-22 | 浪潮云信息技术股份公司 | 一种基于机器学习的数据库智能化安全审计方法及系统 |
-
2022
- 2022-03-30 US US17/708,440 patent/US20230315715A1/en active Pending
-
2023
- 2023-03-22 CN CN202310286431.8A patent/CN116894022A/zh active Pending
- 2023-03-28 JP JP2023052304A patent/JP2023152910A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116894022A (zh) | 2023-10-17 |
US20230315715A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8332389B2 (en) | Join order for a database query | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
US10565201B2 (en) | Query processing management in a database management system | |
US20160147751A1 (en) | Generating an index for a table in a database background | |
US10754858B2 (en) | Adaptive multi-index access plan for database queries | |
US11687546B2 (en) | Executing conditions with negation operators in analytical databases | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
US20200320153A1 (en) | Method for accessing data records of a master data management system | |
US20160342646A1 (en) | Database query cursor management | |
KR20110037889A (ko) | 구조화된 데이터 소스들과 비구조화된 데이터 소스들간의 상호 검색 및 경보 | |
JP2012113706A (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
US8965879B2 (en) | Unique join data caching method | |
JP2020522781A (ja) | クエリリソースキャッシングのためのシステムおよび方法 | |
US10380115B2 (en) | Cross column searching a relational database table | |
US9069817B2 (en) | Database row access control | |
US11354313B2 (en) | Transforming a user-defined table function to a derived table in a database management system | |
US9229969B2 (en) | Management of searches in a database system | |
US9984108B2 (en) | Database joins using uncertain criteria | |
US9928271B2 (en) | Aggregating and summarizing sequences of hierarchical records | |
US20160004749A1 (en) | Search system and search method | |
US11720563B1 (en) | Data storage and retrieval system for a cloud-based, multi-tenant application | |
US10657126B2 (en) | Meta-join and meta-group-by indexes for big data | |
JP2023152910A (ja) | コンピュータ実装方法、コンピュータプログラム、システム(データベース監査の精度及び効率を改善するための構造化監査ログの活用) | |
Zhang et al. | Provenance in a Modifiable Data Set |