(57)【要約】【課題】  データベースに格納されたデータを第三者に漏洩されてしまうことを防止することができるデータベース制御装置を提供する。【解決手段】  利用者からの要求に応じてＳＱＬコマンドが、アプリケーションプログラム１６によってデータベース管理部１５Ａに発行される。発行されたＳＱＬコマンドは、コマンド取得部１７によって取得され、所定の識別子が、識別子挿入部１８ＡによってＳＱＬコマンドに挿入され、所定の識別子の挿入されたＳＱＬコマンドは、データベース管理部１５Ａに発行される。ＳＱＬコマンドがデータベース管理部１５Ａに発行されたとき、識別子挿入部１８Ａによって挿入されたＳＱＬコマンドが含まれる識別子が所定の識別子と同一か否かが、識別子判定部１９Ａによって判定される。この場合、同一と判定されるので、データベース１４に格納されたデータのアクセスが行われる。【選択図】      図１
2005209069.tif 000002
【特許請求の範囲】
【請求項１】
種々のデータを格納するデータベースと、
前記データベースを管理するデータベース管理手段と、
アプリケーションプログラムから前記データベース管理手段に発行されたコマンドを取得するコマンド取得手段と、
前記コマンド取得手段によって特定のアプリケーションプログラムから取得されたコマンドに所定の識別子を挿入する識別子挿入手段と、
前記コマンドが前記データベース管理手段に発行されたとき、前記識別子挿入手段によって挿入された、コマンドに含まれる識別子が前記所定の識別子と同一か否かを判定する識別子判定手段と、
前記識別子判定手段が同一と判定したとき、前記データベース管理手段は前記コマンドに基づいて前記データベースを制御する、
データベース制御装置。
【請求項２】
種々のデータを格納するデータベースと、
アプリケーションプログラムからデータベース管理手段に発行されたコマンドを取得するコマンド取得手段と、
前記コマンド取得手段によって特定のアプリケーションプログラムから取得されたコマンドに所定の識別子を挿入する識別子挿入手段と、
前記データベースを管理し、前記識別子挿入手段によってコマンドに挿入された識別子を、前記データベースにアクセスするためのアクセス命令に挿入し、該アクセス命令を発行するデータベース管理手段と、
前記データベース管理手段によって発行されたアクセス命令を取得するアクセス命令取得手段と、
前記アクセス命令取得手段によって取得されたアクセス命令に挿入された識別子が前記所定の識別子と同一か否かを判定する識別子判定手段とを有し、
前記識別子判定手段が同一と判定したとき、前記データベースに前記アクセス命令を出力する、
データベース制御装置。
【請求項３】
種々のデータを格納するデータベースと、
アプリケーションプログラムからデータベース管理手段に発行されたコマンドを取得するコマンド取得手段と、
前記コマンド取得手段によって特定のアプリケーションプログラムから取得されたコマンド毎に識別子を変更して割り当てる識別子割当手段と、
前記コマンド取得手段によって取得されたコマンドに、前記識別子割当手段によって割り当てられた識別子を挿入する識別子挿入手段と、
前記データベースを管理し、前記識別子挿入手段によってコマンドに挿入された識別子を、前記データベースにアクセスするためのアクセス命令に挿入し、該アクセス命令を発行するデータベース管理手段と、
前記データベース管理手段によって発行されたアクセス命令を取得するアクセス命令取得手段と、
前記アクセス命令取得手段によって取得されたアクセス命令に挿入された識別子が前記識別子割当手段が割り当てた識別子と同一か否かを判定する識別子判定手段とを有し、
前記識別子判定手段が同一と判定したとき、前記データベースに前記アクセス命令を出力する、
データベース制御装置。
【請求項４】
前記識別子は、グループを識別するグループ識別子と、前記グループ識別子に対応した識別子によって構成され、
前記識別子割当手段は、割り当てた識別子を記憶媒体に格納し、
前記識別判定手段は、前記アクセス命令に挿入された識別子を構成する前記グループ識別子に基づいて、前記記憶媒体から前記識別子割当手段が割り当てた識別子を検索し、検索した識別子と前記アクセス命令に挿入された識別子とが同一か否かを判定する、
請求項３に記載のデータベース制御装置。
【請求項５】
前記アクセス命令には、前記データベースを利用する利用者を認証するための認証情報が含まれ、
前記識別子判定手段が同一と判定したとき、前記コマンドが前記データベースにアクセス可能か否かを前記アクセス命令に含まれる認証情報に基づいて判定するアクセス判定手段をさらに有し、
前記アクセス判定手段がアクセス可能と判断したとき、前記データベースに前記アクセス命令を出力する、
請求項２から請求項４までのいずれかに記載のデータベース制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、種々のデータを利用者に提供する技術に関し、特にデータベースマネージメントシステムを利用したデータベース制御装置に関する。
【背景技術】
【０００２】
従来のデータベースマネージメント（以下、ＤＢＭＳという。）を利用した装置としては、利用者が入力したレコードの選択条件から、リレーショナルデータベースの表の操作言語であるＳＱＬ文（以下、ＳＱＬコマンドという。）を自動生成し、生成したＳＱＬコマンドをリレーショナルデータベースのＤＢＭＳに発行し、発行したＳＱＬコマンドに対する、リレーショナルデータベースのＤＢＭＳの処理結果を表示するものが知られている（例えば特許文献１の８段落目、第１図参照）。
【０００３】
また、一般的にＤＢＭＳは、ウェブサーバ用のアプリケーションプログラムから発行されるＳＱＬコマンドを入力し、入力したＳＱＬコマンドに基づいてデータベースに格納されたデータの読み書き（以下、データのアクセスという。）を制御するようになっている。また、ＳＱＬコマンドには、利用者を認証するためのユーザ識別子およびパスワードなどの認証情報が含まれ、ＤＢＭＳは、ＳＱＬコマンドに含まれる認証情報にしたがって認証を行い、認証した結果に基づいてデータのアクセスを制御するようになっている。
【特許文献１】特開２００１―３４５１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のＤＢＭＳを利用した装置では、第三者がＤＢＭＳを構成するプログラムやプロセスの脆弱性を狙って、ＤＢＭＳを管理する管理者用のユーザ識別子およびパスワードを奪い取る等のＤＢＭＳの乗っ取りが成功してしまうと、データベースに格納された機密データ等が第三者に漏洩されてしまうという問題がある。
【０００５】
本発明の目的は、上記従来の問題を解決するためになされたもので、その目的はデータベースに格納されたデータを第三者に漏洩されてしまうことを防止することができるデータベース制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、データベース制御装置は、種々のデータを格納するデータベースと、データベースを管理するデータベース管理手段と、アプリケーションプログラムからデータベース管理手段に発行されたコマンドを取得するコマンド取得手段と、コマンド取得手段によって特定のアプリケーションプログラムから取得されたコマンドに所定の識別子を挿入する識別子挿入手段と、コマンドがデータベース管理手段に発行されたとき、識別子挿入手段によって挿入された、コマンドに含まれる識別子が前記所定の識別子とが同一か否かを判定する識別子判定手段と、識別子判定手段が同一と判定したとき、データベース管理手段は、前記コマンドに基づいて前記データベースを制御する構成を有している。
【０００７】
この構成により、挿入されたコマンドに含まれる識別子が所定の識別子と同一だったとき、データベースを制御するため、ユーザ識別子およびパスワードを奪い取る等のＤＢＭＳの乗っ取りが成功しても、データベースに格納されたデータを第三者に漏洩されてしまうことを防止することができる。
【０００８】
本発明の第２の態様によれば、データベース制御装置は、種々のデータを格納するデータベースと、アプリケーションプログラムからデータベース管理手段に発行されたコマンドを取得するコマンド取得手段と、前記コマンド取得手段によって特定のアプリケーションから取得されたコマンドに所定の識別子を挿入する識別子挿入手段と、データベースを管理し、識別子挿入手段によってコマンドに挿入された識別子を、データベースにアクセスするためのアクセス命令に挿入し、該アクセス命令を発行するデータベース管理手段と、データベース管理手段によって発行されたアクセス命令を取得するアクセス命令取得手段と、アクセス命令取得手段によって取得されたアクセス命令に挿入された識別子が所定の識別子と同一か否かを判定する識別子判定手段とを有し、識別子判定手段が同一と判定したとき、データベースに前記アクセス命令を発行する構成を有している。
【０００９】
この構成により、データベース管理手段（ＤＢＭＳ）以外の手段が、データベースにアクセス命令を発行することによって、データベース管理手段（ＤＢＭＳ）が直にデータベースにアクセスしないため、データベース管理手段（ＤＢＭＳ）を構成するプログラムなどが不正に変更される等のＤＢＭＳの乗っ取りが成功しても、データベースに格納されたデータが第三者に漏洩されてしまうことを防止することができる。
【００１０】
本発明の第３の態様によれば、データベース制御装置は、種々のデータを格納するデータベースと、アプリケーションプログラムからデータベース管理手段に発行されたコマンドを取得するコマンド取得手段と、コマンド取得手段によって特定のアプリケーションプログラムから取得されたコマンド毎に識別子を変更して割り当てる識別子割当手段と、コマンド取得手段によって取得されたコマンドに、識別子割当手段によって割り当てられた識別子を挿入する識別子挿入手段と、データベースを管理し、識別子挿入手段によってコマンドに挿入された識別子を、データベースにアクセスするためのアクセス命令に挿入し、該アクセス命令を発行するデータベース管理手段と、データベース管理手段によって発行されたアクセス命令を取得するアクセス命令取得手段と、アクセス命令取得手段によって取得されたアクセス命令に挿入された識別子が識別子割当手段が割り当てた識別子と同一か否かを判定する識別子判定手段とを有し、識別子判定手段が同一と判定したとき、データベースに前記アクセス命令を出力する。
【００１１】
この構成により、識別子のうち何れかが第三者に漏洩されても、コマンド毎に識別子を変更して割り当てるため、不正なデータアクセスの防止効果を高めることができる。
【００１２】
本発明の実施態様によれば、データベース制御装置は、識別子が、グループを識別するグループ識別子と、グループ識別子に対応した識別子によって構成され、識別子割当手段が、割り当てた識別子を記憶媒体に格納し、識別子判定手段は、アクセス命令に挿入された識別子を構成するグループ識別子に基づいて、記憶媒体から識別子割当手段が割り当てた識別子を検索し、検索した識別子がアクセス命令に挿入された識別子が同一か否かを判定する。
【００１３】
この構成により、識別子割当手段が割り当てた識別子のうち全てを検索することなく、グループ識別子に基づいて、記憶媒体から割り当てた識別子を部分的に検索し、検索した識別子とアクセス命令に挿入された識別子とが同一か否かを判定するため、識別子の判定動作を効率的に行うことができる。
【００１４】
本発明の他の実施態様によれば、データベース制御装置は、アクセス命令には、データベースを利用する利用者を認証するための認証情報が含まれ、識別子判定手段が同一と判定したとき、コマンドがデータベースにアクセス可能か否かをアクセス命令に含まれる認証情報に基づいて判定するアクセス判定手段を有し、アクセス判定手段がアクセス可能と判断したとき、データベースにアクセス命令を出力する。
【００１５】
ＤＢＭＳがデータベースを利用する利用者を認証することが一般的ではあるが、この構成により、アクセス命令に含まれる認証情報に基づいてコマンドがデータベースにアクセス可能か否かを判定するため、データベース管理手段（ＤＢＭＳ）が管理している認証情報が不正に書き換えられた等のＤＢＭＳの乗っ取りが成功しても、データベースに格納されたデータを第三者に漏洩されてしまうことを防止することができる。
【発明の効果】
【００１６】
本発明は、データベースに格納されたデータを第三者に漏洩されてしまうことを防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
［第１の実施の形態］
図１は本発明の第１の実施の形態によるデータベース制御装置のブロック構成図である。図１に示すように、データベース制御装置１は、オペレーティングシステム１１と、通信部１２と、セキュリティ強化モジュール１３Ａと、データベース１４と、データベース管理部１５Ａと、アプリケーションプログラム１６を備えた構成を有している。
【００１９】
オペレーティングシステム１１は、データベース制御装置１が有するＣＰＵなどのプロセッサによって処理される基本ソフトウェアであり、ＬｉｎｕｘやセキュアＯＳなどによって構成されてもよい。通信部１２は、キーボード、マウスなどの入出力機器との通信およびネットワークとの通信を行うデバイスを有し、オペレーティングシステム１１にデータを入出力するようになっている。セキュリティ強化モジュール１３Ａは、本実施の形態におけるデータベース１４のセキュリティを強化するためのプログラムであり、セキュリティ強化モジュール１３Ａには、コマンド取得部１７および識別子挿入部１８Ａが含まれている。
【００２０】
データベース１４は、ハードディスクなどの記憶媒体によって構成され、種々のデータを格納するようになっている。データベース管理部１５Ａは識別子判定部１９Ａを含んでいる。データベース管理部１５Ａは、ＤＢＭＳと同等の機能を有してデータベース１４を管理し、オペレーティングシステム１１を介してＳＱＬコマンドを入力し、入力したＳＱＬコマンドに基づいてデータベース１４に格納されたデータのアクセスを制御するようになっている。また、ＳＱＬコマンドは、利用者がキーボードなどの入力機器から入力するような入力形式でもよく、加えて「Ｃ」や「Ｊａｖａ」等のプログラミング言語を用いた入力形式でもよい。また、データベース管理部１５Ａは、例えば、データベース１４に格納されたデータベースファイルのバイト位置を直接指定してデータを読み出すコマンド等のいかなる入力形式でも対応可能である。
【００２１】
なお、ＳＱＬコマンドには、データベース１４にアクセスするための情報、より詳細には、特定のデータを読み、書き、削除、更新するなどのアクセス情報や、データベース１４を利用する利用者を認証するユーザ識別子およびパスワードなどの認証情報などが含まれる。
【００２２】
アプリケーションプログラム１６は、予め決められた特定のプログラムであり、例えば、Ｗｅｂサーバとして機能するためのプログラムである。アプリケーションプログラム１６は、利用者からの要求に応じてデータベース管理部１５ＡにＳＱＬコマンドを発行し、発行した結果を通信部１２を介して図示していないディスプレイやネットワークに接続されている他の端末などに出力するようになっている。
【００２３】
コマンド取得部１７は、アプリケーションプログラム１６からデータベース管理部１５Ａに発行されたＳＱＬコマンドを取得するようになっている。なお、コマンド取得部１７がＳＱＬコマンドを取得したとき、ＳＱＬコマンドは、識別子挿入部１８Ａからデータベース管理部１５Ａに発行される。
【００２４】
識別子挿入部１８Ａは、所定の識別子を記憶しており、コマンド取得部１７によって取得されたＳＱＬコマンドがアプリケーションプログラム１６から取得されたものであると、該ＳＱＬコマンドに所定の識別子を挿入し、所定の識別子を挿入したＳＱＬコマンドをオペレーティングシステム１１を介してデータベース管理部１５Ａに発行するようになっている。なお、所定の識別子とは、番号や文字コードで表されるものである。例えば、所定の識別子を装置の製造番号や装置の名前などにしてもよい。
【００２５】
識別子判定部１９Ａは、識別子挿入部１８Ａが記憶している識別子と同一の識別子を記憶しており、ＳＱＬコマンドがデータベース管理部１５Ａに発行されたとき、識別挿入部１８Ａによって挿入されたＳＱＬコマンドに含まれる識別子が記憶している識別子と同一か否かを判定するようになっている。
【００２６】
識別子判定部１４Ａが同一と判定した場合、データベース管理部１５Ａは、ＳＱＬコマンドに基づいてデータベース１４を制御、すなわちデータベース１４に格納されたデータのアクセスを行うようになっている。
【００２７】
また、アプリケーションプログラム１６と異なるプログラムからＳＱＬコマンドが発行された場合、識別子が同一でない、または、識別子が存在しないため、データベース管理部１５Ａは、ＳＱＬコマンドを無視するか、または、ＳＱＬコマンドがエラーだった旨をアプリケーションプログラム１６に通知するようにしてもよい。
【００２８】
次に、第１の実施の形態によるデータベース制御装置１の動作について、図２を参照して説明する。図２は、本発明の第１の実施の形態によるデータベース制御装置１の動作の流れを示すフローチャートである。
【００２９】
まず、利用者からの要求に応じてＳＱＬコマンドが、アプリケーションプログラム１６によってデータベース管理部１５Ａに発行される（ステップ１０１）。発行されたＳＱＬコマンドは、コマンド取得部１７によって取得され（ステップ１０２）、所定の識別子が、識別子挿入部１８ＡによってＳＱＬコマンドに挿入され、所定の識別子の挿入されたＳＱＬコマンドは、データベース管理部１５Ａに発行される（ステップ１０３）。
【００３０】
ＳＱＬコマンドがデータベース管理部１５Ａに発行されたとき、識別子挿入部１８Ａによって挿入されたＳＱＬコマンドに含まれる識別子が所定の識別子と同一か否かが、識別子判定部１９Ａによって判定される（ステップ１０４）。この場合、同一であるので、データベース１４に格納されたデータのアクセスが行われる（ステップ１０５）。
【００３１】
以上説明したように、本発明の第１の実施の形態によるデータベース制御装置１は、挿入されたＳＱＬコマンドに含まれる識別子が所定の識別子とが同一だったとき、データベース１４を制御するため、ユーザ識別子およびパスワードを奪い取る等のＤＢＭＳの乗っ取りが成功しても、データベース１４に格納されたデータを第三者に漏洩されてしまうことを防止することができる。
【００３２】
［第２の実施の形態］
図３は本発明の第２の実施の形態によるデータベース制御装置のブロック構成図である。図３に示すように、データベース制御装置２は、オペレーティングシステム１１と、通信部１２と、セキュリティ強化モジュール１３Ｂと、データベース１４と、データベース管理部１５Ｂと、アプリケーションプログラム１６を備えた構成を有している。
【００３３】
なお、本発明の第２の実施の形態によるデータベース制御装置２の構成要素のうち、本発明の第１の実施の形態によるデータベース制御装置１の構成要素と同一の構成要素には同一の符号を付し、それぞれの説明を省略する。
【００３４】
セキュリティ強化モジュール１３Ｂは、本実施の形態におけるデータベース１４のセキュリティを強化するためのプログラムであり、セキュリティ強化モジュール１３Ｂは、コマンド取得部１７ご識別子挿入部１８Ａと識別子判定部１９Ｂとアクセス命令取得部２０を含んでいる。
【００３５】
データベース管理部１５Ｂは、ＤＢＭＳと同等の機能を有してデータベース１４を管理し、オペレーティングシステム１１を介して識別子が挿入されたＳＱＬコマンドを入力し、入力したＳＱＬコマンドに基づいてデータベース１４に格納されたデータのアクセスを行うためのアクセス命令を発行することにより、データベース１４に格納されたデータのアクセスを制御するようになっている。また、ＳＱＬコマンドは、利用者がキーボードなどの入力機器から入力するような入力形式でもよく、加えて「Ｃ」や「Ｊａｖａ」等のプログラミング言語を用いた入力形式でもよい。また、データベース管理部１５Ｂは、例えば、データベース１４に格納されたデータベースファイルのバイト位置を直接指定してデータを読み出すコマンド等のいかなる入力形式でも対応可能である。
【００３６】
なお、アクセス命令は、データベース１４にアクセスするための情報、より詳細には、特定のデータを読み、書き、削除、更新するなどのアクセス情報や、データベース１４を利用する利用者を認証するためユーザ識別子およびパスワードなどの認証情報などを含むようにしてもよい。
【００３７】
さらに、データベース管理部１５Ｂは、ＳＱＬコマンドに挿入されていた識別子をアクセス命令に挿入し、識別子が挿入されたアクセス命令を発行するようになっている。アクセス命令取得部２０は、データベース管理部１５Ｂによって発行されたアクセス命令をオペレーティングシステム１１を介して取得するようになっている。
【００３８】
識別子判定部１９Ｂは、アクセス命令取得部２０によって取得されたアクセス命令に挿入された識別子が所定の識別子と同一か否かを判定するようになっている。識別子が同一と判定した場合、識別判定部１９Ｂはオペレーティングシステム１１を介してデータベース１４にアクセス命令を出力することにより、データベース１４に格納されたデータのアクセスを行うようになっている。
【００３９】
識別子が同一でないと判定した場合、データベース管理部１５Ｂは、アクセス命令に対するＳＱＬコマンドを無視するか、または、ＳＱＬコマンドがエラーだった旨をアプリケーションプログラム１６に通知するようにしてもよい。
【００４０】
次に、本発明の第２の実施の形態によるデータベース制御装置２の動作について、図４を参照して説明する。図４は、本発明の第２の実施の形態によるデータベース制御装置２の動作の流れを示すフローチャートである。
【００４１】
なお、本発明に第２の実施の形態によるデータベース制御装置２の動作のうち、本発明の第１の実施の形態によるデータベース制御装置１の動作と同一のものについては、同一の符号を付す。
【００４２】
まず、利用者からの要求に応じてＳＱＬコマンドは、アプリケーションプログラム１６によってデータベース管理部１５Ｂに発行される（ステップ１０１）。発行されたＳＱＬコマンドは、コマンド取得部１７によって取得され（ステップ１０２）、所定の識別子が、識別子挿入部１８ＡによってＳＱＬコマンドに挿入され、所定の識別子が挿入されたＳＱＬコマンドは、データベース管理部１５Ｂに発行される（ステップ１０３）。
【００４３】
ＳＱＬコマンドがデータベース管理部１５Ｂに発行されたとき、ＳＱＬコマンドに挿入された識別子は、データベース管理部１５Ｂによってデータベース１４にアクセスするためのアクセス命令に挿入され、挿入されたアクセス命令が発行される（ステップ２０１）。
【００４４】
発行されたアクセス命令は、アクセス命令取得部２０によって取得される（ステップ２０２）。アクセス命令に挿入された識別子は、所定の識別子と同一か否かが、識別子判定部１９Ｂによって判定される（ステップ２０３）。この場合、同一と判定されるので、アクセス命令は、識別子判定部１９Ｂによってデータベース１４に出力されて、データベース１４に格納されたデータのアクセスが行われる（ステップ２０４）。
【００４５】
以上説明したように、本発明の第２の実施の形態によるデータベース制御装置２は、データベース管理部１５Ｂ以外の手段が、データベース１４にアクセス命令を発行することによって、データベース管理部１５Ｂが直にデータベース１４にアクセスしないため、データベース管理部１５Ｂ（ＤＢＭＳ）を構成するプログラムなどが不正に変更される等のＤＢＭＳの乗っ取りが成功しても、データベース１４に格納されたデータが第三者に漏洩されてしまうことを防止することができる。
【００４６】
［第３の実施の形態］
図５は、本発明の第３の実施の形態によるデータベース制御装置のブロック構成図である。図５に示すように、データベース制御装置３は、オペレーティングシステム１１と、通信部１２と、セキュリティ強化モジュール１３Ｃと、データベース１４と、データベース管理部１５Ｂと、アプリケーションプログラム１６を備えた構成を有している。
【００４７】
なお、本発明の第３の実施の形態によるデータベース制御装置３の構成要素のうち、本発明の第２の実施の形態によるデータベース制御装置２を構成する構成要素と同一の構成要素には同一の符号を付し、それぞれの説明を省略する。
【００４８】
セキュリティ強化モジュール１３Ｃは、本実施の形態におけるデータベース１４のセキュリティを強化するためのプログラムである。なお、セキュリティ強化モジュール１３Ｃはコマンド取得部１７と識別子挿入部１８Ｂと識別子判定部１９Ｃとアクセス命令取得部２０と識別子割当部２１を含んでいる。
【００４９】
識別子割当部２１は、コマンド取得部１７によって取得されたＳＱＬコマンド毎に識別子を変更して割り当て、識別子挿入部１８Ｂは、コマンド取得部１７によって取得されたＳＱＬコマンドに、識別子割当部２１によって割り当てられた識別子を挿入するようになっている。
【００５０】
例えば、ＳＱＬコマンドと対応する識別子は、ＳＱＬコマンドの発行毎に変更される番号でもよい。図６は、ＳＱＬコマンドと対応する識別子を表現するためのイメージ図である。識別子割当部２１は、識別子３０を割り当て、割り当てた識別子を図示しない記憶媒体に格納して、識別子挿入部１８Ｂに出力するようになっている。
【００５１】
また、識別子３０は、ビットフィールド３１に設定される値と、ビットフィールド３２に設定される値によって構成される。ビットフィールド３１に設定される値は、グループを識別するグループ識別子である。なお、グループ識別子は、アプリケーションプログラム１６を識別するアプリケーション識別子のようなものでもよい。
【００５２】
また、ビットフィールド３２に設定される値は、グループ識別子に対応した識別子であり、ＳＱＬコマンドが発行される度に割り当てられる。なお、識別子割当部２１は、複数のＳＱＬコマンドが同時に発行されている最中に、ＳＱＬコマンドと対応する識別子３０が同一なものにならないようにするため、ビットフィールド３２に設定された値が一意となるように割り当てるようになっている。
【００５３】
識別子判定部１９Ｃは、アクセス命令取得部２０によって取得されたアクセス命令に挿入された識別子と識別子割当部２１が割り当てた識別子とが同一か否かを判定するようになっている。
【００５４】
例えば、識別子判定部１９Ｃは、アクセス命令に挿入された識別子を構成するグループ識別子（ビットフィールド３１に設定された値）に基づいて、記憶媒体から識別子割当部２１が割り当てた識別子を検索し、検索した識別子とアクセス命令に挿入された識別子とが同一か否かを判定するようになっている。識別子が同一と判定した場合、識別子判定部１９Ｃはオペレーティングシステム１１を介してデータベース１４にアクセス命令を出力することにより、データベース１４に格納されたデータのアクセスを行うようになっている。
【００５５】
次に、本発明の第３の実施の形態によるデータベース制御装置３の動作について、図７を参照して説明する。図７は、本発明の第３の実施の形態によるデータベース制御装置３の動作の流れを示すフローチャートである。
【００５６】
なお、本発明の第３の実施の形態によるデータベース制御装置３の動作のうち、本発明の第２の実施の形態によるデータベース制御装置２の動作と同一のものについては、同一の符号を付す。
【００５７】
まず、利用者からの要求に応じてＳＱＬコマンドは、アプリケーションプログラム１６によってデータベース管理部１５Ｂに発行される（ステップ１０１）。発行されたＳＱＬコマンドは、コマンド取得部１７によって取得され（ステップ１０２）、発行されたＳＱＬコマンドと対応する識別子３０は、識別子割当部２１によって割り当てられる（ステップ３０１）。
【００５８】
識別子割当部２１によって割り当てられた識別子は、識別子挿入部１８ＢによってＳＱＬコマンドに挿入され、所定の識別子の挿入されたＳＱＬコマンドは、データベース管理部１５Ｂに発行される（ステップ１０３）。
【００５９】
ＳＱＬコマンドがデータベース管理部１５Ｂに発行されたとき、ＳＱＬコマンドに挿入された識別子は、データベース管理部１５Ｂによってデータベース１４にアクセスするためのアクセス命令に挿入され、挿入されたアクセス命令が発行される（ステップ２０１）。
【００６０】
発行されたアクセス命令は、アクセス命令取得部２０によって取得され（ステップ２０２）、アクセス命令に挿入された識別子は、識別子割当部２１によって割り当てられた識別子と同一か否かが、識別子判定部１９Ｃによって判定される（ステップ３０２）。この場合同一と判定されるので、アクセス命令は、識別子判定部１９Ｃによってデータベース１４に出力されて、データベース１４に格納されたデータのアクセスが行われる（ステップ２０４）。
【００６１】
以上説明したように、本発明の第３の実施の形態によるデータベース制御装置３は、識別子３０のうちいずれかが第三者に漏洩されても、ＳＱＬコマンド毎に識別子３０を変更して割り当てているため、不正なデータアクセスの防止効果を高めることができる。
【００６２】
また、識別子割当部２１が割り当てた識別子のうち全てを検索することなく、アプリケーション識別子にようなグループ識別子に基づいて、記憶媒体から割り当てた識別子を部分的に検索し、検索した識別子とアクセス命令に挿入された識別子とが同一か否かを判定するため、識別子の判定動作を効率的に行うことができる。
【００６３】
［第４の実施の形態］
図８は、本発明の第４の実施の形態によるデータベース制御装置のブロック構成図である。図８に示すように、データベース制御装置４は、オペレーティングシステム１１と、通信部１２と、セキュリティ強化モジュール１３Ｄと、データベース１４と、データベース管理部１５Ｂと、アプリケーションプログラム１６を備えた構成を有している。
【００６４】
なお、本発明の第４の実施の形態によるデータベース制御装置４を構成する構成要素のうち、本発明の第３の実施の形態によるデータベース制御装置３を構成する構成要素と同一の構成要素には同一の符号を付し、それぞれの説明を省略する。
【００６５】
セキュリティ強化モジュール１３Ｄは、本実施の形態におけるデータベース１４のセキュリティを強化するためのプログラムであり、セキュリティはコマンド取得部１７と識別子挿入部１８Ｂと識別子判定部１９Ｃとアクセス命令取得部２０と識別子割当部２１とアクセス判定部２２を含んでいる。
【００６６】
識別子判定部１９Ｃがアクセス命令に挿入された識別子と識別子割当部２１が割り当てた識別子とが同一と判定したとき、アクセス判定部２２は、アクセス命令に含まれる認証情報に基づいてアクセス命令がデータベース１４にアクセス可能か否かを判定し、アクセス可能と判定した場合、アクセス命令に基づいてデータベース１４に格納されたデータのアクセスを行うようになっている。
【００６７】
例えば、アクセス判定部２２は、データベース１４内のテーブル、カラム、レコード、またはフィールドなどのデータ単位毎に、データベース１４を利用する利用者がアクセス可能か否かを判定するアクセス判定テーブルを有し、このアクセス判定テーブルにしたがってアクセス命令がデータベース１４にアクセス可能か否かを判定するようになっている。
【００６８】
また、アクセス不能と判定した場合、アクセス判定部２２は、アクセス命令を無視するか、または、アクセス命令がエラーだった旨をアプリケーションプログラム１６に通知するようにしてもよい。
【００６９】
次に、本発明の第４の実施の形態によるデータベース制御装置４の動作について、図９を参照して説明する。図９は、本発明の第４の実施の形態によるデータベース制御装置４の動作の流れを示すフローチャートである。
【００７０】
なお、本発明の第４の実施の形態によるデータベース制御装置４のうち、本発明の第３の実施の形態によるデータベース制御装置３の動作と同一のものについては、同一の符号を付し、それぞれの説明を省略する。
【００７１】
識別子判定部１９Ｃによって同一と判定された場合、アクセス命令は、アクセス判定部２２によってアクセス命令に含まれる認証情報に基づいてアクセス命令がデータベース１４にアクセス可能か否かが判定される（ステップ４０１）。アクセス判定部２２によってアクセス可能と判定された場合、アクセス命令は、アクセス判定部２２によってデータベース１４に出力されて、データベース１４に格納されたデータのアクセスが行われる（ステップ２０４）。
【００７２】
以上説明したように、ＤＢＭＳがデータベースを利用する利用者を認証することが一般的ではあるが、本発明の第４の実施の形態によるデータベース制御装置４は、アクセス命令に含まれる認証情報に基づいてコマンドがデータベース１４にアクセス可能か否かを判定するため、データベース管理部１５Ｂ（ＤＢＭＳ）が管理している認証情報が不正に書き換えられた等のＤＢＭＳの乗っ取りが成功しても、データベース１４に格納されたデータを第三者に漏洩されてしまうことを防止することができる。
【００７３】
なお、本発明のデータベース制御装置は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ―ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【図面の簡単な説明】
【００７４】
【図１】本発明の第１の実施の形態によるデータベース制御装置のブロック構成図である。
【図２】本発明の第１の実施形態によるデータベース制御装置の動作の流れを示すフローチャートである。
【図３】本発明の第２の実施の形態によるデータベース制御装置のブロック構成図である。
【図４】本発明の第２の実施の形態によるデータベース制御装置の動作の流れを示すフローチャートである。
【図５】本発明の第３の実施の形態によるデータベース制御装置のブロック構成図である。
【図６】ＳＱＬコマンドと対応する識別子を表現するためのイメージ図である。
【図７】本発明の第３の実施の形態によるデータベース制御装置の動作の流れを示すフローチャートである。
【図８】本発明の第４の実施の形態によるデータベース制御装置のブロック構成図である。
【図９】本発明の第４の実施の形態によるデータベース制御装置の動作の流れを示すフローチャートである。
【符号の説明】
【００７５】
１、２、３、４    データベース制御装置
１１    オペレーティングシステム
１２    通信部
１３Ａ、１３Ｂ、１３Ｃ、１３Ｄ    セキュリティ強化モジュール
１３    アプリケーションプログラム
１４    データベース
１５Ａ、１５Ｂ    データベース管理部
１６    アプリケーションプログラム
１７    コマンド取得部
１８Ａ、１８Ｂ    識別子挿入部
１９Ａ、１９Ｂ、１９Ｃ    識別子判定部
２０    アクセス命令取得部
２１    識別子割当部
２２    アクセス判定部
３０    識別子
３１、３２    ビットフィールド
１０１〜１０５、２０１〜２０４、３０１、３０２、４０１    ステップ
【図１】
2005209069.tif 000003
【図２】
2005209069.tif 000004
【図３】
2005209069.tif 000005
【図４】
2005209069.tif 000006
【図５】
2005209069.tif 000007
【図６】
2005209069.tif 000008
【図７】
2005209069.tif 000009
【図８】
2005209069.tif 000010
【図９】
2005209069.tif 000011