(57)【要約】【課題】マルチテナント方式のシステムにおいて、システム運用者が誤った設定操作をしてもテナントの機密情報を安全に管理することを課題とする。【解決手段】アプリケーションサーバ１０からデータベースサーバ３０に格納されているデータベース２４へのアクセス要求としてデータソース６と、利用者のログイン時に指定される固有情報とが送信されると、データソース６を用いて該当のデータベースに接続する通信手段１１と、データベース２４のデータへのアクセス時には、固有情報をデータベースサーバ３０に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段１３と、アプリケーション固有情報付加手段１３が構成した固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスする処理手段１２とを備えたことを特徴とする情報制御装置。【選択図】図１
2012133645.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、
上記アプリケーションサーバに格納されているアプリケーションから上記データベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、上記アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、
上記通信手段が上記アプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、上記通信手段を介して、上記データソースを用いてデータベースへの接続要求を上記データベースサーバへ要求する処理手段と、
上記通信手段が上記アプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、上記固有情報を上記データベースサーバに格納されているテーブル構造定義情報名とみなし、上記データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加するアプリケーション固有情報付加手段とを備え、
上記処理手段は、上記通信手段を介して、上記アプリケーション固有情報付加手段が構成した上記固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを
特徴とする情報制御装置。
【請求項２】
上記固有情報は、利用者がログイン時に指定するテナントＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、
上記アプリケーション固有情報付加手段は、上記テナントＩＤを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントＩＤを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントＩＤを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項３】
上記固有情報は、利用者がログイン時に指定するユーザＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、ユーザＩＤを受信し、
上記アプリケーション固有情報付加手段は、ユーザＩＤを受信したときは、ユーザＩＤとテナントＩＤとの対応付けを記憶している情報に基づき、ユーザＩＤに対応するテナントＩＤを検索し、このテナントＩＤを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントＩＤを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントＩＤを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項４】
上記固有情報は、利用者がログイン時に指定するテナントＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、
上記アプリケーション固有情報付加手段は、テナントＩＤを受信したときは、テナントＩＤとスキーマ名との対応付けを記憶している情報に基づき、テナントＩＤに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記スキーマ名を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項５】
コンピュータを、請求項１〜４のいずれか一項に記載の情報制御装置として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マルチテナント方式のシステムにおいて、ユーザが希望するアプリケーションを利用するとき、データの機密性を保護する情報制御装置に関するものである。
【背景技術】
【０００２】
マルチテナント（複数テナント）方式のシステム（以下、単に「マルチテナント方式」、とも言う）とは、システム（アプリケーションサーバ、データベースサーバを含む）のリソースを複数のテナント（利用者）が共有利用可能とするシステムのことを言う。「複数のテナント」とは複数の利用者、つまり複数の企業やひとつの企業内の複数部門等を示す。マルチテナント方式では、アプリケーションサーバ上のハードウェア環境（ＣＰＵ，メモリ，ディスク，データベース）を共有するが、アプリケーションそのものもテナント間で共有することができる。一方シングルテナント方式とは、ひとつのテナントがハードウェアリソースを占有する方式のシステムのことを言い、テナントの増加により管理コストが増大する。一般的にマルチテナント方式はシングルテナント方式と比較して、リソース削減によりコストを抑えられ、ユーザは低価格で高品質のサービスを受けることができる利点がある。
【０００３】
このような利点があるマルチテナント方式だが、テナントに対して仮想的に分離された環境でサービスを提供しつつ、他テナントの操作に影響されず、テナント毎のデータやカスタマイズ内容を保護するように、構築することが必須条件となる。
【０００４】
特許文献１（特表２００９−５１８７１３号公報）では、不正なアクセスを防御するために、マルチテナントシステム内のファイアフォールサーバでテナントからの要求のユーザ情報および組織情報（情報１）を記憶し、情報１とアプリケーションサーバからの応答に含まれるユーザ情報および組織情報（情報２）との照合により、その応答が適切なテナントに送信されているかどうかを検証している。
【０００５】
また特許文献２（特開２００４−３１０２５６号公報）では、セッション情報内にユーザ情報が存在する場合、ＡＰサーバはデータベースにアクセスしてそのユーザのアクセス管理情報を取得する。その後、アクセス管理情報を照合することで、ユーザ要求に必要なデータが、ユーザが使用可能なスキーマかどうかを判定することで、不正アクセスを防御しようとしている。
【０００６】
このように特許文献１および特許文献２に開示された、不正アクセス防御方法では、２つの情報の照合により正当性を確認する方法のため、照合のためのデータ管理と、照合処理のためのハードウェア設置が必要となる。
【０００７】
特に特許文献１については、次のような問題点がある。
(1)フールプルーフではない。
システムの運用者が、他のテナントのデータを閲覧できるデータベースＩＤをデータベースシステムへ設定する等、誤った操作をすると、他のテナントのデータが閲覧できてしまい、その点に対する安全対策が施されていない。そのため、他のテナントの機密情報が危険に晒されてしまう。
(2)(1)の問題点解決のため、テナントからの要求が適正なユーザシステムに送信されているかどうかをシステム側で立証する必要がある点。
(3)ネットワークを介して機密保護のための処理を行っており、処理時間を要する。
ネットワークを介して、クライアント側で格納された組織ＩＤ情報を応答の中の類似情報（態様としてはクッキーがあると考える）と比較することによって、アプリケーションサーバからの応答が実際に適正なユーザシステムに送信されているかどうかを立証している。ネットワークを介して比較する方法のため、比較に要する時間がかかる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００９−５１８７１３号公報
【特許文献２】特開２００４−３１０２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
この発明は、マルチテナント方式においてシステム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することを課題とする。
【課題を解決するための手段】
【００１０】
この発明に係る情報制御装置は、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【００１１】
またこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントＩＤであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、アプリケーション固有情報付加手段は、テナントＩＤをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントＩＤを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントＩＤを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【００１２】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するユーザＩＤであり、通信手段は、データベースへのアクセス要求を受信するとき、ユーザＩＤを受信し、アプリケーション固有情報付加手段は、ユーザＩＤを受信したときは、ユーザＩＤとテナントＩＤとの対応付けを記憶している情報に基づき、ユーザＩＤに対応するテナントＩＤを検索し、このテナントＩＤをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントＩＤを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントＩＤを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【００１３】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントＩＤであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、アプリケーション固有情報付加手段は、テナントＩＤを受信したときは、テナントＩＤとスキーマ名との対応付けを記憶している情報に基づき、テナントＩＤに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、処理手段は、上記アプリケーション固有情報付加手段が構成したスキーマ名を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【００１４】
この発明に係るコンピュータプログラムは、コンピュータを、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスする情報制御装置として機能させることを特徴とする。
【発明の効果】
【００１５】
この発明の情報制御装置によると、システム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１におけるシステム構成図である。
【図２】実施の形態１における処理の全体の流れを示したフローチャートである。
【図３】端末装置２００の表示装置に表示するログイン画面例である。
【図４】実施の形態１で用いるデータベース接続情報６の構成の一例を示した図である。
【図５】実施の形態１で用いるテナント別設計情報（スキーマ）２３の構成の一例を示した図である。
【図６】アクセス電文の一例を示した図である。
【図７】実施の形態２におけるシステム構成図である。
【図８】実施の形態２における処理の全体の流れを示したフローチャートである。
【図９】実施の形態２で用いるユーザ/テナント対応情報１４の構成の一例を示した図である。
【図１０】実施の形態３におけるシステム構成図である。
【図１１】実施の形態３で用いるテナント/スキーマ対応情報１５の構成の一例を示した図である。
【図１２】実施の形態４におけるシステム構成図である。
【図１３】実施の形態４で用いるデータベース接続情報６の構成の一例を示した図である。
【図１４】実施の形態４で用いるＤＳＮ／テナントＩＤ対応情報８の構成の一例を示した図である。
【図１５】各実施の形態で用いたアプリケーションサーバ１０、情報制御装置２０、データベースサーバ３０、端末装置２００のハードウェア資源の一例を示す図である。
【発明を実施するための形態】
【００１７】
実施の形態１．
最初に、本実施の形態以降、各実施の形態の中で用いる用語について、説明する。
「テナント」とは、マルチアプリケーションシステムで該当のアプリケーションを利用する利用組織のことを示す。なお利用組織とは、１つの企業（団体)、１つの部門、または一人の利用者を表わし、利用組織の中には１人以上の利用者が含まれる。
【００１８】
「テナントＩＤ」とは、アプリケーションの利用組織（テナント）を示すＩＤであるが、システムのログイン時に入力されるユーザＩＤ/パスワードとは異なり、別途、設定されるＩＤである。テナントＩＤは、テナント毎に異なるＩＤが付与されるため、各実施の形態において、アクセス可能なデータベーススキーマを判別する固有情報と言える。テナントＩＤとユーザＩＤは、１対１の対応で設定してもよいが、２人以上の利用者が含まれる場合には１つのテナントＩＤに対して、複数のユーザＩＤを対応付けるように設定される。
【００１９】
「データベース接続情報」とは、データベースに接続するために必要な情報で、「データソース」とも呼ばれるものである。データソース名（ＤＳＮ）、ユーザＩＤ/パスワード（データベースに接続するためのユーザＩＤとパスワード）、スキーマ名、データベースインスタンス名（データの実体の名称）、ポート番号（データベースサーバのアドレス）などが設定される。
【００２０】
「スキーマ」（データベーススキーマ）とは、データベースのテーブル構造を定義する情報（以下、「テーブル構造定義情報」、とも言う。）で、項目のデータ型、データサイズ、キーの設定情報、他のテーブルとの関連付け等が定義されている情報である。言い換えると、実データが記憶されているデータベースをどのように設定するかを定義されている情報である。スキーマ名とは、そのテーブル構造を定義したファイルの名称である。
【００２１】
「ＳＱＬ」とは、リレーショナルデータベース管理システム（ＲＤＢＭＳ）で、データに対する操作や定義を行うためのデータベース言語で、命令文（アクセス電文）によりデータをアクセスする。例えば、ＳＥＬＥＣＴ文は、データの取得（照会）をするためのＳＱＬ命令で、ＣＲＥＡＴＥ文は、テーブルを作成するためのＳＱＬ命令である。
【００２２】
「セッション情報」とは、Ｗｅｂアプリケーションへの接続時に、ログインユーザ毎に発生する固有情報で、端末装置からアプリケーションに接続している間は同じセッション情報で接続され、ログインユーザ名が識別できる情報である。本実施の形態では、セッション情報を用いて同一利用者からのアプリケーションへの接続要求とデータベースアクセス要求とを識別するが、セッション情報以外で同一利用者からの要求を判別できる情報があれば、その情報を用いても良い。
【００２３】
本実施の形態は、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントＩＤの入力を受け付け、テナントＩＤをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントＩＤを付加することを特徴とする。また本実施の形態は、テナント毎に対応するアプリケーションがアプリケーションサーバに存在し、アプリーションサーバのハードウェア環境と、データベースサーバのデータベースインスタンス（データの実体）とは複数テナントで共有する形態であるとする。
【００２４】
図１は、本実施の形態におけるシステム構成図である。マルチテナントシステム１００にはアプリケーションサーバ１０と、情報制御装置２０と、データベースサーバ３０を備え、それぞれの装置は、ネットワーク３００を介して端末装置２００と接続されている。端末装置２００は、ネットワーク３００を介して、マルチテナントシステム１００に対してアプリケーションの使用を要求する端末であり、複数台存在させることが可能である。
端末装置２００（２００ａ、２００ｂ・・・）は、ネットワーク３００を介してアプリケーションサーバ１０とデータのやりとりを行う通信手段３１、データの処理を行う処理手段３２、入力されたデータを受け付ける入力手段３３、表示装置に表示するためのデータを構成する表示手段３４を備える。
【００２５】
アプリケーションサーバ１０は、ネットワーク３００を介して端末装置２００または、情報制御装置２０とデータのやりとりを行う通信手段１、データの処理を行う処理手段２、端末装置２００から送信されたテナントＩＤおよびユーザＩＤを記憶装置を用いて保持するテナントＩＤ保持手段３を備える。テナントＩＤ保持手段３は、ユーザＩＤをセッション情報として保持する。
【００２６】
さらにアプリケーションサーバ１０は、アプリケーション基本機能情報４、アプリケーション固有機能情報５、データベース接続情報６、認証情報７を備える。アプリケーション基本機能情報４は、マルチテナントアプリケーションの基本的な情報を記憶していて、アプリケーション固有機能情報５は、アプリケーションに関してテナント毎に異なる特有な情報を記憶している。アプリケーション固有機能情報５には、テナント毎に異なるアプリケーションのアドレス（ＵＲＬ（Uniform Resource Locator））を含み、端末装置２００からＵＲＬを指定してアプリケーションの所在場所に接続することにより、アプリケーションサーバ１０側では特定のアプリケーションへの接続要求を判別することができる。またアプリケーション固有機能情報５には、ＤＳＮ（データソース名）も含み、ＤＳＮとデータベース接続情報６に記憶されたＤＳＮとを対応付けることにより、該当するデータベース接続情報６と紐付けられる。
【００２７】
個々のアプリケーションは、アプリケーション固有機能情報５に記憶されたテナント毎の特有な情報と、アプリケーション基本機能情報４に記憶された基本情報とに基づき起動される。
【００２８】
データベース接続情報６の構成は、図４に例示したとおりである。データベース接続情報６は、ＤＳＮ（データソース名）、組織ＩＤ、パスワード、スキーマ名、ＤＢインスタンス名、ポート番号が記憶されている。データベース接続情報６は、データベースをアクセスする利用者側からは、ＤＮＳ情報しか見えない構成になっているが、ＤＮＳ情報以外は、データベースに接続するときに必要な情報である。データベース接続情報６ａは、「スキーマ名  ＡＡ」が正しく設定されている場合、データベース接続情報６ｂは、本来「スキーマ名  ＡＡ」ではないのに、「スキーマ名  ＡＡ」と「スキーマ名  ＡＡ」に対応する組織ＩＤおよびパスワードが誤って設定されている場合を示している。なおデータベース接続情報６の設定誤りとは、システム管理者の入力間違い等により発生する。
【００２９】
アプリケーション基本機能情報４、アプリケーション固有機能情報５およびデータベース接続情報６は、テナント毎に１対で備えられているものであり、対応するテナント数に応じて複数のアプリケーション基本機能情報４、アプリケーション固有機能情報５およびデータベース接続情報６の組み合わせが記憶される。
【００３０】
認証情報７は、マルチテナントシステム１００へのログインを認証するために、利用者のユーザＩＤと、パスワードとの対応付けを記憶している情報である。
【００３１】
情報制御装置２０は、アプリケーションサーバ１０からデータベースサーバ３０に格納されているデータベースへのアクセス要求としてデータソース情報と、テナントＩＤとが送信されると、受信したデータソース情報でデータベースサーバ３０に存在する該当のデータベースに接続し、その後データベースにアクセスする通信手段１１と、特定の処理を行う処理手段１２と、データベースサーバ３０に存在するデータベースのデータへのアクセス時には、テナントＩＤをデータベースサーバ３０に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントＩＤを付加して、アクセスするテナントＩＤ付加手段を備える。
【００３２】
データベースサーバ３０は、情報制御装置２０からデータソース情報と、テナントＩＤとを含むアクセス要求を受信し、その応答情報を送信する通信手段２１と、データベースに関する処理を行う処理手段２２と、テナント別設計情報（スキーマ）２３と、データベース２４とを備える。
【００３３】
図５は、テナント別設計情報２３の一例を示したものであり、データベース２４に記憶されたテーブルに対して、どのような項目として定義するかを設定するものである。データベース２４は、実データがテーブル名とともに記憶されていて、テーブル名により、テナント別設計情報２３とデータベース２４とが紐付けられる。このテナント別設定情報２３により、マルチテナント方式において、データベースを共有しつつ、テナント毎の管理、不正利用防止が実現できる。例えば、図５において、スキーマＡＡは、データベース２４のテーブルＡ０１に対して、データＮｏ．を示す「Ｎｏ．」、顧客名を示す「ｎａｍｅ」、顧客情報に関連する「ｄａｔａ１」、「ｄａｔａ２」を図示していないが、データ型、データサイズ、キーの設定情報等とともに、定義されているとする。またスキーマＢＢは、データベース２４のテーブルＡ０１に対して、「Ｎｏ．」、「ｎａｍｅ」、「ｄａｔａ１」、「ｄａｔａ２」とともに、さらに「ｄａｔａ３」、「ｄａｔａ４」を定義している。このように項目情報をスキーマ毎に定義することにより、同一データベースを用いた場合でも、テナント毎に利用する項目を変更することが可能となる。
【００３４】
図２は、本実施の形態における処理の流れを示すフローチャートである。処理を開始し、端末装置２００の入力手段３３が、利用者の該当テナントに対応するアプリケーションのＵＲＬの入力を利用者から受け付けた後、通信手段３１は、通信手段１を介してテナント固有のアプリケーションのＵＲＬに接続する（このとき、テナントＩＤに対応するアプリケーションのそれぞれのＵＲＬが予め利用者に通知されているものとする）。表示手段３４は、端末装置２００の表示装置に対して入力画面を表示し、入力手段３３は、入力装置を用いて、利用者からのテナントＩＤ、ユーザＩＤ、パスワードの入力を受け付ける。その後、処理手段３２は受け付けた入力データを判別し、通信手段３１は、アプリケーションサーバ１０に対して、テナントＩＤ、ユーザ名、パスワードおよびログイン要求を送信する（ステップＳ１）。
【００３５】
図３は、端末装置２００の表示装置に表示する入力画面例である。図３に示した例では、ＵＲＬの指定によりテナント固有のアプリケーションに接続後、テナントＩＤに「ＡＡ」、ユーザＩＤ「User1」、パスワード「Password1」と入力している。
【００３６】
アプリケーションサーバ１０では、通信手段１が端末装置２００の通信手段３１から送信された情報を受信し、処理手段２が認証情報７を参照して、受信したユーザのログイン名とパスワードとが認証情報７に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をＯＫと判別する。ＯＫと判別した後、受信したログイン名、パスワードおよびテナントＩＤを、テナントＩＤ保持手段３に受け渡し、テナントＩＤ保持手段３はセッション情報とともに、テナントＩＤを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する（ステップＳ２）。
【００３７】
端末装置２００は、アプリケーションに関するリクエストをアプリケーションサーバ１０に送信する（ステップＳ３）。アプリケーションに関するリクエストとは、データベースへのアクセス（データの閲覧、更新、削除、追加）要求が明示的に指定される場合もあるが、暗黙的に入手したい情報が指定され、アプリケーションサーバ１０の処理手段にてデータベースへのアクセス情報（データベースアクセス情報）に変換する場合も考えられる。
【００３８】
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ１０の処理手段２は、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後本実施の形態ではアプリケーション固有機能情報５を参照することにより定められる、ＤＳＮに対応するデータベース接続情報６が１レコード（１情報）のみ記憶されているので、データベース接続情報６を参照し、ＤＳＮを特定する（ステップＳ４）。なおデータベースアクセス情報とは、少なくともデータベースアクセスの種別、対象、範囲を含む。
【００３９】
処理手段２は、特定されたＤＳＮに紐づいているデータベース接続情報と、さらにテナントＩＤ保持手段３により保持されているテナントＩＤとセッション情報とをデータベース接続情報に付加して、通信手段１は処理手段２が構成した情報（データベース接続情報、テナントＩＤ、セッション情報）を情報制御装置２０に送信する（ステップＳ５）。
【００４０】
情報制御装置２０の通信手段１１は、アプリケーションサーバ１０の通信手段１からデータベースへの接続要求として、データベース接続情報とテナントＩＤとセッション情報とを受信し、処理手段１２は通信手段１１が受信したデータベース接続情報に基づき、通信手段１１を介して、データベースへの接続要求をデータベースサーバ３０の通信手段２１に送信する。また処理手段１２は受信したテナントＩＤとセッション情報とを記憶装置に記憶する（ステップＳ６）。
【００４１】
通信手段２１は、受信したデータベース接続情報を処理手段２２に受け渡し、処理手段２２はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段２１からデータベース接続可の情報、また接続不可の場合は、通信手段２１からデータベース接続不可の情報が返信される（ステップＳ７）。
【００４２】
通信手段１１は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段１に送信する。通信手段１は、データベース接続不可の情報を受信したときは、その情報を端末装置２００の通信手段３１に送信し、端末装置２００では通信手段３１が受信した情報に基づき、表示手段３４が表示装置にデータベース接続不可の情報を表示する（ステップＳ８）。データベース接続不可の原因は、ネットワーク３００でのエラー、ＤＳＮの設定間違いなどが考えられるので、さらにアプリケーションサーバ１０においてシステム管理者（運用者）に対して、原因の候補を提示したり、対策案を提示するように構成してもよい。
【００４３】
データベース接続可となった後、アプリケーションサーバ１０の処理手段２は、通信手段１を介して、ステップＳ４で一時的に記憶したデータベースアクセス情報を、ステップＳ２で記憶したテナントＩＤ、セッション情報とともに情報制御装置２０の通信手段１１に送信する（ステップＳ９）。
【００４４】
通信手段１１は受信したテナントＩＤおよびセッション情報がステップＳ６で記憶装置に記憶したテナントＩＤおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントＩＤ付加手段１３は受信したデータベースアクセス情報をアクセス電文に変換して、このアクセス電文にテナントＩＤをスキーマ名として付加して、処理手段１２は通信手段１１を介して、アクセス電文をデータベースサーバ３０に送信する（ステップＳ１０）。なおアクセス電文への変換処理は、ＳＱＬ等のデータベース管理システムを用いて行われる。ステップＳ１０で受信したテナントＩＤおよびセッション情報がステップＳ６で記憶したテナントＩＤおよびセッション情報に含まれない（マルチテナントシステム１００において、一時的に記憶するテナントＩＤおよびセッション情報の組み合わせは複数存在する場合がある）ときは、ネットワーク３００でエラーが発生していると判断し、通信手段１１から通信手段１にセッションエラー情報を応答情報として送信する。その後通信手段１は、通信手段３１にセッションエラー情報を応答情報として送信する。
【００４５】
データベースサーバ３０の通信手段２１は、アクセス電文を受信し、処理手段２２はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段２１は、アクセス結果を応答情報として、情報制御装置の通信手段１１に送信する。
一方、処理手段２２はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段２１はそのアクセス不許可の結果を応答情報として情報制御装置の通信手段１１に送信する（ステップＳ１１）。
【００４６】
通信手段１１は、受信した応答情報またはアクセス不許可情報を、通信手段１に送信し、通信手段１は、受信した応答情報またはアクセス不許可情報を端末装置２００の通信手段３１に送信し、端末装置２００では通信手段３１が受信した情報に基づき、表示手段３４が表示装置に結果（応答情報またはアクセス不許可情報）を表示する（ステップＳ１２）。処理を終了する。
【００４７】
なおステップＳ６で作成するデータベースへの接続要求は、ポート番号とデータベースインスタンス名の組み合わせにより作成されるデータベースのアドレスと、データベースに接続するための組織ＩＤとパスワードを含むものである。データベースのアドレスは、例えばＵＲＬで表わされる。
【００４８】
またステップＳ６でのテナントＩＤとセッション情報の受信、記憶装置への記憶、およびステップＳ１０での受信したテナントＩＤおよびセッション情報がステップＳ６で記憶装置に記憶したテナントＩＤおよびセッション情報と同一であることの確認は、省略してもよい。つまりステップＳ６では、データベース接続情報のみを受信するように構成し、ステップＳ１０では何らかの確認なしに、アクセス電文にテナントＩＤをスキーマ名として付加して、データベースサーバ３０に送信するように構成することができる。
またステップＳ１０で作成するアクセス電文の一例は、図６のとおりである。アクセス電文とは、データベースをアクセス（データの閲覧、更新、削除、追加等）するための電文で、ＳＱＬのＳＥＬＥＣＴ文（閲覧）の場合は、「ＳＥＬＥＣＴ（命令）、対象、取得情報」といった、構成になる。対象を示すスキーマ名に、テナントＩＤをスキーマ名とみなしテナントＩＤを付加することで、対象を限定することができる。
具体的には、「select no.,name From ＡＡ.Table  where・・・」といった記載になり、スキーマＡＡから「no.」と「name」の項目を選択させる命令になる。
【００４９】
データベース接続情報６の組織ＩＤ/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。本実施の形態では、データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置２０にて、スキーマ名にテナントＩＤを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【００５０】
例えば、アプリケーションサーバ１０のデータベース接続情報６が誤って図４の６ｂのように設定されていたとき、図２に示したステップＳ６の処理で「スキーマ名  ＡＡ」へのアクセス許可がない利用者に対して、「スキーマ名  ＡＡ」の接続を許可してしまうことになる。しかしステップＳ１０の処理で、アクセス電文に端末装置２００に入力されたテナントＩＤをスキーマ名として付加してアクセス電文を構成することで、「スキーマ名  ＡＡ」へのアクセス許可がない利用者に対して、データベースのアクセスを許可しない。このように動作することにより、マルチテナントシステムとして必須条件であるテナント毎の機密管理、データの機密性を担保することができる。
【００５１】
また本実施の形態は、利用者から入力されたテナントＩＤをデータベースアクセス時に用いて、データベースへのアクセス制御の妥当性を確認する方法なので、何らかのデータ同士の照合作業が不要となり、そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすいという特徴がある。
【００５２】
本実施の形態の情報制御装置２０は、アプリケーションが格納されているアプリケーションサーバ１０、データベースが格納されているデータベースサーバ３０とネットワーク接続された情報制御装置２０であって、通信手段１１はアプリケーションサーバ１０に格納されているアプリケーション（アプリケーション基本機能情報４とアプリケーション固有機能情報５とにより構成）からデータベースサーバ３０に格納されているデータベース２４への接続要求としてデータソース（データベース接続情報６）を受信する（図２のステップＳ５、Ｓ６）。さらに通信手段１１はアプリケーションが該当のデータベース２４に接続された後、アプリケーションサーバ１０から該当のデータベース２４へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する（図２のステップＳ９、Ｓ１０）。アプリケーション基本機能情報４とアプリケーション固有機能情報５およびデータベース接続情報６は、一対で構成される。
【００５３】
また処理手段１２は、通信手段１１がアプリケーションサーバ１０からデータベース２４への接続要求としてデータソース（データベース接続情報６）を受信したとき、通信手段１１を介して、データソース（データベース接続情報６）を用いてデータベース２４への接続要求をデータベースサーバ３０へ要求する。
【００５４】
さらにアプリケーション固有情報付加手段（テナントＩＤ付加手段）１３は、通信手段１１がアプリケーションサーバ１０からデータベース２４へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、この固有情報をデータベースサーバ３０に格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加する。
【００５５】
また処理手段１２は、通信手段１１を介して、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３が構成した固有情報を含むアクセス電文にて、データベースサーバ３０のデータベース２４にアクセスする。
【００５６】
また本実施の形態において、固有情報は、利用者がログイン時に指定するテナントＩＤであり、通信手段１１は、データベースへのアクセス要求をアプリケーションサーバ１０から受信するとき、テナントＩＤを受信し、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３は、このテナントＩＤをデータベースサーバ３０に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントＩＤを付加する。さらに、処理手段１２は、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３が構成したテナントＩＤを含むアクセス電文にて、データベースサーバ３０のデータベース２４にアクセスすることを特徴とする。
【００５７】
実施の形態２．
実施の形態１では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントＩＤの入力を受け付け、テナントＩＤをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントＩＤを付加するように、動作した。本実施の形態では、ログイン時、テナントＩＤの入力を受け付けず、情報制御装置２０にてユーザ名とテナント情報との対応付けを行うことを特徴とする。
【００５８】
図７は、本実施の形態でのシステム構成図である。実施の形態１で用いた図１と構成が異なるのは、アプリケーションサーバ１０にユーザＩＤ保持手段８を含み、情報制御装置２０にユーザ/テナント対応情報１４を含む点である。アプリケーションサーバ１０のユーザＩＤ保持手段８は、入力されたユーザＩＤを保持する。情報制御装置２０の処理手段１２は、ユーザ/テナント対応情報１４を参照することにより、ユーザ名と対応するテナントＩＤを特定する。
【００５９】
図８は、本実施の形態における処理の流れを示すフローチャートである。また図９は、ユーザ/テナント対応情報１４の構成の一例を示した図である。図９に示したとおり、ユーザ/テナント対応情報１４は、ユーザＩＤと、テナントＩＤとが対応付けられ、登録されている。ユーザＩＤとテナントＩＤとは、一対の場合もあるし、１つのテナントＩＤに複数のユーザＩＤが対応付けられている場合もある。これは、マルチテナントシステムのテナントがアプリケーションのユーザをどのように設定するかにより定められる。
【００６０】
図８の処理の流れについて、説明する。処理を開始し、端末装置２００の表示手段３４は、表示装置に対して入力画面を表示し、入力手段３３は、入力装置を用いて利用者からのユーザ名、パスワードの入力を受け付ける。その後、処理手段３２は受け付けた入力データを判別し、通信手段３１は、アプリケーションサーバ１０に対して、ユーザ名、パスワードおよびログイン要求を送信する（ステップＳ２１）。
【００６１】
実施の形態１で用いた図３の入力画面例では、テナントＩＤ、ユーザ名、パスワードの３つの入力欄があったが、本実施の形態の入力画面では、ユーザ名、パスワードのみ入力を受けつける。
【００６２】
アプリケーションサーバ１０では、通信手段１が端末装置２００の通信手段３１から送信された情報を受信し、処理手段２が認証情報７を参照して、受信したユーザのログイン名とパスワードとが認証情報７に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をＯＫと判別する。ＯＫと判別した後、受信したログイン名を、ユーザＩＤ保持手段８に受け渡し、ユーザＩＤ保持手段８はセッション情報ととに、ユーザＩＤを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する（ステップＳ２２）。
【００６３】
端末装置２００は、アプリケーションに関するリクエストをアプリケーションサーバ１０に送信する（ステップＳ２３）。
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ１０の処理手段２は、リクエスト情報を一時的に記憶装置に記憶し、その後本実施の形態では（実施の形態１と同様）アプリケーション固有機能情報５を参照することにより定められる、ＤＳＮに対応するデータベース接続情報６が１レコード（１情報）のみ記憶されているデータベース接続情報６を参照し、ＤＳＮを特定する（ステップＳ２４）。処理手段２は、特定されたＤＳＮに紐づいているデータベース接続情報と、さらにユーザＩＤ保持手段８により保持されているユーザＩＤをデータベース接続情報に付加して、通信手段１は処理手段２が構成した情報（データベース接続情報と、ユーザＩＤ）を情報制御装置２０に送信する（ステップＳ２５）。
【００６４】
情報制御装置２０の通信手段１１は、アプリケーションサーバ１０の通信手段１よりデータベース接続情報とユーザＩＤとを受信し、処理手段１２は通信手段１１が受信したデータベース接続情報に基づき、通信手段１１を介して、データベースへの接続要求をデータベースサーバ３０の通信手段２１に送信する。また処理手段１２は受信したユーザＩＤとセッション情報とを記憶装置に記憶する（ステップＳ２６）。
【００６５】
データベースサーバ３０の通信手段２１は、受信したデータベース接続情報を処理手段２２に受け渡し、処理手段２２はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段２１からデータベース接続可の情報、また接続不可の場合は、通信手段２１からデータベース接続不可の情報が返信される（ステップＳ２７）。
【００６６】
通信手段１１は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段１に送信する。通信手段１は、データベース接続不可の情報を受信したときは、データベース接続不可の情報を端末装置２００の通信手段３１に送信し、端末装置２００では通信手段３１が受信した情報に基づき、表示手段３４が表示装置にデータベース接続不可の情報を表示する（ステップＳ２８）。また実施の形態１で用いた、図２のステップＳ８で説明したように、データベース接続不可の原因候補や対策候補をシステム管理者に提示してもよい。
【００６７】
データベース接続可となった後、アプリケーションサーバ１０の処理手段２は、通信手段１を介して、ステップＳ２４で一時的に記憶したデータベースアクセス情報を、ステップＳ２２で記憶したセッション情報、ユーザＩＤとともに情報制御装置２０の通信手段１１に送信する（ステップＳ２９）。
【００６８】
通信手段１１は受信したテナントＩＤおよびセッション情報がステップＳ２６で記憶装置に記憶したテナントＩＤおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントＩＤ付加手段１３はユーザ/テナント対応情報１４を参照し、通信手段１１から受け渡されたユーザＩＤに対応するテナントＩＤを検索する。その後テナントＩＤ付加手段１３は、アクセス電文にテナントＩＤをスキーマ名として付加して、処理手段１２は通信手段１１を介して、データベースサーバ３０に送信する（ステップＳ３０）。エラー時の処理は、図２に示したフローチャートと同様に処理される。
【００６９】
データベースサーバ３０の通信手段２１は、アクセス電文を受信し、処理手段２２はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段２１は、アクセス結果を応答情報として、情報制御装置の通信手段１１に送信する。
一方、処理手段２２はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段２１はその結果を応答情報として情報制御装置の通信手段１１に送信する（ステップＳ３１）。
【００７０】
通信手段１１は、受信した応答情報またはアクセス不許可情報を、通信手段１に送信し、通信手段１は、受信した応答情報またはアクセス不許可情報を端末装置２００の通信手段３１に送信し、端末装置２００では通信手段３１が受信した情報に基づき、表示手段３４が表示装置に結果（応答情報またはアクセス不許可情報）を表示する（ステップＳ３２）。処理を終了する。
【００７１】
本実施の形態の方法によると、利用者から入力されたユーザＩＤを用いて、データベースへのアクセス制御の妥当性を確認するので、何らかのデータ同士の照合作業が不要となる。そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすい。また情報制御装置２０により、ユーザＩＤとテナントＩＤとの対応付けが予め記憶されているため、利用者はテナントＩＤを入力する必要がなく、ユーザＩＤの入力によりユーザＩＤに割り当てられたアプリケーションを利用することができる。
【００７２】
本実施の形態において固有情報は、利用者がログイン時に指定するユーザＩＤであり、通信手段１１は、データベースへのアクセス要求を受信するとき、ユーザＩＤを受信し、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３は、ユーザＩＤを受信したときは、ユーザＩＤとテナントＩＤとの対応付けを記憶している情報（ユーザ/テナント対応情報１４）に基づき、ユーザＩＤに対応するテナントＩＤを検索し、このテナントＩＤをデータベースサーバ３０に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントＩＤを付加する。さらに処理手段１２は、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３が構成したテナントＩＤを含むアクセス電文にて、データベースサーバ３０のデータベース２４にアクセスすることを特徴とする。
【００７３】
実施の形態３．
本実施の形態では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントＩＤの入力を受け付けるが、実施の形態１とは異なり、テナントＩＤと、スキーマ名は、異なることを特徴とする。
【００７４】
図１０は、本実施の形態でのシステム構成図である。実施の形態１で用いた図１と比較すると、情報制御装置２０にテナント/スキーマ対応情報１５を含み、テナントＩＤ付加手段１３がテナント/スキーマ対応情報１５を参照し、テナントＩＤと対応するスキーマ名を検索し、データベースアクセス時のスキーマ名を特定する。
【００７５】
図１１は、テナント/スキーマ対応情報１５の構成を示す図である。図１１に示すように、テナントＩＤとスキーマ名とが一対で定められ記憶されている。
本実施の形態の処理の流れを実施の形態１で用いた図２にて、説明する。
ステップＳ１〜Ｓ９までは、図２で説明したとおりの処理を行うが、ステップＳ１０にてデータベースにアクセスするため、テナントＩＤ付加手段１３はテナント/スキーマ対応情報１５を参照し、通信手段１１から受け渡されたテナントＩＤに対応するスキーマ名を検索する。その後テナントＩＤ付加手段１３は、アクセス電文に特定されたスキーマ名を付加して、処理手段１２は通信手段１１を介して、データベースサーバ３０に送信する（ステップＳ１０）。その後のステップＳ１１〜Ｓ１２は、図２で説明したとおりである。
【００７６】
このように本実施の形態の方法によると、情報制御装置２０にてテナントＩＤとスキーマ名の対応付けを任意に設定することができるため、情報制御装置２０での設計がしやすくなる効果が得られる。
【００７７】
本実施の形態において、固有情報は、利用者がログイン時に指定するテナントＩＤであり、通信手段１１は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３は、テナントＩＤを受信したときは、テナントＩＤとスキーマ名との対応付けを記憶している情報（テナント/スキーマ対応情報）１５に基づき、テナントＩＤに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加する。さらに処理手段１２は、アプリケーション固有情報付加手段（テナントＩＤ付加手段）１３が構成したスキーマ名を含むアクセス電文にて、データベースサーバ３０のデータベース２４にアクセスすることを特徴とする。
【００７８】
実施の形態４．
実施の形態１〜３では、アプリーションサーバのハードウェア環境とデータベースサーバのデータベースインスタンスとをテナント間で共有し、アプリケーション自体はテナント毎に存在するマルチテナントシステムについて説明した。本実施の形態は、１つのアプリケーションを複数のテナントで共有する形態である。つまり、アプリーションサーバのハードウェア環境、データベースサーバのデータベース、およびアプリーションサーバ上のアプリケーションを複数テナントで共有する。
【００７９】
図１２は、本実施の形態におけるシステム構成図である。実施の形態１で用いた図１と比較すると、アプリケーションサーバ１０にＤＳＮ/テナントＩＤ対応情報８を含み、処理手段２は、ＤＳＮ/テナントＩＤ対応情報８を参照することにより、入力されたテナントＩＤに対応するＤＳＮを特定する。
【００８０】
図１３は、本実施の形態におけるデータベース接続情報６の構成である。データベース接続情報６の構成そのものは、実施の形態１において図４で説明したとおりであるが、本実施の形態では、１つのアプリケーションを複数のテナントで共有する構成のため、複数のＤＳＮが記憶されている。
【００８１】
本実施の形態の処理の流れを実施の形態１で用いた図２にて、説明する。ステップＳ１〜Ｓ３までは、図２で説明したとおりの処理を行うが、ステップＳ４でアプリケーションサーバ１０の処理手段２は、アプリケーションに関するリクエストを受け付けると、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後、処理手段２はステップＳ２で記憶装置に記憶されたテナントＩＤとＤＳＮ/テナントＩＤ対応情報８とを参照し、取り出したテナントＩＤに対応するＤＳＮを特定する。
続いて処理手段２は、データベース接続情報６を参照し、入力されたテナントＩＤに対応するＤＳＮを決定する。ステップＳ５以降の処理は、図２で説明したとおりである。
【００８２】
このように本実施の形態のようなアプリケーション共有方式のマルチテナントシステムにおいても、データベース接続情報６の組織ＩＤ/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置２０にて、スキーマ名にテナントＩＤを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【００８３】
図１４は、各実施の形態で用いたアプリケーションサーバ１０、情報制御装置２０、データベースサーバ３０、端末装置２００のハードウェア資源の一例を示す図である。
図１４において、コンピュータは、システムユニット（図示せず）、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶ディスプレイ）の表示画面を有する表示装置９０１、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、ＬＡＮに接続されている。
【００８４】
各コンピュータは、プログラムを実行するＣＰＵ９１１（「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう）を備えている。ＣＰＵ９１１は、図１で示した各処理部（〜手段）でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される処理装置である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、スキャナ装置９０６、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
【００８５】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、それぞれのコンピュータが用いる記憶装置（記憶部）９２９の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、スキャナ９０６などは、入力装置（図示せず）の一例である。また、通信ボード９１５、表示装置９０１などは、出力装置（図示せず）の一例である。
【００８６】
通信ボード９１５は、ネットワーク４００に接続されている。ネットワーク４００は、ＬＡＮに限らず、インターネット、あるいは、ＷＡＮなどで構成されていても構わない。
記憶装置（磁気ディスク装置）９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。また、ファイル群９２４には、各実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（ＩＤｅｎｔｉｆｉｅｒ）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理（動作）に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００８７】
また、各実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、ＲＡＭ９１４などのメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク（ＭＤ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体により伝送される。
【００８８】
また、各実施の形態の説明において「〜手段」として説明するものは、「〜部」、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜手段」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどの記録媒体に記憶される。このプログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、各実施の形態の説明で述べる「〜手段」としてコンピュータを機能させるものである。あるいは、各実施の形態の説明で述べる「〜手段」の手順や方法をコンピュータに実行させるものである。
【符号の説明】
【００８９】
１，１１，２１，３１  通信手段、２，１２，２２，３２  処理手段、３  テナントＩＤ保持手段、４  アプリケーション基本機能情報、５  アプリケーション固有機能情報、６  データベース接続情報、７  認証情報、１０  アプリケーションサーバ、１３  テナントＩＤ付加手段、１４  ユーザ/テナント対応情報、１５  テナント/スキーマ対応情報、２０  情報制御装置、２３  テナント別設計情報（スキーマ）、２４  データベース、３０  データベースサーバ、３３  入力手段、３４  表示手段、１００  マルチテナントシステム、２００  端末装置、３００  ネットワーク。
【図１】
2012133645.tif 000003
【図２】
2012133645.tif 000004
【図３】
2012133645.tif 000005
【図４】
2012133645.tif 000006
【図５】
2012133645.tif 000007
【図６】
2012133645.tif 000008
【図７】
2012133645.tif 000009
【図８】
2012133645.tif 000010
【図９】
2012133645.tif 000011
【図１０】
2012133645.tif 000012
【図１１】
2012133645.tif 000013
【図１２】
2012133645.tif 000014
【図１３】
2012133645.tif 000015
【図１４】
2012133645.tif 000016
【図１５】
2012133645.tif 000017
【手続補正書】
【提出日】平成24年3月23日(2012.3.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、
上記アプリケーションサーバに格納されているアプリケーションから上記データベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、上記アプリケーションが上記データソースに含まれるテーブル構造定義情報名で該当のデータベースに接続された後、上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、
上記通信手段が上記アプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、上記通信手段を介して、上記データソースに含まれるテーブル構造定義情報名でデータベースへの接続要求を上記データベースサーバへ要求する処理手段と、
上記通信手段が上記アプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、上記固有情報を上記データベースサーバに格納されているテーブル構造定義情報名とみなし、上記データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加するアプリケーション固有情報付加手段とを備え、
上記処理手段は、上記通信手段を介して、上記アプリケーション固有情報付加手段が構成した上記固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを
特徴とする情報制御装置。
【請求項２】
上記固有情報は、利用者がログイン時に指定するテナントＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、
上記アプリケーション固有情報付加手段は、上記テナントＩＤを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントＩＤを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントＩＤを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項３】
上記固有情報は、利用者がログイン時に指定するユーザＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、ユーザＩＤを受信し、
上記アプリケーション固有情報付加手段は、ユーザＩＤを受信したときは、ユーザＩＤと
テナントＩＤとの対応付けを記憶している情報に基づき、ユーザＩＤに対応するテナント
ＩＤを検索し、このテナントＩＤを上記データベースサーバに格納されているテーブル構
造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントＩＤを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントＩＤを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項４】
上記固有情報は、利用者がログイン時に指定するテナントＩＤであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントＩＤを受信し、
上記アプリケーション固有情報付加手段は、テナントＩＤを受信したときは、テナントＩ
Ｄとスキーマ名との対応付けを記憶している情報に基づき、テナントＩＤに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記スキーマ名を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項１に記載の情報制御装置。
【請求項５】
コンピュータを、請求項１〜４のいずれか一項に記載の情報制御装置として機能させるコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
この発明に係る情報制御装置は、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが上記データソースに含まれるテーブル構造定義情報名で該当のデータベースに接続された後、上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースに含まれるテーブル構造定義情報名でデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。