JP2005215795A - データベースのセキュリティ維持システム及びその方法及びそのプログラム - Google Patents

データベースのセキュリティ維持システム及びその方法及びそのプログラム Download PDF

Info

Publication number
JP2005215795A
JP2005215795A JP2004018912A JP2004018912A JP2005215795A JP 2005215795 A JP2005215795 A JP 2005215795A JP 2004018912 A JP2004018912 A JP 2004018912A JP 2004018912 A JP2004018912 A JP 2004018912A JP 2005215795 A JP2005215795 A JP 2005215795A
Authority
JP
Japan
Prior art keywords
database
update
user
trigger
access
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.)
Withdrawn
Application number
JP2004018912A
Other languages
English (en)
Inventor
Masami Sakurai
昌美 櫻井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2004018912A priority Critical patent/JP2005215795A/ja
Publication of JP2005215795A publication Critical patent/JP2005215795A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】データベースベンダーが提供する管理ツール、またはミドルウェアからの操作に対して、データベースセキュリティを一定のレベルで維持するシステム及びその方法の提供にある。
【解決手段】更新対象データベース30に実装するデータベーストリガー50が、ユーザが有する参照レベル17と、対象データベースの公開レベル22と、を比較し、参照レベル17が公開レベル22より低いとき、システム管理者に不許可アクセスの警告メールを送付し、参照レベル17が前記公開レベル22以上であるとき、アクセスを許可して、更新対象データベース30に対する更新履歴情報を更新履歴データベース40に採取する。
【選択図】 図1

Description

この発明は、データベースのセキュリティに関し、特に、端末の利用者や直接データ更新するQL文やミドルウェアなどのユーザに対して、データベースのアクセス制限や更新履歴の採取をデータベーストリガーに実行させて、セキュリティレベルを確保するデータベースのセキュリティ維持システム及びその方法及びそのプログラムに関する。
従来、ユーザのデータベースアクセスに対して、データベースを保全するため、アクセス権によって操作を制限することが行われている。このアクセス権は、ユーザ個人に与えられる資格で、パスワードによって判定されて、データベース操作を制限する。しかし、ユーザが「なりすまし」をしている場合は、データ保全が万全でなくなる。その対策として、パスワード提示によってアクセス権を有するユーザにデータ提供する際に、所定の経過時間を置き、この所定時間の間に、システム管理者に該アクセスを通知することによって、不許可ユーザにデータ漏洩することを防止する例がある。この仕組みは、一つのアプリケーションプログラムとして作り込まれるため、市販のデータベースアクセスツールには適用できない。また、更新履歴を採取することができない(例えば、特許文献1)。
更に、アプリケーションプログラムとして組み込まれるのでなく、データベース自体に組み込まれているトリガーを利用して、データベースを保全する例がある。この例では、データベースアクセスによって自動的に実行されるトリガーが、データベースオブジェクトに列を追加する等の構成変更など新たに保全する対象が生じたとき、影響を受けるアクセス手続きを無効にすることに用いている。このデータベース保全の目的は、データベースの整合性を保つためのもので、ユーザからの不許可アクセスに対して保全するものではない(例えば、特許文献2)。
特開平3−127150号公報(3ページの右下ブロック及び図1) 特開平7−192019号公報(段落0016乃至0019)
従来の更新履歴採取の仕方では、データベースに対して更新処理を行うタイミングで更新履歴を残す手段をアプリケーション側に実装しているため、以下のような場面については、想定されていなかった。
・直接、SQL文でデータを変更する。
・ミドルウェアなどを利用してデータを変更する。
このような状況は、90年代半ばよりミドルウェアが普及し、誰でも簡単にデータベースを操作できる環境が整備されたことが一因である。更に、ミドルウェアの登場をきっかけにデータが変更される過程が不明確になり、次第にアプリケーションバグの特定が困難になる状況が生じるようになった。
これらの問題について、従来の技術では、データベースを更新するに当たり、アプリケーションプログラムからデータベースを直接更新する運用だけしか想定されておらず、上述の問題への具体的な対策が施されていない。そこで、この発明では、データベースの一つ機能であるデータベーストリガーに着目し、以下の仕組みをデータベーストリガーに取り入れ、問題の解決を図ることにする。
(1)不許可アクセスを警告する仕組み。
(2)データ更新の過程を把握するため、データベーストリガーを利用して、自動的に更新履歴情報を収集する仕組み。
(3)データベースのデータベーストリガー機能を利用して、上記(1)及び(2)の機能を容易に実現する仕組み。
これらの機能をデータベーストリガーに実行させることにより、従来からの問題点を解消し、データベースに対するセキュリティ対策を強化することを図る。
この発明の目的は、SQL文による直接のデータ操作、各データベースベンダが提供する管理ツール、またはミドルウェアからの操作に対して、一定のセキュリティレベルを実現する。
更に、他の目的は、アプリケーション側で意識することなく、データベースの更新履歴情報を自動採取する機能をデータベーストリガーによって実現する。
更に、他の目的は、データベースに対する不許可アクセスを検知し、特定のメールアドレスに警告メールを自動発信する機能をデータベーストリガによって実現する。
そのため、この発明の、データベースに対する不許可なユーザのアクセスを監視して、前記データベースのセキュリティを維持するシステムにあって、データベースに実装するデータベーストリガーが、データベースにアクセスするユーザが有する参照レベルと、前記ユーザがアクセスする更新対象データベースの公開レベルと、を比較し、前記参照レベルが前記公開レベルより低いとき、所定のメールアドレスに不許可アクセスの警告メールを送付し、前記参照レベルが前記公開レベル以上であるとき、前記更新対象データベースの表へのアクセスを前記ユーザに許可して、更新処理する行及び列の更新処理前の値と更新処理後の値とでなる更新履歴を採取する、ことを特徴とする。
更に、前記データベーストリガーは、前記データベースへのアクセスによって起動され、データベースの表に対する処理前に、前記参照レベルと公開レベルとを比較して、不許可アクセスに警告メールを発する文トリガー(前)手段と、前記表の行に対して、挿入と、更新と、削除と、でなる処理のいずれか一つを実行するときに起動され、前記行の処理対象列の更新処理前の値及び更新処理後の値でなる履歴情報を前記処理対象列の終わりまで繰り返して更新履歴データベースに採取する行トリガー(前)手段と、前記行トリガー(前)手段の実行を処理対象行の終わりまで繰り返させる行トリガー(後)手段と、前記データベーストリガーを終了させる文トリガー(後)手段と、を含むことを特徴とする。
更に、前記参照レベルは、ユーザデータベースとグループデータベースとを結合してなるユーザ情報ビューに含まれるユーザID及びグループIDによって指定され、前記ユーザがアクセスできるデータベース対象を制限する指標であることを特徴とする。
更に、前記公開レベルは、公開レベルデータベースに登録される各表名に対して、前記表の公開を制限する指標であることを特徴とする。
更に、前記更新履歴情報は、更新対象データベースの表の行毎に、ユーザIDと、更新日と、更新した列名と、更新処理前の値と、更新処理後の値と、を含むことを特徴とする。
この発明の効果は、データベースに対する不許可なユーザのアクセスを防止できることである。その理由は、ユーザの参照レベルと更新対象データベースの公開レベルとによって、不許可ユーザを検出できるからである。
この発明を実施するための最良の形態について図面を参照して説明する。この発明のデータベースのセキュリティ維持システムは、更新対象データベースにデータが追加、更新、削除される前のタイミングでデータベーストリガーを起動し、ユーザチェック及びデータ更新履歴の採取する。この方法を実行するシステムを示す図1を参照すると、ユーザデータベース11と、グループデータベース12と、ユーザデータベース11及びグループデータベース12を結合してなるユーザ情報ビュー13と、更新対象の表及びそれの公開レベルを登録する公開レベルデータベース20と、更新対象データベース30と、データベースに実装され、ユーザのアクセスによって起動されるデータベーストリガー50と、データベーストリガー50が採取する更新履歴を格納する更新履歴データベース40と、を備える。
更に、上述の各部の細部を図2を参照して説明すると、ユーザデータベース11には図示しない、ユーザID(UID)と、グループID(GID)と、メールアドレス(Eーmail)と、が登録されている。グループデータベース12には図示しない、グループIDと、データベースアクセスの制限を示す指標である参照レベルと、を含む。
図2(a)を参照すると、ユーザデータベース11とグループデータベース12とを結合してなるユーザ情報ビュー13には、ユーザID(UID)14と、グループID(GID)15と、メールアドレス(E−mail)16と、アクセス制限の指標である参照レベル17と、を含む。参照レベル17は、ユーザによって参照できるデータベースの制限を数値で表して設定される。
図2(b)を参照すると、公開レベルデータベース20には、表の名称である表名21と、管理対象となる表の重要度を管理してアクセスを制限する指標である公開レベル22と、を含む。公開レベル22の指標は、重要データが含まれて公開を制限する場合は高い数値を、一般に公開できるデータの場合は低い数値が設定される。
図2(c)を参照すると、更新履歴データベース40には、管理対象となる行毎に更新履歴として、ユーザID(UID)41と、更新日42と、列名43と、各列に対して、更新処理前の値であるデータ(BEFORE)44と、更新処理後の値であるデータ(AFTER)45と、を含む項目が含まれる。
更新対象データベース30は表を指し、それの行及び列に、追加(INSERT)、変更(UPDATE)、削除(DELETE)のいずれかの操作をする対象であり、データベーストリガ手段が実装される全てのデータベースが含まれる。
データベーストリガー50には、文トリガー(前)手段51と、行トリガー(前)手段52と、行トリガー(後)手段53と、文トリガー(後)手段54と、を備える。
文トリガー(前)手段51は、1つのSQL文に対して1回起動される処理であり、更新対象データベースの表に対する追加(INSERT)、更新(UPDATE)、削除(DELETE)が実行される直前のタイミングで動作する。
行トリガー(前)手段52は、表の行に対して、列データ1件毎に1回起動される処理であり、更新内容が行に書き込まれる直前のタイミングで動作し、追加(INSERT)、更新(UPDATE)、削除(DELETE)で処理が異なる。
行トリガー(後)手段53は、行に対する処理を繰り返すための手段で、一行の処理完了毎に起動され、処理終了を判定する。
文トリガー(後)手段54は、表に対するデータベーストリガー50の完了を判定する。
この実施形態の動作について、図1を援用し、この方法のフローチャートである図3を参照して説明する。更新対象データベース30に対して、SQL文が1件実行されるタイミングで(図3のステップ101)、文トリガー(前)手段51が1回起動され、アクセスするユーザが不許可であるか否かを検査する(ステップ102)。
不許可アクセスの検査は、定数として更新対象データベース30の文トリガー(前)手段51に対して表名を定義し、該表名をキーとして公開レベルデータベース20より公開レベル22を取得する(ステップ103)。ログインユーザのユーザIDをキーとして、ユーザ情報ビュー13よりメールアドレス(E−mail)16及び参照レベルを取得する(ステップ104)。取得した公開レベル22と参照レベル17の指標の数値を比較し、公開レベル22に対して参照レベル17が低い場合は、不許可アクセスと判定し(ステップ105の公開レベル>参照レベル)、メールアドレス16の特定のユーザあるいは管理者に、不許可アクセスの警告メールを送信する(ステップ123)。SQL文は実行されずに終了する(ステップ124)。
次に、公開レベル22が参照レベル17以下の場合(ステップ105の公開レベル<=参照レベル)、SQL文の更新処理を実行する(ステップ106)。一つのSQL文が表の行に対して、複数件の列データを更新するような場合、1件毎に列に情報を書き込む直前のタイミングで行トリガー手段52が起動する。この行トリガー手段52を使用して、更新履歴が取得される。この更新履歴取得には、3つのパターンがあり、それぞれに異なる更新履歴が採取される。
(1)追加(INSERT)の場合(ステップ106の追加)、列データの追加情報の記録を取得するために、1件の追加処理に対して、1件のデータが作成され、更新履歴データベース40に書き込む。該データは、ユーザID(UID)41に「ログインユーザ名」を書き込み、更新日42に「システム日付」を書き込み、列名43に更新対象データベース30の更新対象表の「主キー名」を書き込み、処理後(AFTER)45に「SQL文で指定された主キー値」を書き込む(ステップ108)。
(2)削除(DELETE)の場合(ステップ106の削除)、列データの削除情報の記録を取得するために、更新履歴データベース40に対して、1件の削除処理に対して、1件のデータが作成される。書き込まれる履歴データは、ユーザID41に「ログインユーザ名」を書き込み、更新日42に「システム日付」を書き込み、列名43に「更新対象データベース内の更新対象表の主キー名」を書き込み、処理前44に「更新対象データベース内の更新対象表の主キー値」を書き込む(ステップ112)。
(3)更新(UPDATE)の場合(ステップ106の更新)、データの更新情報の記録を取得するために、更新対象データベース30の表に対して、各行の列について、更新前の値と更新後の値を比較し、差異のある場合(ステップ116,ステップ118)、更新履歴データベース40に以下の情報が書き込まれる。1件の更新処理に対して、値に変更のあった列数分のデータが作成されるので、値に変更がなければゼロ件となることもある。更新履歴データベース40に書き込まれるデータは、ユーザID41に「ログインユーザ名」を書き込み、更新日42に「システム日付」を書き込み、列名43に「更新対象データベース内の該当する項目名」を書き込み、処理前(BEFORE)44に「更新対象データベースの内の該当する項目が持つ値」を書き込み、処理後(AFTER)45に「SQL文で指定された変更する値」を書き込む(ステップ117、ステップ119)。
以上の(1)、(2)、(3)の各処理は、更新対象の表における行及びその列に対して、所要の回数ループされる(ステップ107からステップ109、ステップ11からステップ113,ステップ116からステップ120)。各ループの終了で、データベーストリガー50が終了する(ステップ110,ステップ114,ステップ121)。
なお、更新履歴データベース40は、更新対象データベース30の表に対して、1対1で作成される。また、上記の(1)、(2)、(3)については、利用目的に応じて、全ての機能か、もしくはいずれかの一部機能かが実装される。
さまざまなツールやミドルウェアやアプリケーションなどのユーザによるデータベース更新に対して、特にリレーショナルデータベースに対して、それのセキュリティをユーザ側に負担をかけないで維持することが必要なデータベース分野に適用できる。
この発明のデータベースのセキュリティ維持システムの仕組みを示す図である。 分図(a)は、ユーザ情報ビュー、分図(b)は公開レベルデータベース、分図(c)は更新履歴データベース、の項目構成をそれぞれ示す図である。 このシステムの方法を実行するフローチャートを示す図である。
符号の説明
11 ユーザデータベース
12 グループデータベース
13 ユーザ情報ビュー
20 公開レベルデータベース
30 更新対象データベース
40 更新履歴データベース
50 データベーストリガー
51 文トリガー(前)手段
52 行トリガー(前)手段
53 行トリガー(後)手段
54 文トリガー(後)手段

Claims (8)

  1. データベースに対する不許可なユーザのアクセスを監視して、前記データベースのセキュリティを維持するシステムにあって、
    データベースに実装するデータベーストリガーが、
    データベースにアクセスするユーザが有する参照レベルと、前記ユーザがアクセスする更新対象データベースの公開レベルと、を比較し、前記参照レベルが前記公開レベルより低いとき、所定のメールアドレスに不許可アクセスの警告メールを送付し、前記参照レベルが前記公開レベル以上であるとき、前記更新対象データベースの表へのアクセスを前記ユーザに許可して、更新処理する行及び列の更新処理前の値と更新処理後の値とでなる更新履歴を採取する、ことを特徴とするデータベースのセキュリティ維持システム。
  2. 前記データベーストリガーは、
    前記データベースへのアクセスによって起動され、データベースの表に対する処理前に、前記参照レベルと公開レベルとを比較して、不許可アクセスに警告メールを発する文トリガー(前)手段と、
    前記表の行に対して、挿入と、更新と、削除と、でなる処理のいずれか一つを実行するときに起動され、前記行の処理対象列の更新処理前の値及び更新処理後の値でなる履歴情報を前記処理対象列の終わりまで繰り返して更新履歴データベースに採取する行トリガー(前)手段と、
    前記行トリガー(前)手段の実行を処理対象行の終わりまで繰り返させる行トリガー(後)手段と、
    前記データベーストリガーを終了させる文トリガー(後)手段と、
    を含むことを特徴とする請求項1記載のデータベースのセキュリティ維持システム。
  3. 前記参照レベルは、
    ユーザデータベースとグループデータベースとを結合してなるユーザ情報ビューに含まれるユーザID及びグループIDによって指定され、前記ユーザがアクセスできるデータベース対象を制限する指標であることを特徴とする請求項1記載のデータベースのセキュリティ維持システム。
  4. 前記公開レベルは、
    公開レベルデータベースに登録される各表名に対して、前記表の公開を制限する指標であることを特徴とする請求項1記載のデータベースのセキュリティ維持システム。
  5. 前記更新履歴情報は、
    更新対象データベースの表の行毎に、ユーザIDと、更新日と、更新した列名と、更新処理前の値と、更新処理後の値と、
    を含むことを特徴とする請求項1記載のデータベースのセキュリティ維持システム。
  6. データベースに対する不許可なユーザのアクセスを監視して、前記データベースのセキュリティを維持する方法にあって、
    データベースにアクセスしたときに起動されるデータベーストリガーがユーザ情報ビューを参照し、前記参照レベルと、更新対象データベースの表の公開レベルと、を比較し、前記アクセスが許可されるか否かを検査するステップと、
    前記ユーザのアクセスが不許可であるとき、前記ユーザ情報ビューにあるメールアドレスに不許可アクセスの警告メールを送付するステップと、
    前記アクセスが許可されているとき、前記更新対象データベースの表に対して、更新する行及び列の更新処理前の値と、更新処理後の値と、を更新情報データベースに採取するステップと、
    更新する対象の行及び列の終わりまで前記採取するステップを繰り返し、前記データベーストリガーを終了するステップと、
    を実行することを特徴とするデータベースのセキュリティ維持システムの方法。
  7. データベースにアクセスしたときに起動されるデータベーストリガーがユーザ情報ビューを参照し、前記参照レベルと、更新対象データベースの表の公開レベルと、を比較し、前記アクセスが許可されるか否かを検査するステップと、
    前記ユーザのアクセスが不許可であるとき、前記ユーザ情報ビューにあるメールアドレスに不許可アクセスの警告メールを送付するステップと、
    前記アクセスが許可されているとき、前記更新対象データベースの表に対して、更新する行及び列の更新処理前の値と、更新処理後の値と、を更新履歴データベースに採取するステップと、
    更新する対象の行及び列の終わりまで前記採取するステップを繰り返し、前記データベーストリガーを終了するステップと、
    を実行させるプログラム。
  8. 前記ユーザは、
    データベースに、端末からアクセスする利用者あるいは直接にデータ更新するSQL文またはデータ更新するミドルウェアを含むことを特徴とする請求項1乃至請求項7記載のデータベースのセキュリティ維持システム及びその方法及びそのプログラム。
JP2004018912A 2004-01-27 2004-01-27 データベースのセキュリティ維持システム及びその方法及びそのプログラム Withdrawn JP2005215795A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004018912A JP2005215795A (ja) 2004-01-27 2004-01-27 データベースのセキュリティ維持システム及びその方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004018912A JP2005215795A (ja) 2004-01-27 2004-01-27 データベースのセキュリティ維持システム及びその方法及びそのプログラム

Publications (1)

Publication Number Publication Date
JP2005215795A true JP2005215795A (ja) 2005-08-11

Family

ID=34903275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004018912A Withdrawn JP2005215795A (ja) 2004-01-27 2004-01-27 データベースのセキュリティ維持システム及びその方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP2005215795A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016518671A (ja) * 2013-05-17 2016-06-23 マイクロソフト テクノロジー ライセンシング,エルエルシー 最近の関連するコンテンツをユーザーに示すアクティビティのインターネットでアクセス可能なデータストレージビュー

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016518671A (ja) * 2013-05-17 2016-06-23 マイクロソフト テクノロジー ライセンシング,エルエルシー 最近の関連するコンテンツをユーザーに示すアクティビティのインターネットでアクセス可能なデータストレージビュー

Similar Documents

Publication Publication Date Title
US6405212B1 (en) Database system event triggers
US9037960B2 (en) Monitoring and tracking application usage
US7085780B2 (en) Method and apparatus for monitoring a database system
US9953143B2 (en) Software identifier based correlation
US8676846B2 (en) Methods, systems, and computer program products for providing a generic database security application using virtual private database functionality with a common security policy function
CN106295355B (zh) 一种面向Linux服务器的主动安全保障方法
US9424407B2 (en) Weak password support in a multi-user environment
US20140380404A1 (en) Automatic data protection in a computer system
JP2006179009A (ja) Crmデータベースのための保護されたビュー
CN111767573A (zh) 数据库安全管理方法、装置、电子设备及可读存储介质
JP6655731B2 (ja) システム環境及びユーザ行動分析基盤の自己防御保安装置とその作動方法
WO2021174817A1 (zh) 数据库自动化审计方法、系统、设备及存储介质
JP2008158959A (ja) 端末監視サーバと端末監視プログラムとデータ処理端末とデータ処理端末プログラム
US7885976B2 (en) Identification, notification, and control of data access quantity and patterns
CN106326760B (zh) 一种用于数据分析的访问控制规则描述方法
JP2008243172A (ja) アクセス権限制御システム
JP7180073B2 (ja) 判定プログラム、判定方法、および判定装置
JP2005215795A (ja) データベースのセキュリティ維持システム及びその方法及びそのプログラム
JP2009080560A (ja) アクセス権限制御システム
US8266177B1 (en) Empirical database access adjustment
CN112597536B (zh) 数据库表文件被非法删除的实时检测方法及装备
TWM581230U (zh) Detecting abnormal operation behavior device
Korotkevitch et al. Deadlocks
Levine et al. Software development and quality assurance
TWI442257B (zh) 外部設備使用權限管控系統及方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070126

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070720

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080613

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20081014