(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続され、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を、前記データベースサーバに指示するデータベース処理装置であって、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段と、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示手段と、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段と、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段と、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段と、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段と、
を備えることを特徴とするデータベース処理装置。
【請求項２】
前記データベース処理装置は、相互に通信可能に接続される第１の情報処理装置と第２の情報処理装置とを備え、
前記第１の情報処理装置は、前記アプリケーション取得手段と、前記操作指示抽出手段を備え、
前記操作指示抽出手段は、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる前記識別情報と、
抽出した前記データベース操作指示を前記第２の情報処理装置に送信する送信手段と、
をさらに備え、
前記第２の情報処理装置は、前記操作指示記憶手段と、前記操作指示特定手段と、前記操作指示判定手段と、前記出力手段と、を備え、
前記操作指示記憶手段は、
前記第１の情報処理装置から受信する前記識別情報と、前記データベース操作指示を対応付けて記憶する、
ことを特徴とする請求項１に記載のデータベース処理装置。
【請求項３】
前記出力手段は、前記操作指示判定手段により、データベース操作指示の内容が合致しないと判定された場合、前記アプリケーションプログラムに従って実行されるデータベース操作指示が不正な操作指示である旨を、ネットワークを介して通信可能に接続され、前記アプリケーションプログラムの実行を指示するクライアント端末に出力する、
ことを特徴とする請求項１又は２に記載のデータベース処理装置。
【請求項４】
データベース処理装置と、アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、を備え、データベースを備えるデータベースサーバに、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を指示するデータベース処理システムであって、
前記データベース処理装置は、
前記アプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、前記データベースサーバと、に通信可能に接続され、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段と、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信する登録指示送信手段と、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段と、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段と、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段と、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段と、を備え、
前記アプリケーション登録装置は、
前記データベース処理装置の前記登録指示送信手段により前記登録指示を受信した場合に前記アプリケーションプログラムを前記アプリケーションサーバに登録する、
ことを特徴とするデータベース処理システム。
【請求項５】
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続され、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を、前記データベースサーバに指示するデータベース処理装置によるデータベース処理方法であって、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得ステップと、
前記アプリケーション取得ステップで取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出ステップと、
前記アプリケーション取得ステップで取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出ステップで抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶ステップと、
前記操作指示記憶ステップで前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示ステップと、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信ステップと、
前記操作指示記憶ステップで記憶したデータベース操作指示から、前記受信ステップで受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定ステップと、
前記受信ステップで受信したデータベース操作指示の内容が、前記操作指示特定ステップで特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定ステップと、
前記操作指示判定ステップにより、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力ステップと、
を備えることを特徴とするデータベース処理方法。
【請求項６】
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続されるコンピュータを、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示手段、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース処理装置、データベース処理システム、データベース処理方法、およびプログラムに関する。
【背景技術】
【０００２】
リレーショナルデータベースシステム（ＲＤＢＳ）において、データベース内のデータ操作を行う場合に、データの格納、削除、参照等の操作の内容や手順が記述されたアプリケーションプログラムが用いられる。
例えば、ウェブシステムでは、クライアントと、アプリケーションプログラムが格納されたサーバ（アプリケーションサーバ）がインターネット回線で相互に接続され、さらに、アプリケーションサーバとデータベースサーバが専用回線で相互に接続される。そして、データの登録や参照等を要求するデータベース操作要求が、クライアントからアプリケーションサーバに送信され、これによりデータベースサーバは、このデータベース操作要求の内容に従った処理を行う。
【０００３】
しかし、このようなデータベースを利用したシステムにおいて、アプリケーションのセキュリティ上の不備が意図的に利用され、アプリケーションでは想定されないＳＱＬ文が実行されることにより、データベースが不正に操作されるＳＱＬインジェクション等の脆弱性攻撃がなされるおそれがある。そのため、この脆弱性攻撃を防止するために様々な工夫が施されたシステムがある。
【０００４】
例えば、特許文献１には、脆弱性攻撃を防止するため、外部からデータベースサーバ内のＳＱＬ文のロジックを呼び出すことにより、ＳＱＬ文を生成してデータベース操作を行う通信システムが開示されている。
また、特許文献２には、脆弱性攻撃を防止するため、利用者の実行権限に基づいて実行可能なデータベースの検索文を予め雛形として登録しておき、この雛形を用いてデータベースの検索文を生成することによりデータベースの検索を行うデータベース検索装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−４１４６５号公報
【特許文献２】特開２００９−１５７６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載のシステムでは、第三者により生成された不正なアプリケーションプログラムによりロジックそのものが呼び出され、これに従ってデータベース内のデータが読み出される可能性がある。一般的には、データベース内でデータベースユーザのユーザＩＤ、パスワードが管理され、これらを用いてアプリケーションの認証が行われるが、このユーザＩＤ、パスワードが漏洩した場合、不正なデータベース操作が行われてしまう。
また、特許文献２に記載のデータベース検索装置のように、実行可能なＳＱＬ文を所定の権限に基づいて作成し、実行可能なＳＱＬ文を制限する場合、アプリケーションプログラムの作成とは別に、実行可能なＳＱＬ文の作成が必要となり手間がかかる。
【０００７】
本発明は、上述のような事情に鑑みてなされたものであり、不正なデータベース操作を防ぐとともに、その設定の手間を軽減する、データベース処理装置、データベース処理システム、データベース処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係るデータベース処理装置は、
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続され、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を、前記データベースサーバに指示するデータベース処理装置であって、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段と、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示手段と、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段と、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段と、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段と、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段と、
を備えることを特徴とする。
【０００９】
また、前記データベース処理装置は、相互に通信可能に接続される第１の情報処理装置と第２の情報処理装置とを備え、
前記第１の情報処理装置は、前記アプリケーション取得手段と、前記操作指示抽出手段を備え、
前記操作指示抽出手段は、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる前記識別情報と、
抽出した前記データベース操作指示を前記第２の情報処理装置に送信する送信手段と、
をさらに備え、
前記第２の情報処理装置は、前記操作指示記憶手段と、前記操作指示特定手段と、前記操作指示判定手段と、前記出力手段と、を備え、
前記操作指示記憶手段は、
前記第１の情報処理装置から受信する前記識別情報と、前記データベース操作指示を対応付けて記憶する、こととしてもよい。
【００１０】
また、前記出力手段は、前記操作指示判定手段により、データベース操作指示の内容が合致しないと判定された場合、前記アプリケーションプログラムに従って実行されるデータベース操作指示が不正な操作指示である旨を、ネットワークを介して通信可能に接続される、前記アプリケーションプログラムの実行を指示するクライアント端末に出力するようにしてもよい。
【００１１】
上記目的を達成するため、本発明の第２の観点に係るデータベース処理システムは、
データベース処理装置と、アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、を備え、データベースを備えるデータベースサーバに、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を指示するデータベース処理システムであって、
前記データベース処理装置は、
前記アプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、前記データベースサーバと、に通信可能に接続され、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段と、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段と、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信する登録指示送信手段と、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段と、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段と、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段と、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段と、を備え、
前記アプリケーション登録装置は、
前記データベース処理装置の前記登録指示送信手段により前記登録指示を受信した場合に前記アプリケーションプログラムを前記アプリケーションサーバに登録する、
ことを特徴とする。
【００１２】
上記目的を達成するため、本発明の第３の観点に係るデータベース処理方法は、
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続され、前記アプリケーションプログラムに従って実行される前記データベースに対する操作を、前記データベースサーバに指示するデータベース処理装置によるデータベース処理方法であって、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得ステップと、
前記アプリケーション取得ステップで取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出ステップと、
前記アプリケーション取得ステップで取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出ステップで抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶ステップと、
前記操作指示記憶ステップで前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示ステップと、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信ステップと、
前記操作指示記憶ステップで記憶したデータベース操作指示から、前記受信ステップで受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定ステップと、
前記受信ステップで受信したデータベース操作指示の内容が、前記操作指示特定ステップで特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定ステップと、
前記操作指示判定ステップにより、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力ステップと、
を備えることを特徴とする。
【００１３】
上記目的を達成するため、本発明の第４の観点に係るプログラムは、
アプリケーションプログラムをアプリケーションサーバに登録するアプリケーション登録装置と、前記アプリケーションプログラムが登録されるアプリケーションサーバと、データベースを備えるデータベースサーバと、に通信可能に接続されるコンピュータを、
前記アプリケーション登録装置から前記アプリケーションプログラムを取得するアプリケーション取得手段、
前記アプリケーション取得手段で取得したアプリケーションプログラムから、前記データベースに対する操作部分を示すデータベース操作指示を抽出する操作指示抽出手段、
前記アプリケーション取得手段で取得したアプリケーションプログラムに含まれる、前記アプリケーションプログラムを特定する識別情報と、前記操作指示抽出手段で抽出した前記データベース操作指示を、対応付けて記憶する操作指示記憶手段、
前記操作指示記憶手段により前記識別情報と前記データベース操作指示とを対応付けて記憶したことに基づいて、前記アプリケーションプログラムを前記アプリケーションサーバに登録する登録指示を送信して前記アプリケーション登録装置により前記アプリケーションを登録する登録指示手段、
前記アプリケーションサーバに登録されている前記アプリケーションプログラムが実行された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を、該アプリケーションプログラムを特定する識別情報とともに受信する受信手段、
前記操作指示記憶手段で記憶したデータベース操作指示から、前記受信手段で受信した識別情報に対応するデータベース操作指示の内容を特定する操作指示特定手段、
前記受信手段で受信したデータベース操作指示の内容が、前記操作指示特定手段で特定したデータベース操作指示の内容と合致するか否かを判定する操作指示判定手段、
前記操作指示判定手段により、データベース操作指示の内容が合致していると判定された場合に、前記アプリケーションプログラムに従って実行されるデータベース操作指示を前記データベースサーバに出力する出力手段、
として機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、不正なデータベース操作を防ぐとともに、その設定の手間を軽減することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るデータベース処理装置を備えたデータベース処理システムの構成を示すブロック図である。
【図２】図１のデータベース処理システムにおけるＳＱＬパターン抽出サーバが備えるＡＰ管理者管理ＤＢを説明する図である。
【図３】図１のデータベース処理システムにおけるパターン設定クライアントにより生成されるアプリケーションプログラムのソースコードの一例を示す図である。
【図４】図１のデータベース処理システムにおけるＳＱＬパターン検証サーバが備えるセッション管理ＤＢを説明する図である。
【図５】図１のデータベース処理システムにおけるＳＱＬパターン検証サーバが備えるＳＱＬパターン管理ＤＢを説明する図である。
【図６】図１のデータベース処理システムにおけるデータベース処理の構成を示すブロック図である。
【図７】図１のデータベース処理システムにおけるデータベースサーバが備えるパスワード管理ＤＢを説明する図である。
【図８】図１のデータベース処理システムにおけるパターン設定処理の動作を説明する図である。
【図９】図１のデータベース処理システムにおけるパターン検証処理の動作を説明する図である。
【図１０】図１のデータベース処理システムによるパターン検証処理において、不正なデータベース操作を検知する動作を説明する図である。
【図１１】正当なデータベース操作と、不正なデータベース操作の一例を示す図である。
【図１２】図１のデータベース処理システムの変形例を示す図である。
【発明を実施するための形態】
【００１６】
本実施の形態では、本発明に係るデータベース処理装置１０を、データベース処理システム１００に適用した例について、図面を参照して説明する。データベース処理装置１０は、アプリケーションプログラム１１に記述されているデータベース操作を事前に登録するパターン設定機能と、パターン設定機能で登録されたデータベース操作以外の操作を不正なデータベース操作とみなし、この操作を防止するパターン検証機能を備えている。データベース処理システム１００は、インターネットを経由して各種サービスを利用者に提供するクラウドコンピューティングである。
【００１７】
データベース処理システム１００は、図１に示すように、パターン設定クライアント１１０と、アプリケーションサーバ１２０と、データベース処理装置１０と、データベースサーバ１５０と、ＡＰクライアント１６０と、ネットワーク１７０と、を備えている。
【００１８】
パターン設定クライアント１１０は、パーソナルコンピュータや携帯電話、スマートフォン等の端末から構成され、ネットワーク１７０を介してアプリケーションサーバ１２０、データベース処理装置１０のＳＱＬパターン抽出サーバ１３０、および、データベースサーバ１５０と、相互に通信可能に接続されている。
【００１９】
パターン設定クライアント１１０は、ユーザの操作によりアプリケーションプログラム１１１を生成する。
【００２０】
アプリケーションプログラム１１１は、ソースコードと、バイナリコードと、設定ファイルから構成される。
【００２１】
ソースコードは、アプリケーションプログラム１１１の動作を記述したもので、例えば、ＦＯＲＴＲＡＮ、Ｃ言語、ＪＡＶＡ（登録商標）、ＣＯＢＯＬ、ＰＡＳＣＡＬ等のプログラム言語で記述される。
【００２２】
バイナリコードは、ソースコードをアプリケーションサーバ１２０上で動作可能な形式に変更したものである。
【００２３】
設定ファイルには、ユーザを特定するＤＢユーザＩＤとＤＢユーザパスワード等の、データベースサーバ１５０内のテーブルの操作に必要となる情報が記述される。
【００２４】
パターン設定クライアント１１０は、データベースサーバ１５０のテーブルの生成や設定を要求するテーブル設定要求を、ネットワーク１７０を介してデータベースサーバ１５０に送信する。さらに、パターン設定クライアント１１０は、設定ファイル内のＤＢユーザＩＤとＤＢユーザパスワードを、ネットワーク１７０を介してデータベースサーバ１５０に送信する。
【００２５】
また、パターン設定クライアント１１０は、生成されたアプリケーションプログラム１１１のソースコードと、設定ファイル内のＤＢユーザＩＤとＤＢユーザパスワードを、アプリケーション管理者を特定する識別情報とともに、ネットワーク１７０を介して、後述するデータベース処理装置１０のＳＱＬパターン抽出サーバ１３０に送信する。
【００２６】
本実施形態では、アプリケーション管理者を特定する識別情報として、パターン設定クライアント１１０に入力されるＰＩＤ(Personal ＩＤ）およびパスワードが送信される。
【００２７】
さらに、パターン設定クライアント１１０は、後述するデータベース処理装置１０のＳＱＬパターン検証サーバ１４０にＳＱＬパターンが登録されることに応じて、生成されたアプリケーションプログラム１１１のバイナリコードと設定ファイルを、ネットワーク１７０を介してアプリケーションサーバ１２０に送信し、生成したアプリケーションプログラム１１１をアプリケーションサーバ１２０に登録する。
【００２８】
アプリケーションサーバ１２０は、ネットワーク１７０を介してＡＰクライアント１６０とパターン設定クライアント１５０に接続されている。また、アプリケーションサーバ１２０は、データベース処理装置１０のＳＱＬ検証サーバ１４０と接続され、ＳＱＬ検証サーバ１４０を介してデータベースサーバ１５０に接続されている。
【００２９】
アプリケーションサーバ１２０は、パターン設定時において、パターン設定クライアント１１０により生成された複数のアプリケーションプログラム１１１を受信し、このアプリケーションプログラム１１１を内部の記憶部１１２に格納する。
【００３０】
アプリケーションサーバ１２０は、パターン検証時において、アプリケーションプログラム１１１の実行を要求するＡＰ実行要求を、ＡＰクライアント１６０から受信することに応じて、格納されているアプリケーションプログラム１１１を実行する。
【００３１】
アプリケーションサーバ１２０は、アプリケーションプログラム１１１の処理に従って、データベースサーバ１５０への接続を要求するＤＢ接続要求を、データベース処理装置１０ＳＱＬパターン検証サーバ１４０を介してデータベースサーバ１５０へ送信する。このＤＢ接続要求には、設定ファイル内のＤＢユーザＩＤ及びＤＢユーザパスワードが含まれる。
【００３２】
アプリケーションサーバ１２０は、データベースサーバ１５０への接続が確立されると、データベースサーバ１５０で生成されたセッションＩＤを、ＳＱＬ検証サーバ１４０を介して受信する。セッションＩＤとは、データベースサーバ１５０のアクセスに係るセッションを特定する特定情報を示している。
【００３３】
アプリケーションサーバ１２０は、実行されるアプリケーションプログラム１１１の処理に従ってＳＱＬ文を、受信したセッションＩＤとともにネットワーク１７０を介してデータベース処理装置１０のＳＱＬパターン検証サーバ１４０へ送信する。
【００３４】
アプリケーションサーバ１２０は、データベース処理装置１０のＳＱＬパターン検証サーバ１４０からデータベース操作の実行結果を受信すると、その実行結果をＡＰクライアント１６０へ送信する。
【００３５】
データベース処理装置１０は、ＳＱＬパターン抽出サーバ１３０とＳＱＬパターン検証サーバ１４０を備えている。
【００３６】
ＳＱＬパターン抽出サーバ１３０は、パターン設定機能を実現するサーバである。ＳＱＬパターン抽出サーバ１３０は、パターン設定クライアント１１０からアプリケーションプログラム１１１を受信する。そして受信したアプリケーションプログラム１１１のソースコードからＳＱＬ文を抽出してＳＱＬパターンを生成し、生成したＳＱＬパターンをＳＱＬパターン検証サーバ１４０へ登録する。
【００３７】
ＳＱＬパターン抽出サーバ１３０は、記憶部１３１と、制御部１３６を備えている。
【００３８】
記憶部１３１は、ＡＰ管理者管理ＤＢ１３２と、ＳＱＬ抽出プログラム１３４を備えている。
【００３９】
ＡＰ管理者管理ＤＢ１３２は、予めＳＱＬパターン抽出サーバ１３０に格納されている。ＡＰ管理者管理ＤＢ１３２は、図２に示すように、アプリケーション管理者を一意に特定するＰＩＤとパスワードから構成されている。
【００４０】
ＳＱＬ抽出プログラム１３４は、受信したアプリケーションプログラム１１１のソースコードからＳＱＬ文を抽出してＳＱＬパターンを生成し、このＳＱＬパターンの登録をＳＱＬパターン検証サーバ１４０へ指示する一連の処理が記述されたプログラムである。
【００４１】
制御部１３６は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等から構成される。制御部１３６は、ＳＱＬ抽出プログラム１３４に従って動作し、パターン設定処理に必要な機能を提供する。制御部１３６は、ＳＱＬ抽出プログラム１３４により提供される主要な機能部として、図６に示すように、ユーザ判定部１８１、操作指示抽出部１８２を備えている。
【００４２】
ＳＱＬパターン抽出サーバ１３０は、パターン設定クライアント１１０からアプリケーションプログラム１１１のソースコードと、設定ファイル内のＤＢユーザＩＤとＤＢユーザパスワードを、アプリケーション管理者を特定する識別情報とともに受信することに応じてＳＱＬ抽出プログラム１３４を実行し、パターン設定機能を実現する。具体的には、以下に示す処理を行う。
【００４３】
ＳＱＬパターン抽出サーバ１３０は、ユーザ判定部１８１の機能により、アプリケーション管理者の認証を行う。具体的には、ユーザ判定部１８１は、パターン設定クライアント１１０から受信したＰＩＤとパスワードがＡＰ管理者管理ＤＢ１３２に含まれているか否かにより、正当なアプリケーション管理者からのアクセスであるか否かを判定する。
【００４４】
ユーザ判定部１８１の機能により、正当なアプリケーション管理者からのアクセスであると判定した場合、ＳＱＬパターン抽出サーバ１３０は、操作指示抽出部１８２の機能により、パターン設定クライアント１１０から受信したアプリケーションプログラム１１１のソースコードからＳＱＬ文を抽出する。抽出は、例えば、図３に示すように、ソースコード中にＳＱＬ文の先頭と最後をそれぞれ識別する識別コードが含まれており、このＳＱＬ文の先頭を示す識別コードと最後を示す識別コードの間を抽出することにより行う。
【００４５】
ＳＱＬパターン抽出サーバ１３０は、操作指示抽出部１８２の機能により、抽出したＳＱＬ文を、パターン設定クライアント１１０から受信した設定ファイル内のＤＢユーザＩＤと対応づけてＳＱＬパターンを生成する。ＳＱＬパターンは、このＤＢユーザＩＤに対応付けられたＳＱＬ文を示す。ＳＱＬパターン抽出サーバ１３０は、このＳＱＬパターンをＳＱＬパターン検証サーバ１４０のＳＱＬパターン管理ＤＢ１４４に登録する。
【００４６】
ＳＱＬパターン検証サーバ１４０は、アプリケーションサーバからＳＱＬ文を受信し、そのＳＱＬ文の内容がパターン設定時に登録されたＳＱＬパターンの内容と合致するか否かを判定し、合致しないＳＱＬ文による操作を防止するパターン検証機能を実現するサーバである。
【００４７】
ＳＱＬパターン検証サーバ１４０は、記憶部１４１と制御部１４８から構成される。
【００４８】
記憶部１４１は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＷ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  ＲｅＷｒｉｔａｂｌｅ）等の不揮発性メモリから構成され、セッション管理ＤＢ１４２とＳＱＬパターン管理ＤＢ１４４とＳＱＬパターン検証プログラム１４６を備えている。
【００４９】
セッション管理ＤＢ１４２は、図４に示すように、データベースユーザを一意に特定するＤＢユーザＩＤと、データベースへのセッションを一意に特定する、ＤＢユーザＩＤに対応するセッションＩＤとから構成される。
【００５０】
セッションＩＤは、データベースサーバ１５０への接続が確立する度にデータベースサーバ１５０により生成される。
【００５１】
ＳＱＬパターン管理ＤＢ１４４は、図５に示すように、ＤＢユーザＩＤと、これに対応するＳＱＬパターンから構成される。
【００５２】
ＳＱＬパターン検証プログラム１４６は、アプリケーションサーバからＳＱＬ文を受信し、そのＳＱＬ文の内容がパターン設定時に登録されたＳＱＬパターンの内容と合致するか否かを判定し、合致した場合に、受信したＳＱＬ文の内容のデータベース操作をデータベースサーバ１５０に指示する一連の処理が記述されたプログラムである。
【００５３】
制御部１４８は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等から構成される。制御部１４８は、ＳＱＬパターン検証プログラム１４６に従って動作し、パターン検証処理に必要な機能を提供する。制御部１４８は、ＳＱＬ抽出プログラム１４８により提供される主要な機能部として、図６に示すように、操作指示記憶部１９１と、接続要求受信部１９２と、セッション記憶部１９３と、操作指示特定部１９４と、操作指示判定部１９５と、出力部１９６を備えている。
【００５４】
操作指示記憶部１９１は、パターン設定時において、ＳＱＬパターン抽出サーバ１３０から受信したＳＱＬパターンをＳＱＬパターン管理ＤＢ１４４に登録する。
【００５５】
接続要求受信部１９２は、パターン検証時において、アプリケーションプログラム１１１に従ってアプリケーションサーバ１２０から送信されるＤＢ接続要求を、データベースサーバ１５０へ転送する。
【００５６】
セッション記憶部１９３は、データベースサーバ１５０への接続が確立されることにより生成されるセッションＩＤを受信して、このセッションＩＤを、ＤＢユーザＩＤに対応付けてセッション管理ＤＢ１４２に格納する。
【００５７】
操作指示特定部１９４は、アプリケーションサーバ１２０から受信したセッションＩＤに基づいて、受信したセッションＩＤに対応するＤＢユーザＩＤを、セッション管理ＤＢ１４２から特定する。そして操作指示特定部１９４は、セッション管理ＤＢ１４２から特定したＤＢユーザＩＤに対応するＳＱＬパターンを、ＳＱＬパターン管理ＤＢ１４４から特定する。
【００５８】
操作指示判定部１９５は、アプリケーションプログラム１１１に従ってアプリケーションサーバ１２０から送信されたＳＱＬ文の内容が、操作指示特定部１４８により特定されたＳＱＬパターンの内容と同じものであるか否かを判定する。
【００５９】
出力部１９６は、アプリケーションサーバ１２０から送信されたＳＱＬ文の内容が、特定したＳＱＬパターンの内容と同じものであると判定した場合、このＳＱＬ文をデータベースサーバ１５０へ送信し、データ格納、参照、削除等の要求に応じたデータベース操作を実行させる。
【００６０】
一方、アプリケーションサーバ１２０から送信されたＳＱＬ文の内容が、特定したＳＱＬパターンの内容とは異なるものであると判定した場合、出力部１９６は、不正なデータベース操作であると判定し、データベース操作が実行されなかったことを示す実行結果を、ＡＰクライアント１６０へ送信する。
【００６１】
データベースサーバ１５０は、データベースとして蓄えた情報を管理するためのデータベース管理システム１５２と、パスワード管理ＤＢ１５４と、情報管理ＤＢ１５６から構成される。
【００６２】
データベース管理システム１５２は、基本的な機能として、入力されたデータの内容やデータ同士の関係の定義、データの挿入や削除、指定された条件に合うデータの検索など、データベースの構築や運用に必要な機能を備えている。さらに、データベース管理システム１５２は、データを定期的にバックアップや、複数のアプリケーションで利用できるよう形式を変換する機能も備えている。
【００６３】
パスワード管理ＤＢ１５４は、図７に示すように、ＤＢユーザＩＤとパスワードから構成されている。
【００６４】
情報管理ＤＢ１５６は、各アプリケーションプログラム１１１の実行により操作される複数のテーブルが格納されている。
【００６５】
パターン設定時において、データベースサーバ１５０は、パターン設定クライアント１１０から受信したテーブル設定要求に基づいて、アプリケーションプログラム１１１で用いられる情報管理ＤＢ１５６内のテーブルの生成や設定を行う。
【００６６】
また、データベースサーバ１５０は、パターン設定クライアント１１０から受信した設定ファイルのＤＢユーザＩＤとＤＢユーザパスワードを対応付けて、パスワード管理ＤＢ１５４に登録する。
【００６７】
パターン検証時において、データベースサーバ１５０は、ＳＱＬパターン検証サーバ１４０から受信したＤＢユーザＩＤおよびＤＢユーザパスワードが、パスワード管理ＤＢ１５４に格納されているものと合致するか否かにより正当なアプリケーションプログラム１１１による接続要求であるか否かを認証するアプリケーション認証を行う。
【００６８】
アプリケーション認証に成功した場合において、データベースサーバ１５０は、セッションＩＤを生成してＳＱＬパターン検証サーバ１４０へ送信する。
【００６９】
また、データベースサーバ１５０は、ＳＱＬパターン検証サーバ１４０から受信したＳＱＬ文に従い、情報管理ＤＢ１５６内の所定のテーブルに対して、データ格納、参照、削除等のデータベース操作を実行する。
【００７０】
ＡＰクライアント１６０は、パーソナルコンピュータや携帯電話、スマートフォン等の端末から構成され、ネットワーク１７０を介してアプリケーションサーバ１２０と接続されている。
ＡＰクライアント１６０は、ユーザによる操作に応じてアプリケーションプログラム１１１の実行を要求するＡＰ実行要求をアプリケーションサーバ１２０へ送信する。これによりパターン検証機能が実行される。
【００７１】
ネットワーク１７０は、パターン設定クライアント１１０及びＡＰクライアント１６０と、アプリケーションサーバ１２０を通信可能に接続するネットワークである。
ネットワーク１７０は、例えば、インターネットやイントラネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのデータを送受信するネットワークである。
【００７２】
以上が、データベース処理システム１００の構成である。
【００７３】
次に、データベース処理システム１００の動作について、図面を用いて説明する。まず、データベース処理システム１００におけるパターン設定処理について、図８を用いて説明する。
【００７４】
パターン設定処理は、パターン設定クライアント１１０におけるユーザの操作により、アプリケーションプログラム１１１の設定ファイルに含まれるＤＢユーザＩＤとＤＢユーザパスワードを、ＳＱＬパターン抽出サーバ１３０が受信することにより開始される。
【００７５】
前提として、アプリケーションプログラム１１１が生成されると、パターン設定クライアント１１０は、ユーザの操作に応じて、このアプリケーションプログラム１１１で利用されるテーブルを生成すべく、テーブルの生成や設定を行うことを要求するテーブル設定要求を、データベースサーバ１５０に送信する。さらに、パターン設定クライアント１１０は、生成されたアプリケーションプログラム１１１の設定ファイルに含まれるＤＢユーザＩＤとＤＢユーザパスワードを、データベースサーバ１５０に送信する（ステップＳ１０１）。
【００７６】
データベースサーバ１５０は、パターン設定クライアント１１０から受信したテーブル設定要求に基づいて、情報管理ＤＢ１５６にテーブルを生成し、その設定を行う。また、データベースサーバ１５０は、受信したＤＢユーザＩＤとＤＢユーザパスワードを対応付けて、パスワード管理ＤＢ１５４に登録する（ステップＳ１０２）。そしてデータベースサーバ１５０は、これらの結果をテーブル設定結果としてパターン設定クライアント１１０へ送信する（ステップＳ１０３）。
【００７７】
パターン設定クライアント１１０は、テーブル設定結果を受信し、その結果がテーブルの生成および設定に成功し、かつ、ＤＢユーザＩＤ等の登録に成功したものを示す場合（ステップＳ１０４：Ｙｅｓ）、ユーザの操作により、生成されたアプリケーションプログラム１１１に含まれるソースコードと、設定ファイル内のＤＢユーザＩＤとＤＢユーザパスワードを、アプリケーション管理者を特定する識別情報（ＰＩＤとパスワード）とともに、ネットワーク１７０を介してＳＱＬパターン抽出サーバ１３０に送信する（ステップＳ１０５）。これによりパターン設定処理が開始される。
【００７８】
テーブル設定結果が、テーブルの生成および設定に失敗したことを示す場合、または、ＤＢユーザＩＤ等の登録に失敗したことを示す場合（ステップＳ１０４；Ｎｏ）、パターン設定処理を行うことなく終了する。
【００７９】
ＳＱＬパターン抽出サーバ１３０は、パターン設定クライアント１１０からソースコード、ＤＢユーザＩＤ、およびＰＩＤ、パスワードを受信すると、予め格納されているＡＰ管理者管理ＤＢ１３２を読み込み、受信したＰＩＤおよびパスワードを用いて、アプリケーション管理者の認証を行う（ステップＳ１０６）。
【００８０】
次に、ＳＱＬパターン抽出サーバ１３０は、パターン設定クライアント１１０から受信したソースコード中から、ＳＱＬ文を抽出する（ステップＳ１０７）。そしてＳＱＬパターン抽出サーバ１３０は、パターン設定クライアント１１０から受信したＤＢユーザＩＤと、抽出したＳＱＬ文を対応付けて、ＳＱＬパターンを生成し（ステップＳ１０８）、生成したＳＱＬパターンをＤＢユーザＩＤとともにＳＱＬパターン検証サーバ１５０へ送信する（ステップＳ１０９）。
【００８１】
ＳＱＬパターン検証サーバ１５０は、ＳＱＬパターン抽出サーバ１３０からＳＱＬパターンを受信すると、操作指示記憶部１９１の機能により受信したＳＱＬパターンをＳＱＬパターン管理ＤＢ１４４へ登録し（ステップＳ１１０）、この登録結果を、ＳＱＬパターン抽出サーバ１３０を介してパターン設定クライアント１１０へ送信する（ステップＳ１１１）。
【００８２】
パターン設定クライアント１１０は、受信した登録結果が、ＳＱＬパターン管理ＤＢ１４４へのＳＱＬパターンの登録に成功したことを示すものである場合（ステップＳ１１２；Ｙｅｓ）、生成したアプリケーションプログラム１１１をアプリケーションサーバ１２０へ登録すべく、アプリケーションプログラム１１１をアプリケーションサーバ１２０へ送信する（ステップＳ１１３）。
【００８３】
一方、受信した登録結果が、ＳＱＬパターン管理ＤＢ１４４へのＳＱＬパターンの登録に失敗したことを示すものである場合（ステップＳ１１２；Ｎｏ）、パターン設定処理を終了する。
【００８４】
アプリケーションサーバ１２０は、パターン設定クライアント１１０から受信したアプリケーションプログラム１１１を、内部の記憶部に登録し（ステップＳ１１４）、登録結果をパターン設定クライアント１１０に送信して（ステップＳ１１５）、パターン設定処理を終了する。
【００８５】
以上が、データベース処理システム１００におけるパターン設定処理の動作である。
【００８６】
次に、データベース処理システム１００におけるパターン検証処理の動作について、図９を用いて説明する。なお、前提として、パターン設定処理により、ＳＱＬパターンがＳＱＬパターン検証サーバ１５０に、アプリケーションプログラム１１１がアプリケーションサーバ１２０に登録されているものとする。
【００８７】
パターン設定処理は、アプリケーションプログラム１１１の処理に従って、データベースサーバ１５０への接続を要求するＤＢ接続要求を、ＳＱＬパターン検証サーバ１４０がアプリケーションサーバ１２０から受信することに応じて開始される。
【００８８】
前提として、アプリケーションサーバ１２０は、ユーザの操作によりＡＰクライアント１６０からアプリケーションプログラム１１１の実行を要求するＡＰ実行要求を受信すると、受信したＡＰ実行要求に対応するアプリケーションプログラム１１１を実行する（ステップＳ２０１）。
【００８９】
続いてアプリケーションサーバ１２０は、アプリケーションプログラム１１１の処理に従って、データベースサーバ１５０への接続を要求するＤＢ接続要求を、ＳＱＬパターン検証サーバ１４０に送信する（ステップＳ２０２）。これによりパターン設定処理が開始される。ＳＱＬパターン検証サーバ１４０は、接続要求受信部１９２の機能により、受信したＤＢ接続要求をデータベースサーバ１５０へ送信する（ステップＳ２０３）。
【００９０】
データベースサーバ１５０は、ＤＢ接続要求を受信すると、これに含まれるＤＢユーザＩＤおよびＤＢユーザパスワードと、パスワード管理ＤＢ１５４のＤＢユーザＩＤおよびＤＢユーザパスワードに基づいて、アプリケーション認証を行う（ステップＳ２０４）。
【００９１】
アプリケーション認証に成功すると、データベースサーバ１５０は、ＳＱＬパターン検証サーバ１４０との接続を確立してセッションＩＤを生成し（ステップＳ２０５））、生成したセッションＩＤと受信したＤＢユーザＩＤとを、ＳＱＬパターン検証サーバ１４０に送信する（ステップＳ２０６）。
【００９２】
セッションＩＤおよびＤＢユーザＩＤを受信すると、ＳＱＬパターン検証サーバ１４０は、セッション記憶部１９３の機能により、受信したセッションＩＤをＤＢユーザＩＤと対応付けてセッション管理ＤＢ１４２へ登録し（ステップＳ２０７）、セッションＩＤをアプリケーションサーバ１２０へ送信する（ステップＳ２０８）。
【００９３】
セッションＩＤを受信すると、アプリケーションサーバ１２０は、実行されたアプリケーションプログラム１１１に従って、ＳＱＬ文をＳＱＬパターン検証サーバ１４０に送信する。またアプリケーションサーバ１２０は、ＳＱＬ文とともに、受信したセッションＩＤをＳＱＬパターン検証サーバ１４０に送信する（ステップＳ２０９）。
【００９４】
ＳＱＬパターン検証サーバ１４０は、これらを受信すると、操作指示特定部１９４の機能により、受信したセッションＩＤに基づいて、セッション管理ＤＢ１４２からＤＢユーザＩＤを特定する（ステップＳ２１０）。
【００９５】
続いてＳＱＬパターン検証サーバ１４０は、操作指示特定部１９４の機能により、ステップＳ２０９で特定したＤＢユーザＩＤに対応するＳＱＬパターンを、ＳＱＬパターン管理ＤＢ１４４から特定する（ステップＳ２１１）。そしてＳＱＬパターン検証サーバ１４０は、受信したＳＱＬ文の内容が、特定したＳＱＬパターンの内容と合致するか否かを、操作指示判定部１９５の機能により判定する（ステップＳ２１２）。
【００９６】
受信したＳＱＬ文の内容が、特定したＳＱＬ文の内容と合致していると判定した場合（ステップＳ２１２：Ｙｅｓ）、ＳＱＬパターン検証サーバ１４０は、受信したＳＱＬ文の内容は正当なデータベース操作を示すものであるとして、出力部１９６の機能により、アプリケーションサーバ１２０から受信したＳＱＬ文とセッションＩＤを、データベースサーバ１５０に送信する（ステップＳ２１３）。
【００９７】
一方、受信したＳＱＬ文の内容が、特定したＳＱＬ文の内容とは異なると判定した場合（ステップＳ２１２：Ｎｏ）、ＳＱＬパターン検証サーバ１４０は、受信したＳＱＬ文の内容は不正なデータベース操作を示すものであるとして、出力部１９６の機能により、ＡＰクライアント１６０へその旨を送信し（ステップＳ２１４）、パターン検証処理を終了する。
【００９８】
ＳＱＬパターン検証サーバ１４０からＳＱＬ文およびセッションＩＤを受信すると、データベースサーバ１５０は、受信したＳＱＬ文の内容に従って、データ格納、参照、削除等のデータベース操作を行い（ステップＳ２１５）、その結果をＳＱＬパターン検証サーバ１４０、アプリケーションサーバ１２０を介して、ＡＰクライアント１６０へ送信する（ステップＳ２１６）。これにより、パターン検証処理が終了する。
【００９９】
以上が、データベース処理システム１００におけるパターン検証処理の動作である。
【０１００】
次に、データベース処理システム１００により不正なデータベース操作を検知する動作について、図１、図１０および図１１を参照して説明する。ここでは、アプリケーションサーバ１２０に登録されている複数のアプリケーションプログラム１１１に対応する複数のＤＢユーザＩＤとＤＢユーザパスワードのうち、ＡＰ１に対応するＤＢユーザＩＤとＤＢユーザパスワードが、第三者により不正入手されている場合を例に説明する。
【０１０１】
図１に示すように、データベース処理システム１００におけるアプリケーションサーバ１２０に、ＡＰ１およびＡＰ２が登録されている。
【０１０２】
ＡＰ１は、正当なアプリケーション開発者により開発されたアプリケーションプログラム１１１である。ＡＰ１に含まれる設定ファイルには、ＤＢユーザＩＤとしてＤＢＩＤ１が、ＤＢユーザパスワードとしてＤＢＰＷ１が記述されている。ＡＰ１が実行されると、ＡＰ１は、データベースサーバ１５０における情報管理ＤＢ１５６のテーブル１にアクセスし、正当なデータベース操作を行う。
【０１０３】
ＡＰ２は、第三者により開発された、不正なデータベース操作を行うためのアプリケーションプログラム１１１である。ＡＰ２に含まれる設定ファイルには、不正入手したＤＢユーザＩＤおよびＤＢユーザパスワードとして、ＤＢＵＳＥＲ１およびＰＷ１が記述されている。ＡＰ２は、実行されることによりデータベースサーバ１５０における情報管理ＤＢ１５６のテーブル１にアクセスし、不正なデータベース操作を行うように開発されている。具体的には、図１１に示すように、ＡＰ２にはカードＮＯを参照しようとするＳＱＬ文が含まれている。
【０１０４】
図１０に示すように、ＡＰ２が実行されると（ステップＳ３０１）、アプリケーションサーバ１２０は、ＤＢ接続要求（ＤＢＩＤ１およびＤＢＰＷ１）をＳＱＬパターン検証サーバ１４０へ送信し、ＳＱＬパターン検証サーバ１４０は、接続要求受信部１９２の機能によりデータベースサーバ１５０へＤＢ接続要求（ＤＢＩＤ１およびＤＢＰＷ１）を送信する（ステップＳ３０２）。
【０１０５】
データベースサーバ１５０は、ＤＢ接続要求を受信すると、受信したＤＢユーザＩＤとパスワード（ＤＢＩＤ１およびＤＢＰＷ１）と、パスワード管理ＤＢとに基づいて、アプリケーション認証を行う（ステップＳ３０３）。
【０１０６】
ＡＰ２は、不正なアプリケーションプログラム１１１ではあるが、ＡＰ２に含まれるＤＢユーザＩＤおよびＤＢユーザパスワードは、ＡＰ１のものと等しいことから、データベースサーバ１５０との接続は確立され、データベースサーバ１５０によりセッションＩＤが生成される（ステップＳ３０４）。
【０１０７】
データベースサーバ１５０は、生成したセッションＩＤをＳＱＬパターン検証サーバ１４０へ送信する（ステップＳ３０５）。
【０１０８】
ＳＱＬパターン検証サーバ１４０は、セッション記憶部１９３の機能により、データベースサーバ１５０からセッションＩＤを受信し、このセッションＩＤにＤＢユーザＩＤを対応付けてセッション管理ＤＢ１４２に登録する（ステップＳ３０６）。
【０１０９】
続いてＳＱＬパターン検証サーバ１４０は、セッション記憶部１９３の機能により、セッションＩＤをアプリケーションサーバ１２０へ送信する（ステップＳ３０７）。
【０１１０】
アプリケーションサーバ１２０は、セッションＩＤを受信し、ＡＰ２に従ってＳＱＬ文を、セッションＩＤとともにＳＱＬ検証サーバ１４０に送信する。
【０１１１】
ＳＱＬ検証サーバ１４０は、操作指示特定部１９４の機能により、受信したセッションＩＤに基づいて、セッション管理ＤＢ１４２からこのセッションＩＤに対応するＤＢユーザＩＤを特定する（ステップＳ３０９）。
【０１１２】
そしてＳＱＬ検証サーバ１４０は、操作指示特定部１９４の機能により、特定したＤＢユーザＩＤに基づいて、ＳＱＬパターン管理ＤＢ１４４からこのＤＢユーザＩＤに対応するＳＱＬパターンを特定する。ここで、特定されたＤＢユーザＩＤはＡＰ１から不正入手したものであるため、特定されるＳＱＬパターンは、ＳＱＬパターン設定機能において登録されたＡＰ１のＳＱＬパターンである。
【０１１３】
次に、ＳＱＬ検証サーバ１４０は、操作指示判定部１９５の機能により、受信したＳＱＬ文の内容が、特定したＳＱＬパターンの内容と合致するか否かを判定する（ステップＳ３１１）。
【０１１４】
ここで、図１１に示すように、ＡＰ２の実行に従って送信されたＳＱＬ文の内容と、特定したＳＱＬパターンの内容が合致していないため（ステップＳ３１１；Ｎｏ）、ＡＰ２の実行に伴うデータベース操作が不正なものであるとして、ＳＱＬ検証サーバ１４０の出力部１９６の機能により、ＡＰクライアント１６０にその旨の情報を送信する（ステップＳ３１２）。これによりパターン検証処理を終了する。
【０１１５】
このように、本実施形態におけるパターン設定処理が行われることにより、アプリケーションプログラム１１１のソースコードから、そのアプリケーションプログラム１１１に対応したＳＱＬ文が自動で抽出され、登録される。
【０１１６】
また、ユーザの操作によりアプリケーションプログラム１１１が実行されると、パターン検証処理が行われる。これにより、パターン設定処理で登録されたアプリケーションプログラム１１１に対応するデータベース操作以外の操作が防止される。
【０１１７】
従って、不正なデータベース操作を防ぐとともに、その設定の手間を軽減することができる。
【０１１８】
（変形例）
この発明は、上記の実施形態に限定されず、種々の変形及び応用が可能である。上記実施の形態では、データベース処理装置１０のパターン設定機能およびパターン検証機能を、データベース処理装置１０のＳＱＬパターン抽出サーバ１３０とＳＱＬパターン検証サーバ１４０との協同により実現する場合について説明したが、これは一例である。例えば、パターン設定機能およびパターン検証機能を併せ持つ一つの情報処理装置や、さらには、各サーバや各クライアントの機能を併せ持つ一つの情報処理装置により、データベース処理装置１０を構成してもよい。この場合、１つのプログラムにより各機能を実現するようにしてもよい。この構成によれば、設備費用を抑えつつ不正なデータベース操作を、簡単な設定で防ぐことができる。
【０１１９】
上記実施の形態では、パターン設定時において、パターン設定クライアント１１０に入力されるＰＩＤやパスワードを、アプリケーション管理者を特定する識別情報としてアプリケーション管理者の認証を行う例を示したが、必ずしもこれに限定されない。このアプリケーション管理者を特定する識別情報には、指紋等の生体認証情報や回線ＩＤや端末が有する識別情報や携帯電話の固定番号等の識別情報が含まれており、アプリケーション管理者の認証を行うにあたっては、任意の識別情報を用いることが可能であり、また全ての識別方法を用いてもよい。なお、この場合、ＳＱＬパターン抽出サーバ１３０のＡＰ管理者管理ＤＢには、アプリケーション管理者が一意に特定されるように、それぞれの識別情報が予め登録されている。
【０１２０】
また、アプリケーション管理者の認証においては、ＡＰ証明書を用いてもよい。
ＡＰ証明書は、図１２に示すアプリケーション検証サーバ１９９により作成される、アプリケーションプログラム１１１のソースコードの内容とバイナリコードの内容とが一致していることを示す識別情報である。アプリケーション検証サーバ１９９は、図示するように、パターン設定クライアント１１０およびＳＱＬパターン抽出サーバ１３０に通信可能に接続されている。アプリケーション検証サーバ１９９は、パターン設定クライアント１１０からアプリケーションプログラム１１１のソースコードとバイナリコードを受信し、それらの内容が一致するか否かを検証する。一致している場合は、その旨を示すＡＰ証明書をパターン設定クライアント１１０に送信する。この場合、アプリケーション検証サーバ１９９は、ＡＰ証明書をＳＱＬパターン抽出サーバ１３０に送信し、ＡＰ管理者管理ＤＢに登録する。不一致の場合アプリケーション検証サーバ１９９は、ＡＰ証明書を作成せず、その旨をパターン設定クライアント１１０に送信する。なお、アプリケーション管理者の認証については、パターン設定クライアント１１０から受信するＡＰ証明書とＳＱＬパターン検証サーバ１３０のＡＰ管理者管理ＤＢに登録されているＡＰ証明書が合致するか否かにより行う。
【０１２１】
上記実施の形態では、パターン検証時において、セッションＩＤによりＤＢユーザＩＤを特定した上で、このＤＢユーザＩＤに対応するＳＱＬパターンを特定する例を示したが、これは一例である。実行されているアプリケーションプログラム１１１に対応する登録済のＳＱＬパターンを特定することができれば、セッションＩＤを用いなくてもよく、直接ＤＢユーザＩＤを送受信するようにしても、また他の識別情報を用いてもよい。
【０１２２】
また、上記実施の形態では不正なデータベース操作を検知した場合、アプリケーションプログラム１１１の実行を要求したＡＰクライアント１６０に不正なデータベース操作である旨を通知する例を示したが、これは一例である。不正なデータベース操作である旨は、例えば、ネットワークを介して通信可能に接続された、アプリケーション管理者やデータベース管理者が所持する携帯電話等の移動体通信端末や、データシステム全体を管理する管理者センタの情報処理端末に、さらに通知してもよい。この構成によれば、不正なデータベース操作の実行を試みた者がいることを管理者側がリアルタイムで認識することができる。
一方、上記構成によれば、不正なデータベース操作である旨が通知されることで、ユーザは、第三者により不正なデータベース操作を含むアプリケーションプログラム１１１が格納されていることを認識することができる。しかし、不正なデータベース操作を防止するという観点からすれば、不正なデータベース操作である旨を通知しなくてもよく、任意である。
【０１２３】
なお、本発明の実施の形態にかかる各サーバを実現するための情報処理装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、汎用コンピュータに、上述の処理を実行するためのＳＱＬパターン抽出プログラム１３４やＳＱＬパターン検証プログラム１４６を格納した媒体（ＣＤ−ＲＯＭなど）から当該プログラムをインストールすることにより、上述の処理を実行する各種サーバを構成することができる。
【０１２４】
また、上述の機能を、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とアプリケーションとの分担、またはＯＳとアプリケーションとの協同により実現する場合等には、ＯＳ以外の部分のみを媒体に格納してもよい。
【０１２５】
また、搬送波にＳＱＬパターン抽出プログラム１３４やＳＱＬパターン検証プログラム１４６を重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板（ＢＢＳ、Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【０１２６】
１００  データベース処理システム
１１０  パターン設定クライアント
１１１  アプリケーションプログラム
１２０  アプリケーションサーバ
１３０  ＳＱＬパターン抽出サーバ
１３１  記憶部
１３２  ＡＰ管理者管理ＤＢ
１３４  ＳＱＬパターン抽出プログラム
１３６  制御部
１４０  ＳＱＬパターン検証サーバ
１４１  記憶部
１４２  セッション管理ＤＢ
１４４  ＳＱＬパターン管理ＤＢ
１４６  ＳＱＬパターン検証プログラム
１４８  制御部
１５０  データベースサーバ
１５２  データベース管理システム
１５４  パスワード管理ＤＢ
１５６  情報管理ＤＢ
１６０  ＡＰクライアント
１８１  ユーザ判定部
１８２  操作指示抽出部
１９１  操作指示記憶部
１９２  接続要求受信部
１９３  セッション記憶部
１９４  操作指示特定部
１９５  操作指示判定部
１９６  出力部
１９９  アプリケーション検証サーバ
【図１】
0005584588.tif 000002
【図２】
0005584588.tif 000003
【図３】
0005584588.tif 000004
【図４】
0005584588.tif 000005
【図５】
0005584588.tif 000006
【図６】
0005584588.tif 000007
【図７】
0005584588.tif 000008
【図８】
0005584588.tif 000009
【図９】
0005584588.tif 000010
【図１０】
0005584588.tif 000011
【図１１】
0005584588.tif 000012
【図１２】
0005584588.tif 000013