情報制御装置および情報制御プログラム
【課題】マルチテナント方式のシステムにおいて、システム運用者が誤った設定操作をしてもテナントの機密情報を安全に管理することを課題とする。
【解決手段】
アプリケーションサーバ10からデータベースサーバ30に格納されているデータベース24へのアクセス要求としてデータソース6と、利用者のログイン時に指定される固有情報とが送信されると、データソース6を用いて該当のデータベースに接続する通信手段11と、データベース24のデータへのアクセス時には、固有情報をデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段13と、アプリケーション固有情報付加手段13が構成した固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスする処理手段12とを備えたことを特徴とする情報制御装置。
【解決手段】
アプリケーションサーバ10からデータベースサーバ30に格納されているデータベース24へのアクセス要求としてデータソース6と、利用者のログイン時に指定される固有情報とが送信されると、データソース6を用いて該当のデータベースに接続する通信手段11と、データベース24のデータへのアクセス時には、固有情報をデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段13と、アプリケーション固有情報付加手段13が構成した固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスする処理手段12とを備えたことを特徴とする情報制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、マルチテナント方式のシステムにおいて、ユーザが希望するアプリケーションを利用するとき、データの機密性を保護する情報制御装置に関するものである。
【背景技術】
【0002】
マルチテナント(複数テナント)方式のシステム(以下、単に「マルチテナント方式」、とも言う)とは、システム(アプリケーションサーバ、データベースサーバを含む)のリソースを複数のテナント(利用者)が共有利用可能とするシステムのことを言う。「複数のテナント」とは複数の利用者、つまり複数の企業やひとつの企業内の複数部門等を示す。マルチテナント方式では、アプリケーションサーバ上のハードウェア環境(CPU,メモリ,ディスク,データベース)を共有するが、アプリケーションそのものもテナント間で共有することができる。一方シングルテナント方式とは、ひとつのテナントがハードウェアリソースを占有する方式のシステムのことを言い、テナントの増加により管理コストが増大する。一般的にマルチテナント方式はシングルテナント方式と比較して、リソース削減によりコストを抑えられ、ユーザは低価格で高品質のサービスを受けることができる利点がある。
【0003】
このような利点があるマルチテナント方式だが、テナントに対して仮想的に分離された環境でサービスを提供しつつ、他テナントの操作に影響されず、テナント毎のデータやカスタマイズ内容を保護するように、構築することが必須条件となる。
【0004】
特許文献1(特表2009−518713号公報)では、不正なアクセスを防御するために、マルチテナントシステム内のファイアフォールサーバでテナントからの要求のユーザ情報および組織情報(情報1)を記憶し、情報1とアプリケーションサーバからの応答に含まれるユーザ情報および組織情報(情報2)との照合により、その応答が適切なテナントに送信されているかどうかを検証している。
【0005】
また特許文献2(特開2004−310256号公報)では、セッション情報内にユーザ情報が存在する場合、APサーバはデータベースにアクセスしてそのユーザのアクセス管理情報を取得する。その後、アクセス管理情報を照合することで、ユーザ要求に必要なデータが、ユーザが使用可能なスキーマかどうかを判定することで、不正アクセスを防御しようとしている。
【0006】
このように特許文献1および特許文献2に開示された、不正アクセス防御方法では、2つの情報の照合により正当性を確認する方法のため、照合のためのデータ管理と、照合処理のためのハードウェア設置が必要となる。
【0007】
特に特許文献1については、次のような問題点がある。
(1)フールプルーフではない。
システムの運用者が、他のテナントのデータを閲覧できるデータベースIDをデータベースシステムへ設定する等、誤った操作をすると、他のテナントのデータが閲覧できてしまい、その点に対する安全対策が施されていない。そのため、他のテナントの機密情報が危険に晒されてしまう。
(2)(1)の問題点解決のため、テナントからの要求が適正なユーザシステムに送信されているかどうかをシステム側で立証する必要がある点。
(3)ネットワークを介して機密保護のための処理を行っており、処理時間を要する。
ネットワークを介して、クライアント側で格納された組織ID情報を応答の中の類似情報(態様としてはクッキーがあると考える)と比較することによって、アプリケーションサーバからの応答が実際に適正なユーザシステムに送信されているかどうかを立証している。ネットワークを介して比較する方法のため、比較に要する時間がかかる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2009−518713号公報
【特許文献2】特開2004−310256号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
この発明は、マルチテナント方式においてシステム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することを課題とする。
【課題を解決するための手段】
【0010】
この発明に係る情報制御装置は、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0011】
またこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段は、テナントIDをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントIDを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントIDを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0012】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するユーザIDであり、通信手段は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、アプリケーション固有情報付加手段は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントIDを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントIDを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0013】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、処理手段は、上記アプリケーション固有情報付加手段が構成したスキーマ名を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0014】
この発明に係るコンピュータプログラムは、コンピュータを、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスする情報制御装置として機能させることを特徴とする。
【発明の効果】
【0015】
この発明の情報制御装置によると、システム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することができる。
【図面の簡単な説明】
【0016】
【図1】実施の形態1におけるシステム構成図である。
【図2】実施の形態1における処理の全体の流れを示したフローチャートである。
【図3】端末装置200の表示装置に表示するログイン画面例である。
【図4】実施の形態1で用いるデータベース接続情報6の構成の一例を示した図である。
【図5】実施の形態1で用いるテナント別設計情報(スキーマ)23の構成の一例を示した図である。
【図6】アクセス電文の一例を示した図である。
【図7】実施の形態2におけるシステム構成図である。
【図8】実施の形態2における処理の全体の流れを示したフローチャートである。
【図9】実施の形態2で用いるユーザ/テナント対応情報14の構成の一例を示した図である。
【図10】実施の形態3におけるシステム構成図である。
【図11】実施の形態3で用いるテナント/スキーマ対応情報15の構成の一例を示した図である。
【図12】実施の形態4におけるシステム構成図である。
【図13】実施の形態4で用いるデータベース接続情報6の構成の一例を示した図である。
【図14】実施の形態4で用いるDSN/テナントID対応情報8の構成の一例を示した図である。
【図15】各実施の形態で用いたアプリケーションサーバ10、情報制御装置20、データベースサーバ30、端末装置200のハードウェア資源の一例を示す図である。
【発明を実施するための形態】
【0017】
実施の形態1.
最初に、本実施の形態以降、各実施の形態の中で用いる用語について、説明する。
「テナント」とは、マルチアプリケーションシステムで該当のアプリケーションを利用する利用組織のことを示す。なお利用組織とは、1つの企業(団体)、1つの部門、または一人の利用者を表わし、利用組織の中には1人以上の利用者が含まれる。
【0018】
「テナントID」とは、アプリケーションの利用組織(テナント)を示すIDであるが、システムのログイン時に入力されるユーザID/パスワードとは異なり、別途、設定されるIDである。テナントIDは、テナント毎に異なるIDが付与されるため、各実施の形態において、アクセス可能なデータベーススキーマを判別する固有情報と言える。テナントIDとユーザIDは、1対1の対応で設定してもよいが、2人以上の利用者が含まれる場合には1つのテナントIDに対して、複数のユーザIDを対応付けるように設定される。
【0019】
「データベース接続情報」とは、データベースに接続するために必要な情報で、「データソース」とも呼ばれるものである。データソース名(DSN)、ユーザID/パスワード(データベースに接続するためのユーザIDとパスワード)、スキーマ名、データベースインスタンス名(データの実体の名称)、ポート番号(データベースサーバのアドレス)などが設定される。
【0020】
「スキーマ」(データベーススキーマ)とは、データベースのテーブル構造を定義する情報(以下、「テーブル構造定義情報」、とも言う。)で、項目のデータ型、データサイズ、キーの設定情報、他のテーブルとの関連付け等が定義されている情報である。言い換えると、実データが記憶されているデータベースをどのように設定するかを定義されている情報である。スキーマ名とは、そのテーブル構造を定義したファイルの名称である。
【0021】
「SQL」とは、リレーショナルデータベース管理システム(RDBMS)で、データに対する操作や定義を行うためのデータベース言語で、命令文(アクセス電文)によりデータをアクセスする。例えば、SELECT文は、データの取得(照会)をするためのSQL命令で、CREATE文は、テーブルを作成するためのSQL命令である。
【0022】
「セッション情報」とは、Webアプリケーションへの接続時に、ログインユーザ毎に発生する固有情報で、端末装置からアプリケーションに接続している間は同じセッション情報で接続され、ログインユーザ名が識別できる情報である。本実施の形態では、セッション情報を用いて同一利用者からのアプリケーションへの接続要求とデータベースアクセス要求とを識別するが、セッション情報以外で同一利用者からの要求を判別できる情報があれば、その情報を用いても良い。
【0023】
本実施の形態は、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付け、テナントIDをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントIDを付加することを特徴とする。また本実施の形態は、テナント毎に対応するアプリケーションがアプリケーションサーバに存在し、アプリーションサーバのハードウェア環境と、データベースサーバのデータベースインスタンス(データの実体)とは複数テナントで共有する形態であるとする。
【0024】
図1は、本実施の形態におけるシステム構成図である。マルチテナントシステム100にはアプリケーションサーバ10と、情報制御装置20と、データベースサーバ30を備え、それぞれの装置は、ネットワーク300を介して端末装置200と接続されている。端末装置200は、ネットワーク300を介して、マルチテナントシステム100に対してアプリケーションの使用を要求する端末であり、複数台存在させることが可能である。
端末装置200(200a、200b・・・)は、ネットワーク300を介してアプリケーションサーバ10とデータのやりとりを行う通信手段31、データの処理を行う処理手段32、入力されたデータを受け付ける入力手段33、表示装置に表示するためのデータを構成する表示手段34を備える。
【0025】
アプリケーションサーバ10は、ネットワーク300を介して端末装置200または、情報制御装置20とデータのやりとりを行う通信手段1、データの処理を行う処理手段2、端末装置200から送信されたテナントIDおよびユーザIDを記憶装置を用いて保持するテナントID保持手段3を備える。テナントID保持手段3は、ユーザIDをセッション情報として保持する。
【0026】
さらにアプリケーションサーバ10は、アプリケーション基本機能情報4、アプリケーション固有機能情報5、データベース接続情報6、認証情報7を備える。アプリケーション基本機能情報4は、マルチテナントアプリケーションの基本的な情報を記憶していて、アプリケーション固有機能情報5は、アプリケーションに関してテナント毎に異なる特有な情報を記憶している。アプリケーション固有機能情報5には、テナント毎に異なるアプリケーションのアドレス(URL(Uniform Resource Locator))を含み、端末装置200からURLを指定してアプリケーションの所在場所に接続することにより、アプリケーションサーバ10側では特定のアプリケーションへの接続要求を判別することができる。またアプリケーション固有機能情報5には、DSN(データソース名)も含み、DSNとデータベース接続情報6に記憶されたDSNとを対応付けることにより、該当するデータベース接続情報6と紐付けられる。
【0027】
個々のアプリケーションは、アプリケーション固有機能情報5に記憶されたテナント毎の特有な情報と、アプリケーション基本機能情報4に記憶された基本情報とに基づき起動される。
【0028】
データベース接続情報6の構成は、図4に例示したとおりである。データベース接続情報6は、DSN(データソース名)、組織ID、パスワード、スキーマ名、DBインスタンス名、ポート番号が記憶されている。データベース接続情報6は、データベースをアクセスする利用者側からは、DNS情報しか見えない構成になっているが、DNS情報以外は、データベースに接続するときに必要な情報である。データベース接続情報6aは、「スキーマ名 AA」が正しく設定されている場合、データベース接続情報6bは、本来「スキーマ名 AA」ではないのに、「スキーマ名 AA」と「スキーマ名 AA」に対応する組織IDおよびパスワードが誤って設定されている場合を示している。なおデータベース接続情報6の設定誤りとは、システム管理者の入力間違い等により発生する。
【0029】
アプリケーション基本機能情報4、アプリケーション固有機能情報5およびデータベース接続情報6は、テナント毎に1対で備えられているものであり、対応するテナント数に応じて複数のアプリケーション基本機能情報4、アプリケーション固有機能情報5およびデータベース接続情報6の組み合わせが記憶される。
【0030】
認証情報7は、マルチテナントシステム100へのログインを認証するために、利用者のユーザIDと、パスワードとの対応付けを記憶している情報である。
【0031】
情報制御装置20は、アプリケーションサーバ10からデータベースサーバ30に格納されているデータベースへのアクセス要求としてデータソース情報と、テナントIDとが送信されると、受信したデータソース情報でデータベースサーバ30に存在する該当のデータベースに接続し、その後データベースにアクセスする通信手段11と、特定の処理を行う処理手段12と、データベースサーバ30に存在するデータベースのデータへのアクセス時には、テナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加して、アクセスするテナントID付加手段を備える。
【0032】
データベースサーバ30は、情報制御装置20からデータソース情報と、テナントIDとを含むアクセス要求を受信し、その応答情報を送信する通信手段21と、データベースに関する処理を行う処理手段22と、テナント別設計情報(スキーマ)23と、データベース24とを備える。
【0033】
図5は、テナント別設計情報23の一例を示したものであり、データベース24に記憶されたテーブルに対して、どのような項目として定義するかを設定するものである。データベース24は、実データがテーブル名とともに記憶されていて、テーブル名により、テナント別設計情報23とデータベース24とが紐付けられる。このテナント別設定情報23により、マルチテナント方式において、データベースを共有しつつ、テナント毎の管理、不正利用防止が実現できる。例えば、図5において、スキーマAAは、データベース24のテーブルA01に対して、データNo.を示す「No.」、顧客名を示す「name」、顧客情報に関連する「data1」、「data2」を図示していないが、データ型、データサイズ、キーの設定情報等とともに、定義されているとする。またスキーマBBは、データベース24のテーブルA01に対して、「No.」、「name」、「data1」、「data2」とともに、さらに「data3」、「data4」を定義している。このように項目情報をスキーマ毎に定義することにより、同一データベースを用いた場合でも、テナント毎に利用する項目を変更することが可能となる。
【0034】
図2は、本実施の形態における処理の流れを示すフローチャートである。処理を開始し、端末装置200の入力手段33が、利用者の該当テナントに対応するアプリケーションのURLの入力を利用者から受け付けた後、通信手段31は、通信手段1を介してテナント固有のアプリケーションのURLに接続する(このとき、テナントIDに対応するアプリケーションのそれぞれのURLが予め利用者に通知されているものとする)。表示手段34は、端末装置200の表示装置に対して入力画面を表示し、入力手段33は、入力装置を用いて、利用者からのテナントID、ユーザID、パスワードの入力を受け付ける。その後、処理手段32は受け付けた入力データを判別し、通信手段31は、アプリケーションサーバ10に対して、テナントID、ユーザ名、パスワードおよびログイン要求を送信する(ステップS1)。
【0035】
図3は、端末装置200の表示装置に表示する入力画面例である。図3に示した例では、URLの指定によりテナント固有のアプリケーションに接続後、テナントIDに「AA」、ユーザID「User1」、パスワード「Password1」と入力している。
【0036】
アプリケーションサーバ10では、通信手段1が端末装置200の通信手段31から送信された情報を受信し、処理手段2が認証情報7を参照して、受信したユーザのログイン名とパスワードとが認証情報7に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をOKと判別する。OKと判別した後、受信したログイン名、パスワードおよびテナントIDを、テナントID保持手段3に受け渡し、テナントID保持手段3はセッション情報とともに、テナントIDを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する(ステップS2)。
【0037】
端末装置200は、アプリケーションに関するリクエストをアプリケーションサーバ10に送信する(ステップS3)。アプリケーションに関するリクエストとは、データベースへのアクセス(データの閲覧、更新、削除、追加)要求が明示的に指定される場合もあるが、暗黙的に入手したい情報が指定され、アプリケーションサーバ10の処理手段にてデータベースへのアクセス情報(データベースアクセス情報)に変換する場合も考えられる。
【0038】
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ10の処理手段2は、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後本実施の形態ではアプリケーション固有機能情報5を参照することにより定められる、DSNに対応するデータベース接続情報6が1レコード(1情報)のみ記憶されているので、データベース接続情報6を参照し、DSNを特定する(ステップS4)。なおデータベースアクセス情報とは、少なくともデータベースアクセスの種別、対象、範囲を含む。
【0039】
処理手段2は、特定されたDSNに紐づいているデータベース接続情報と、さらにテナントID保持手段3により保持されているテナントIDとセッション情報とをデータベース接続情報に付加して、通信手段1は処理手段2が構成した情報(データベース接続情報、テナントID、セッション情報)を情報制御装置20に送信する(ステップS5)。
【0040】
情報制御装置20の通信手段11は、アプリケーションサーバ10の通信手段1からデータベースへの接続要求として、データベース接続情報とテナントIDとセッション情報とを受信し、処理手段12は通信手段11が受信したデータベース接続情報に基づき、通信手段11を介して、データベースへの接続要求をデータベースサーバ30の通信手段21に送信する。また処理手段12は受信したテナントIDとセッション情報とを記憶装置に記憶する(ステップS6)。
【0041】
通信手段21は、受信したデータベース接続情報を処理手段22に受け渡し、処理手段22はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段21からデータベース接続可の情報、また接続不可の場合は、通信手段21からデータベース接続不可の情報が返信される(ステップS7)。
【0042】
通信手段11は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段1に送信する。通信手段1は、データベース接続不可の情報を受信したときは、その情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置にデータベース接続不可の情報を表示する(ステップS8)。データベース接続不可の原因は、ネットワーク300でのエラー、DSNの設定間違いなどが考えられるので、さらにアプリケーションサーバ10においてシステム管理者(運用者)に対して、原因の候補を提示したり、対策案を提示するように構成してもよい。
【0043】
データベース接続可となった後、アプリケーションサーバ10の処理手段2は、通信手段1を介して、ステップS4で一時的に記憶したデータベースアクセス情報を、ステップS2で記憶したテナントID、セッション情報とともに情報制御装置20の通信手段11に送信する(ステップS9)。
【0044】
通信手段11は受信したテナントIDおよびセッション情報がステップS6で記憶装置に記憶したテナントIDおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントID付加手段13は受信したデータベースアクセス情報をアクセス電文に変換して、このアクセス電文にテナントIDをスキーマ名として付加して、処理手段12は通信手段11を介して、アクセス電文をデータベースサーバ30に送信する(ステップS10)。なおアクセス電文への変換処理は、SQL等のデータベース管理システムを用いて行われる。ステップS10で受信したテナントIDおよびセッション情報がステップS6で記憶したテナントIDおよびセッション情報に含まれない(マルチテナントシステム100において、一時的に記憶するテナントIDおよびセッション情報の組み合わせは複数存在する場合がある)ときは、ネットワーク300でエラーが発生していると判断し、通信手段11から通信手段1にセッションエラー情報を応答情報として送信する。その後通信手段1は、通信手段31にセッションエラー情報を応答情報として送信する。
【0045】
データベースサーバ30の通信手段21は、アクセス電文を受信し、処理手段22はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段21は、アクセス結果を応答情報として、情報制御装置の通信手段11に送信する。
一方、処理手段22はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段21はそのアクセス不許可の結果を応答情報として情報制御装置の通信手段11に送信する(ステップS11)。
【0046】
通信手段11は、受信した応答情報またはアクセス不許可情報を、通信手段1に送信し、通信手段1は、受信した応答情報またはアクセス不許可情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置に結果(応答情報またはアクセス不許可情報)を表示する(ステップS12)。処理を終了する。
【0047】
なおステップS6で作成するデータベースへの接続要求は、ポート番号とデータベースインスタンス名の組み合わせにより作成されるデータベースのアドレスと、データベースに接続するための組織IDとパスワードを含むものである。データベースのアドレスは、例えばURLで表わされる。
【0048】
またステップS6でのテナントIDとセッション情報の受信、記憶装置への記憶、およびステップS10での受信したテナントIDおよびセッション情報がステップS6で記憶装置に記憶したテナントIDおよびセッション情報と同一であることの確認は、省略してもよい。つまりステップS6では、データベース接続情報のみを受信するように構成し、ステップS10では何らかの確認なしに、アクセス電文にテナントIDをスキーマ名として付加して、データベースサーバ30に送信するように構成することができる。
またステップS10で作成するアクセス電文の一例は、図6のとおりである。アクセス電文とは、データベースをアクセス(データの閲覧、更新、削除、追加等)するための電文で、SQLのSELECT文(閲覧)の場合は、「SELECT(命令)、対象、取得情報」といった、構成になる。対象を示すスキーマ名に、テナントIDをスキーマ名とみなしテナントIDを付加することで、対象を限定することができる。
具体的には、「select no.,name From AA.Table where・・・」といった記載になり、スキーマAAから「no.」と「name」の項目を選択させる命令になる。
【0049】
データベース接続情報6の組織ID/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。本実施の形態では、データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置20にて、スキーマ名にテナントIDを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【0050】
例えば、アプリケーションサーバ10のデータベース接続情報6が誤って図4の6bのように設定されていたとき、図2に示したステップS6の処理で「スキーマ名 AA」へのアクセス許可がない利用者に対して、「スキーマ名 AA」の接続を許可してしまうことになる。しかしステップS10の処理で、アクセス電文に端末装置200に入力されたテナントIDをスキーマ名として付加してアクセス電文を構成することで、「スキーマ名 AA」へのアクセス許可がない利用者に対して、データベースのアクセスを許可しない。このように動作することにより、マルチテナントシステムとして必須条件であるテナント毎の機密管理、データの機密性を担保することができる。
【0051】
また本実施の形態は、利用者から入力されたテナントIDをデータベースアクセス時に用いて、データベースへのアクセス制御の妥当性を確認する方法なので、何らかのデータ同士の照合作業が不要となり、そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすいという特徴がある。
【0052】
本実施の形態の情報制御装置20は、アプリケーションが格納されているアプリケーションサーバ10、データベースが格納されているデータベースサーバ30とネットワーク接続された情報制御装置20であって、通信手段11はアプリケーションサーバ10に格納されているアプリケーション(アプリケーション基本機能情報4とアプリケーション固有機能情報5とにより構成)からデータベースサーバ30に格納されているデータベース24への接続要求としてデータソース(データベース接続情報6)を受信する(図2のステップS5、S6)。さらに通信手段11はアプリケーションが該当のデータベース24に接続された後、アプリケーションサーバ10から該当のデータベース24へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する(図2のステップS9、S10)。アプリケーション基本機能情報4とアプリケーション固有機能情報5およびデータベース接続情報6は、一対で構成される。
【0053】
また処理手段12は、通信手段11がアプリケーションサーバ10からデータベース24への接続要求としてデータソース(データベース接続情報6)を受信したとき、通信手段11を介して、データソース(データベース接続情報6)を用いてデータベース24への接続要求をデータベースサーバ30へ要求する。
【0054】
さらにアプリケーション固有情報付加手段(テナントID付加手段)13は、通信手段11がアプリケーションサーバ10からデータベース24へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、この固有情報をデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加する。
【0055】
また処理手段12は、通信手段11を介して、アプリケーション固有情報付加手段(テナントID付加手段)13が構成した固有情報を含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスする。
【0056】
また本実施の形態において、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段11は、データベースへのアクセス要求をアプリケーションサーバ10から受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、このテナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加する。さらに、処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したテナントIDを含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0057】
実施の形態2.
実施の形態1では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付け、テナントIDをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントIDを付加するように、動作した。本実施の形態では、ログイン時、テナントIDの入力を受け付けず、情報制御装置20にてユーザ名とテナント情報との対応付けを行うことを特徴とする。
【0058】
図7は、本実施の形態でのシステム構成図である。実施の形態1で用いた図1と構成が異なるのは、アプリケーションサーバ10にユーザID保持手段8を含み、情報制御装置20にユーザ/テナント対応情報14を含む点である。アプリケーションサーバ10のユーザID保持手段8は、入力されたユーザIDを保持する。情報制御装置20の処理手段12は、ユーザ/テナント対応情報14を参照することにより、ユーザ名と対応するテナントIDを特定する。
【0059】
図8は、本実施の形態における処理の流れを示すフローチャートである。また図9は、ユーザ/テナント対応情報14の構成の一例を示した図である。図9に示したとおり、ユーザ/テナント対応情報14は、ユーザIDと、テナントIDとが対応付けられ、登録されている。ユーザIDとテナントIDとは、一対の場合もあるし、1つのテナントIDに複数のユーザIDが対応付けられている場合もある。これは、マルチテナントシステムのテナントがアプリケーションのユーザをどのように設定するかにより定められる。
【0060】
図8の処理の流れについて、説明する。処理を開始し、端末装置200の表示手段34は、表示装置に対して入力画面を表示し、入力手段33は、入力装置を用いて利用者からのユーザ名、パスワードの入力を受け付ける。その後、処理手段32は受け付けた入力データを判別し、通信手段31は、アプリケーションサーバ10に対して、ユーザ名、パスワードおよびログイン要求を送信する(ステップS21)。
【0061】
実施の形態1で用いた図3の入力画面例では、テナントID、ユーザ名、パスワードの3つの入力欄があったが、本実施の形態の入力画面では、ユーザ名、パスワードのみ入力を受けつける。
【0062】
アプリケーションサーバ10では、通信手段1が端末装置200の通信手段31から送信された情報を受信し、処理手段2が認証情報7を参照して、受信したユーザのログイン名とパスワードとが認証情報7に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をOKと判別する。OKと判別した後、受信したログイン名を、ユーザID保持手段8に受け渡し、ユーザID保持手段8はセッション情報ととに、ユーザIDを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する(ステップS22)。
【0063】
端末装置200は、アプリケーションに関するリクエストをアプリケーションサーバ10に送信する(ステップS23)。
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ10の処理手段2は、リクエスト情報を一時的に記憶装置に記憶し、その後本実施の形態では(実施の形態1と同様)アプリケーション固有機能情報5を参照することにより定められる、DSNに対応するデータベース接続情報6が1レコード(1情報)のみ記憶されているデータベース接続情報6を参照し、DSNを特定する(ステップS24)。処理手段2は、特定されたDSNに紐づいているデータベース接続情報と、さらにユーザID保持手段8により保持されているユーザIDをデータベース接続情報に付加して、通信手段1は処理手段2が構成した情報(データベース接続情報と、ユーザID)を情報制御装置20に送信する(ステップS25)。
【0064】
情報制御装置20の通信手段11は、アプリケーションサーバ10の通信手段1よりデータベース接続情報とユーザIDとを受信し、処理手段12は通信手段11が受信したデータベース接続情報に基づき、通信手段11を介して、データベースへの接続要求をデータベースサーバ30の通信手段21に送信する。また処理手段12は受信したユーザIDとセッション情報とを記憶装置に記憶する(ステップS26)。
【0065】
データベースサーバ30の通信手段21は、受信したデータベース接続情報を処理手段22に受け渡し、処理手段22はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段21からデータベース接続可の情報、また接続不可の場合は、通信手段21からデータベース接続不可の情報が返信される(ステップS27)。
【0066】
通信手段11は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段1に送信する。通信手段1は、データベース接続不可の情報を受信したときは、データベース接続不可の情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置にデータベース接続不可の情報を表示する(ステップS28)。また実施の形態1で用いた、図2のステップS8で説明したように、データベース接続不可の原因候補や対策候補をシステム管理者に提示してもよい。
【0067】
データベース接続可となった後、アプリケーションサーバ10の処理手段2は、通信手段1を介して、ステップS24で一時的に記憶したデータベースアクセス情報を、ステップS22で記憶したセッション情報、ユーザIDとともに情報制御装置20の通信手段11に送信する(ステップS29)。
【0068】
通信手段11は受信したテナントIDおよびセッション情報がステップS26で記憶装置に記憶したテナントIDおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントID付加手段13はユーザ/テナント対応情報14を参照し、通信手段11から受け渡されたユーザIDに対応するテナントIDを検索する。その後テナントID付加手段13は、アクセス電文にテナントIDをスキーマ名として付加して、処理手段12は通信手段11を介して、データベースサーバ30に送信する(ステップS30)。エラー時の処理は、図2に示したフローチャートと同様に処理される。
【0069】
データベースサーバ30の通信手段21は、アクセス電文を受信し、処理手段22はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段21は、アクセス結果を応答情報として、情報制御装置の通信手段11に送信する。
一方、処理手段22はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段21はその結果を応答情報として情報制御装置の通信手段11に送信する(ステップS31)。
【0070】
通信手段11は、受信した応答情報またはアクセス不許可情報を、通信手段1に送信し、通信手段1は、受信した応答情報またはアクセス不許可情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置に結果(応答情報またはアクセス不許可情報)を表示する(ステップS32)。処理を終了する。
【0071】
本実施の形態の方法によると、利用者から入力されたユーザIDを用いて、データベースへのアクセス制御の妥当性を確認するので、何らかのデータ同士の照合作業が不要となる。そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすい。また情報制御装置20により、ユーザIDとテナントIDとの対応付けが予め記憶されているため、利用者はテナントIDを入力する必要がなく、ユーザIDの入力によりユーザIDに割り当てられたアプリケーションを利用することができる。
【0072】
本実施の形態において固有情報は、利用者がログイン時に指定するユーザIDであり、通信手段11は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報(ユーザ/テナント対応情報14)に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加する。さらに処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したテナントIDを含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0073】
実施の形態3.
本実施の形態では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付けるが、実施の形態1とは異なり、テナントIDと、スキーマ名は、異なることを特徴とする。
【0074】
図10は、本実施の形態でのシステム構成図である。実施の形態1で用いた図1と比較すると、情報制御装置20にテナント/スキーマ対応情報15を含み、テナントID付加手段13がテナント/スキーマ対応情報15を参照し、テナントIDと対応するスキーマ名を検索し、データベースアクセス時のスキーマ名を特定する。
【0075】
図11は、テナント/スキーマ対応情報15の構成を示す図である。図11に示すように、テナントIDとスキーマ名とが一対で定められ記憶されている。
本実施の形態の処理の流れを実施の形態1で用いた図2にて、説明する。
ステップS1〜S9までは、図2で説明したとおりの処理を行うが、ステップS10にてデータベースにアクセスするため、テナントID付加手段13はテナント/スキーマ対応情報15を参照し、通信手段11から受け渡されたテナントIDに対応するスキーマ名を検索する。その後テナントID付加手段13は、アクセス電文に特定されたスキーマ名を付加して、処理手段12は通信手段11を介して、データベースサーバ30に送信する(ステップS10)。その後のステップS11〜S12は、図2で説明したとおりである。
【0076】
このように本実施の形態の方法によると、情報制御装置20にてテナントIDとスキーマ名の対応付けを任意に設定することができるため、情報制御装置20での設計がしやすくなる効果が得られる。
【0077】
本実施の形態において、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段11は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報(テナント/スキーマ対応情報)15に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加する。さらに処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したスキーマ名を含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0078】
実施の形態4.
実施の形態1〜3では、アプリーションサーバのハードウェア環境とデータベースサーバのデータベースインスタンスとをテナント間で共有し、アプリケーション自体はテナント毎に存在するマルチテナントシステムについて説明した。本実施の形態は、1つのアプリケーションを複数のテナントで共有する形態である。つまり、アプリーションサーバのハードウェア環境、データベースサーバのデータベース、およびアプリーションサーバ上のアプリケーションを複数テナントで共有する。
【0079】
図12は、本実施の形態におけるシステム構成図である。実施の形態1で用いた図1と比較すると、アプリケーションサーバ10にDSN/テナントID対応情報8を含み、処理手段2は、DSN/テナントID対応情報8を参照することにより、入力されたテナントIDに対応するDSNを特定する。
【0080】
図13は、本実施の形態におけるデータベース接続情報6の構成である。データベース接続情報6の構成そのものは、実施の形態1において図4で説明したとおりであるが、本実施の形態では、1つのアプリケーションを複数のテナントで共有する構成のため、複数のDSNが記憶されている。
【0081】
本実施の形態の処理の流れを実施の形態1で用いた図2にて、説明する。ステップS1〜S3までは、図2で説明したとおりの処理を行うが、ステップS4でアプリケーションサーバ10の処理手段2は、アプリケーションに関するリクエストを受け付けると、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後、処理手段2はステップS2で記憶装置に記憶されたテナントIDとDSN/テナントID対応情報8とを参照し、取り出したテナントIDに対応するDSNを特定する。
続いて処理手段2は、データベース接続情報6を参照し、入力されたテナントIDに対応するDSNを決定する。ステップS5以降の処理は、図2で説明したとおりである。
【0082】
このように本実施の形態のようなアプリケーション共有方式のマルチテナントシステムにおいても、データベース接続情報6の組織ID/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置20にて、スキーマ名にテナントIDを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【0083】
図14は、各実施の形態で用いたアプリケーションサーバ10、情報制御装置20、データベースサーバ30、端末装置200のハードウェア資源の一例を示す図である。
図14において、コンピュータは、システムユニット(図示せず)、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、LANに接続されている。
【0084】
各コンピュータは、プログラムを実行するCPU911(「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう)を備えている。CPU911は、図1で示した各処理部(〜手段)でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される処理装置である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、スキャナ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
【0085】
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、それぞれのコンピュータが用いる記憶装置(記憶部)929の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905、スキャナ906などは、入力装置(図示せず)の一例である。また、通信ボード915、表示装置901などは、出力装置(図示せず)の一例である。
【0086】
通信ボード915は、ネットワーク400に接続されている。ネットワーク400は、LANに限らず、インターネット、あるいは、WANなどで構成されていても構わない。
記憶装置(磁気ディスク装置)920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、各実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(IDentifier)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0087】
また、各実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914などのメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク(MD)、DVD(Digital・Versatile・Disc)などの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
【0088】
また、各実施の形態の説明において「〜手段」として説明するものは、「〜部」、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜手段」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、各実施の形態の説明で述べる「〜手段」としてコンピュータを機能させるものである。あるいは、各実施の形態の説明で述べる「〜手段」の手順や方法をコンピュータに実行させるものである。
【符号の説明】
【0089】
1,11,21,31 通信手段、2,12,22,32 処理手段、3 テナントID保持手段、4 アプリケーション基本機能情報、5 アプリケーション固有機能情報、6 データベース接続情報、7 認証情報、10 アプリケーションサーバ、13 テナントID付加手段、14 ユーザ/テナント対応情報、15 テナント/スキーマ対応情報、20 情報制御装置、23 テナント別設計情報(スキーマ)、24 データベース、30 データベースサーバ、33 入力手段、34 表示手段、100 マルチテナントシステム、200 端末装置、300 ネットワーク。
【技術分野】
【0001】
この発明は、マルチテナント方式のシステムにおいて、ユーザが希望するアプリケーションを利用するとき、データの機密性を保護する情報制御装置に関するものである。
【背景技術】
【0002】
マルチテナント(複数テナント)方式のシステム(以下、単に「マルチテナント方式」、とも言う)とは、システム(アプリケーションサーバ、データベースサーバを含む)のリソースを複数のテナント(利用者)が共有利用可能とするシステムのことを言う。「複数のテナント」とは複数の利用者、つまり複数の企業やひとつの企業内の複数部門等を示す。マルチテナント方式では、アプリケーションサーバ上のハードウェア環境(CPU,メモリ,ディスク,データベース)を共有するが、アプリケーションそのものもテナント間で共有することができる。一方シングルテナント方式とは、ひとつのテナントがハードウェアリソースを占有する方式のシステムのことを言い、テナントの増加により管理コストが増大する。一般的にマルチテナント方式はシングルテナント方式と比較して、リソース削減によりコストを抑えられ、ユーザは低価格で高品質のサービスを受けることができる利点がある。
【0003】
このような利点があるマルチテナント方式だが、テナントに対して仮想的に分離された環境でサービスを提供しつつ、他テナントの操作に影響されず、テナント毎のデータやカスタマイズ内容を保護するように、構築することが必須条件となる。
【0004】
特許文献1(特表2009−518713号公報)では、不正なアクセスを防御するために、マルチテナントシステム内のファイアフォールサーバでテナントからの要求のユーザ情報および組織情報(情報1)を記憶し、情報1とアプリケーションサーバからの応答に含まれるユーザ情報および組織情報(情報2)との照合により、その応答が適切なテナントに送信されているかどうかを検証している。
【0005】
また特許文献2(特開2004−310256号公報)では、セッション情報内にユーザ情報が存在する場合、APサーバはデータベースにアクセスしてそのユーザのアクセス管理情報を取得する。その後、アクセス管理情報を照合することで、ユーザ要求に必要なデータが、ユーザが使用可能なスキーマかどうかを判定することで、不正アクセスを防御しようとしている。
【0006】
このように特許文献1および特許文献2に開示された、不正アクセス防御方法では、2つの情報の照合により正当性を確認する方法のため、照合のためのデータ管理と、照合処理のためのハードウェア設置が必要となる。
【0007】
特に特許文献1については、次のような問題点がある。
(1)フールプルーフではない。
システムの運用者が、他のテナントのデータを閲覧できるデータベースIDをデータベースシステムへ設定する等、誤った操作をすると、他のテナントのデータが閲覧できてしまい、その点に対する安全対策が施されていない。そのため、他のテナントの機密情報が危険に晒されてしまう。
(2)(1)の問題点解決のため、テナントからの要求が適正なユーザシステムに送信されているかどうかをシステム側で立証する必要がある点。
(3)ネットワークを介して機密保護のための処理を行っており、処理時間を要する。
ネットワークを介して、クライアント側で格納された組織ID情報を応答の中の類似情報(態様としてはクッキーがあると考える)と比較することによって、アプリケーションサーバからの応答が実際に適正なユーザシステムに送信されているかどうかを立証している。ネットワークを介して比較する方法のため、比較に要する時間がかかる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2009−518713号公報
【特許文献2】特開2004−310256号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
この発明は、マルチテナント方式においてシステム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することを課題とする。
【課題を解決するための手段】
【0010】
この発明に係る情報制御装置は、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0011】
またこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段は、テナントIDをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントIDを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントIDを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0012】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するユーザIDであり、通信手段は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、アプリケーション固有情報付加手段は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDをデータベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名としてテナントIDを付加し、処理手段は、アプリケーション固有情報付加手段が構成したテナントIDを含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0013】
さらにこの発明に係る情報制御装置は、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、処理手段は、上記アプリケーション固有情報付加手段が構成したスキーマ名を含むアクセス電文にて、データベースサーバのデータベースにアクセスすることを特徴とする。
【0014】
この発明に係るコンピュータプログラムは、コンピュータを、アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、アプリケーションサーバに格納されているアプリケーションからデータベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、通信手段がアプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、通信手段を介して、データソースを用いてデータベースへの接続要求をデータベースサーバへ要求する処理手段と、通信手段がアプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、固有情報をデータベースサーバに格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文にテーブル構造定義情報名として固有情報を付加するアプリケーション固有情報付加手段とを備え、処理手段は、通信手段を介して、アプリケーション固有情報付加手段が構成した固有情報を含むアクセス電文にて、データベースサーバのデータベースにアクセスする情報制御装置として機能させることを特徴とする。
【発明の効果】
【0015】
この発明の情報制御装置によると、システム運用者が誤った設定操作をしても、それぞれのテナントの機密情報を安全に管理することができる。
【図面の簡単な説明】
【0016】
【図1】実施の形態1におけるシステム構成図である。
【図2】実施の形態1における処理の全体の流れを示したフローチャートである。
【図3】端末装置200の表示装置に表示するログイン画面例である。
【図4】実施の形態1で用いるデータベース接続情報6の構成の一例を示した図である。
【図5】実施の形態1で用いるテナント別設計情報(スキーマ)23の構成の一例を示した図である。
【図6】アクセス電文の一例を示した図である。
【図7】実施の形態2におけるシステム構成図である。
【図8】実施の形態2における処理の全体の流れを示したフローチャートである。
【図9】実施の形態2で用いるユーザ/テナント対応情報14の構成の一例を示した図である。
【図10】実施の形態3におけるシステム構成図である。
【図11】実施の形態3で用いるテナント/スキーマ対応情報15の構成の一例を示した図である。
【図12】実施の形態4におけるシステム構成図である。
【図13】実施の形態4で用いるデータベース接続情報6の構成の一例を示した図である。
【図14】実施の形態4で用いるDSN/テナントID対応情報8の構成の一例を示した図である。
【図15】各実施の形態で用いたアプリケーションサーバ10、情報制御装置20、データベースサーバ30、端末装置200のハードウェア資源の一例を示す図である。
【発明を実施するための形態】
【0017】
実施の形態1.
最初に、本実施の形態以降、各実施の形態の中で用いる用語について、説明する。
「テナント」とは、マルチアプリケーションシステムで該当のアプリケーションを利用する利用組織のことを示す。なお利用組織とは、1つの企業(団体)、1つの部門、または一人の利用者を表わし、利用組織の中には1人以上の利用者が含まれる。
【0018】
「テナントID」とは、アプリケーションの利用組織(テナント)を示すIDであるが、システムのログイン時に入力されるユーザID/パスワードとは異なり、別途、設定されるIDである。テナントIDは、テナント毎に異なるIDが付与されるため、各実施の形態において、アクセス可能なデータベーススキーマを判別する固有情報と言える。テナントIDとユーザIDは、1対1の対応で設定してもよいが、2人以上の利用者が含まれる場合には1つのテナントIDに対して、複数のユーザIDを対応付けるように設定される。
【0019】
「データベース接続情報」とは、データベースに接続するために必要な情報で、「データソース」とも呼ばれるものである。データソース名(DSN)、ユーザID/パスワード(データベースに接続するためのユーザIDとパスワード)、スキーマ名、データベースインスタンス名(データの実体の名称)、ポート番号(データベースサーバのアドレス)などが設定される。
【0020】
「スキーマ」(データベーススキーマ)とは、データベースのテーブル構造を定義する情報(以下、「テーブル構造定義情報」、とも言う。)で、項目のデータ型、データサイズ、キーの設定情報、他のテーブルとの関連付け等が定義されている情報である。言い換えると、実データが記憶されているデータベースをどのように設定するかを定義されている情報である。スキーマ名とは、そのテーブル構造を定義したファイルの名称である。
【0021】
「SQL」とは、リレーショナルデータベース管理システム(RDBMS)で、データに対する操作や定義を行うためのデータベース言語で、命令文(アクセス電文)によりデータをアクセスする。例えば、SELECT文は、データの取得(照会)をするためのSQL命令で、CREATE文は、テーブルを作成するためのSQL命令である。
【0022】
「セッション情報」とは、Webアプリケーションへの接続時に、ログインユーザ毎に発生する固有情報で、端末装置からアプリケーションに接続している間は同じセッション情報で接続され、ログインユーザ名が識別できる情報である。本実施の形態では、セッション情報を用いて同一利用者からのアプリケーションへの接続要求とデータベースアクセス要求とを識別するが、セッション情報以外で同一利用者からの要求を判別できる情報があれば、その情報を用いても良い。
【0023】
本実施の形態は、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付け、テナントIDをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントIDを付加することを特徴とする。また本実施の形態は、テナント毎に対応するアプリケーションがアプリケーションサーバに存在し、アプリーションサーバのハードウェア環境と、データベースサーバのデータベースインスタンス(データの実体)とは複数テナントで共有する形態であるとする。
【0024】
図1は、本実施の形態におけるシステム構成図である。マルチテナントシステム100にはアプリケーションサーバ10と、情報制御装置20と、データベースサーバ30を備え、それぞれの装置は、ネットワーク300を介して端末装置200と接続されている。端末装置200は、ネットワーク300を介して、マルチテナントシステム100に対してアプリケーションの使用を要求する端末であり、複数台存在させることが可能である。
端末装置200(200a、200b・・・)は、ネットワーク300を介してアプリケーションサーバ10とデータのやりとりを行う通信手段31、データの処理を行う処理手段32、入力されたデータを受け付ける入力手段33、表示装置に表示するためのデータを構成する表示手段34を備える。
【0025】
アプリケーションサーバ10は、ネットワーク300を介して端末装置200または、情報制御装置20とデータのやりとりを行う通信手段1、データの処理を行う処理手段2、端末装置200から送信されたテナントIDおよびユーザIDを記憶装置を用いて保持するテナントID保持手段3を備える。テナントID保持手段3は、ユーザIDをセッション情報として保持する。
【0026】
さらにアプリケーションサーバ10は、アプリケーション基本機能情報4、アプリケーション固有機能情報5、データベース接続情報6、認証情報7を備える。アプリケーション基本機能情報4は、マルチテナントアプリケーションの基本的な情報を記憶していて、アプリケーション固有機能情報5は、アプリケーションに関してテナント毎に異なる特有な情報を記憶している。アプリケーション固有機能情報5には、テナント毎に異なるアプリケーションのアドレス(URL(Uniform Resource Locator))を含み、端末装置200からURLを指定してアプリケーションの所在場所に接続することにより、アプリケーションサーバ10側では特定のアプリケーションへの接続要求を判別することができる。またアプリケーション固有機能情報5には、DSN(データソース名)も含み、DSNとデータベース接続情報6に記憶されたDSNとを対応付けることにより、該当するデータベース接続情報6と紐付けられる。
【0027】
個々のアプリケーションは、アプリケーション固有機能情報5に記憶されたテナント毎の特有な情報と、アプリケーション基本機能情報4に記憶された基本情報とに基づき起動される。
【0028】
データベース接続情報6の構成は、図4に例示したとおりである。データベース接続情報6は、DSN(データソース名)、組織ID、パスワード、スキーマ名、DBインスタンス名、ポート番号が記憶されている。データベース接続情報6は、データベースをアクセスする利用者側からは、DNS情報しか見えない構成になっているが、DNS情報以外は、データベースに接続するときに必要な情報である。データベース接続情報6aは、「スキーマ名 AA」が正しく設定されている場合、データベース接続情報6bは、本来「スキーマ名 AA」ではないのに、「スキーマ名 AA」と「スキーマ名 AA」に対応する組織IDおよびパスワードが誤って設定されている場合を示している。なおデータベース接続情報6の設定誤りとは、システム管理者の入力間違い等により発生する。
【0029】
アプリケーション基本機能情報4、アプリケーション固有機能情報5およびデータベース接続情報6は、テナント毎に1対で備えられているものであり、対応するテナント数に応じて複数のアプリケーション基本機能情報4、アプリケーション固有機能情報5およびデータベース接続情報6の組み合わせが記憶される。
【0030】
認証情報7は、マルチテナントシステム100へのログインを認証するために、利用者のユーザIDと、パスワードとの対応付けを記憶している情報である。
【0031】
情報制御装置20は、アプリケーションサーバ10からデータベースサーバ30に格納されているデータベースへのアクセス要求としてデータソース情報と、テナントIDとが送信されると、受信したデータソース情報でデータベースサーバ30に存在する該当のデータベースに接続し、その後データベースにアクセスする通信手段11と、特定の処理を行う処理手段12と、データベースサーバ30に存在するデータベースのデータへのアクセス時には、テナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加して、アクセスするテナントID付加手段を備える。
【0032】
データベースサーバ30は、情報制御装置20からデータソース情報と、テナントIDとを含むアクセス要求を受信し、その応答情報を送信する通信手段21と、データベースに関する処理を行う処理手段22と、テナント別設計情報(スキーマ)23と、データベース24とを備える。
【0033】
図5は、テナント別設計情報23の一例を示したものであり、データベース24に記憶されたテーブルに対して、どのような項目として定義するかを設定するものである。データベース24は、実データがテーブル名とともに記憶されていて、テーブル名により、テナント別設計情報23とデータベース24とが紐付けられる。このテナント別設定情報23により、マルチテナント方式において、データベースを共有しつつ、テナント毎の管理、不正利用防止が実現できる。例えば、図5において、スキーマAAは、データベース24のテーブルA01に対して、データNo.を示す「No.」、顧客名を示す「name」、顧客情報に関連する「data1」、「data2」を図示していないが、データ型、データサイズ、キーの設定情報等とともに、定義されているとする。またスキーマBBは、データベース24のテーブルA01に対して、「No.」、「name」、「data1」、「data2」とともに、さらに「data3」、「data4」を定義している。このように項目情報をスキーマ毎に定義することにより、同一データベースを用いた場合でも、テナント毎に利用する項目を変更することが可能となる。
【0034】
図2は、本実施の形態における処理の流れを示すフローチャートである。処理を開始し、端末装置200の入力手段33が、利用者の該当テナントに対応するアプリケーションのURLの入力を利用者から受け付けた後、通信手段31は、通信手段1を介してテナント固有のアプリケーションのURLに接続する(このとき、テナントIDに対応するアプリケーションのそれぞれのURLが予め利用者に通知されているものとする)。表示手段34は、端末装置200の表示装置に対して入力画面を表示し、入力手段33は、入力装置を用いて、利用者からのテナントID、ユーザID、パスワードの入力を受け付ける。その後、処理手段32は受け付けた入力データを判別し、通信手段31は、アプリケーションサーバ10に対して、テナントID、ユーザ名、パスワードおよびログイン要求を送信する(ステップS1)。
【0035】
図3は、端末装置200の表示装置に表示する入力画面例である。図3に示した例では、URLの指定によりテナント固有のアプリケーションに接続後、テナントIDに「AA」、ユーザID「User1」、パスワード「Password1」と入力している。
【0036】
アプリケーションサーバ10では、通信手段1が端末装置200の通信手段31から送信された情報を受信し、処理手段2が認証情報7を参照して、受信したユーザのログイン名とパスワードとが認証情報7に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をOKと判別する。OKと判別した後、受信したログイン名、パスワードおよびテナントIDを、テナントID保持手段3に受け渡し、テナントID保持手段3はセッション情報とともに、テナントIDを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する(ステップS2)。
【0037】
端末装置200は、アプリケーションに関するリクエストをアプリケーションサーバ10に送信する(ステップS3)。アプリケーションに関するリクエストとは、データベースへのアクセス(データの閲覧、更新、削除、追加)要求が明示的に指定される場合もあるが、暗黙的に入手したい情報が指定され、アプリケーションサーバ10の処理手段にてデータベースへのアクセス情報(データベースアクセス情報)に変換する場合も考えられる。
【0038】
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ10の処理手段2は、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後本実施の形態ではアプリケーション固有機能情報5を参照することにより定められる、DSNに対応するデータベース接続情報6が1レコード(1情報)のみ記憶されているので、データベース接続情報6を参照し、DSNを特定する(ステップS4)。なおデータベースアクセス情報とは、少なくともデータベースアクセスの種別、対象、範囲を含む。
【0039】
処理手段2は、特定されたDSNに紐づいているデータベース接続情報と、さらにテナントID保持手段3により保持されているテナントIDとセッション情報とをデータベース接続情報に付加して、通信手段1は処理手段2が構成した情報(データベース接続情報、テナントID、セッション情報)を情報制御装置20に送信する(ステップS5)。
【0040】
情報制御装置20の通信手段11は、アプリケーションサーバ10の通信手段1からデータベースへの接続要求として、データベース接続情報とテナントIDとセッション情報とを受信し、処理手段12は通信手段11が受信したデータベース接続情報に基づき、通信手段11を介して、データベースへの接続要求をデータベースサーバ30の通信手段21に送信する。また処理手段12は受信したテナントIDとセッション情報とを記憶装置に記憶する(ステップS6)。
【0041】
通信手段21は、受信したデータベース接続情報を処理手段22に受け渡し、処理手段22はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段21からデータベース接続可の情報、また接続不可の場合は、通信手段21からデータベース接続不可の情報が返信される(ステップS7)。
【0042】
通信手段11は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段1に送信する。通信手段1は、データベース接続不可の情報を受信したときは、その情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置にデータベース接続不可の情報を表示する(ステップS8)。データベース接続不可の原因は、ネットワーク300でのエラー、DSNの設定間違いなどが考えられるので、さらにアプリケーションサーバ10においてシステム管理者(運用者)に対して、原因の候補を提示したり、対策案を提示するように構成してもよい。
【0043】
データベース接続可となった後、アプリケーションサーバ10の処理手段2は、通信手段1を介して、ステップS4で一時的に記憶したデータベースアクセス情報を、ステップS2で記憶したテナントID、セッション情報とともに情報制御装置20の通信手段11に送信する(ステップS9)。
【0044】
通信手段11は受信したテナントIDおよびセッション情報がステップS6で記憶装置に記憶したテナントIDおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントID付加手段13は受信したデータベースアクセス情報をアクセス電文に変換して、このアクセス電文にテナントIDをスキーマ名として付加して、処理手段12は通信手段11を介して、アクセス電文をデータベースサーバ30に送信する(ステップS10)。なおアクセス電文への変換処理は、SQL等のデータベース管理システムを用いて行われる。ステップS10で受信したテナントIDおよびセッション情報がステップS6で記憶したテナントIDおよびセッション情報に含まれない(マルチテナントシステム100において、一時的に記憶するテナントIDおよびセッション情報の組み合わせは複数存在する場合がある)ときは、ネットワーク300でエラーが発生していると判断し、通信手段11から通信手段1にセッションエラー情報を応答情報として送信する。その後通信手段1は、通信手段31にセッションエラー情報を応答情報として送信する。
【0045】
データベースサーバ30の通信手段21は、アクセス電文を受信し、処理手段22はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段21は、アクセス結果を応答情報として、情報制御装置の通信手段11に送信する。
一方、処理手段22はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段21はそのアクセス不許可の結果を応答情報として情報制御装置の通信手段11に送信する(ステップS11)。
【0046】
通信手段11は、受信した応答情報またはアクセス不許可情報を、通信手段1に送信し、通信手段1は、受信した応答情報またはアクセス不許可情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置に結果(応答情報またはアクセス不許可情報)を表示する(ステップS12)。処理を終了する。
【0047】
なおステップS6で作成するデータベースへの接続要求は、ポート番号とデータベースインスタンス名の組み合わせにより作成されるデータベースのアドレスと、データベースに接続するための組織IDとパスワードを含むものである。データベースのアドレスは、例えばURLで表わされる。
【0048】
またステップS6でのテナントIDとセッション情報の受信、記憶装置への記憶、およびステップS10での受信したテナントIDおよびセッション情報がステップS6で記憶装置に記憶したテナントIDおよびセッション情報と同一であることの確認は、省略してもよい。つまりステップS6では、データベース接続情報のみを受信するように構成し、ステップS10では何らかの確認なしに、アクセス電文にテナントIDをスキーマ名として付加して、データベースサーバ30に送信するように構成することができる。
またステップS10で作成するアクセス電文の一例は、図6のとおりである。アクセス電文とは、データベースをアクセス(データの閲覧、更新、削除、追加等)するための電文で、SQLのSELECT文(閲覧)の場合は、「SELECT(命令)、対象、取得情報」といった、構成になる。対象を示すスキーマ名に、テナントIDをスキーマ名とみなしテナントIDを付加することで、対象を限定することができる。
具体的には、「select no.,name From AA.Table where・・・」といった記載になり、スキーマAAから「no.」と「name」の項目を選択させる命令になる。
【0049】
データベース接続情報6の組織ID/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。本実施の形態では、データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置20にて、スキーマ名にテナントIDを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【0050】
例えば、アプリケーションサーバ10のデータベース接続情報6が誤って図4の6bのように設定されていたとき、図2に示したステップS6の処理で「スキーマ名 AA」へのアクセス許可がない利用者に対して、「スキーマ名 AA」の接続を許可してしまうことになる。しかしステップS10の処理で、アクセス電文に端末装置200に入力されたテナントIDをスキーマ名として付加してアクセス電文を構成することで、「スキーマ名 AA」へのアクセス許可がない利用者に対して、データベースのアクセスを許可しない。このように動作することにより、マルチテナントシステムとして必須条件であるテナント毎の機密管理、データの機密性を担保することができる。
【0051】
また本実施の形態は、利用者から入力されたテナントIDをデータベースアクセス時に用いて、データベースへのアクセス制御の妥当性を確認する方法なので、何らかのデータ同士の照合作業が不要となり、そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすいという特徴がある。
【0052】
本実施の形態の情報制御装置20は、アプリケーションが格納されているアプリケーションサーバ10、データベースが格納されているデータベースサーバ30とネットワーク接続された情報制御装置20であって、通信手段11はアプリケーションサーバ10に格納されているアプリケーション(アプリケーション基本機能情報4とアプリケーション固有機能情報5とにより構成)からデータベースサーバ30に格納されているデータベース24への接続要求としてデータソース(データベース接続情報6)を受信する(図2のステップS5、S6)。さらに通信手段11はアプリケーションが該当のデータベース24に接続された後、アプリケーションサーバ10から該当のデータベース24へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する(図2のステップS9、S10)。アプリケーション基本機能情報4とアプリケーション固有機能情報5およびデータベース接続情報6は、一対で構成される。
【0053】
また処理手段12は、通信手段11がアプリケーションサーバ10からデータベース24への接続要求としてデータソース(データベース接続情報6)を受信したとき、通信手段11を介して、データソース(データベース接続情報6)を用いてデータベース24への接続要求をデータベースサーバ30へ要求する。
【0054】
さらにアプリケーション固有情報付加手段(テナントID付加手段)13は、通信手段11がアプリケーションサーバ10からデータベース24へのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、この固有情報をデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加する。
【0055】
また処理手段12は、通信手段11を介して、アプリケーション固有情報付加手段(テナントID付加手段)13が構成した固有情報を含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスする。
【0056】
また本実施の形態において、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段11は、データベースへのアクセス要求をアプリケーションサーバ10から受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、このテナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加する。さらに、処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したテナントIDを含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0057】
実施の形態2.
実施の形態1では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付け、テナントIDをスキーマ名とみなして、データベースへのアクセス電文にスキーマ名としてテナントIDを付加するように、動作した。本実施の形態では、ログイン時、テナントIDの入力を受け付けず、情報制御装置20にてユーザ名とテナント情報との対応付けを行うことを特徴とする。
【0058】
図7は、本実施の形態でのシステム構成図である。実施の形態1で用いた図1と構成が異なるのは、アプリケーションサーバ10にユーザID保持手段8を含み、情報制御装置20にユーザ/テナント対応情報14を含む点である。アプリケーションサーバ10のユーザID保持手段8は、入力されたユーザIDを保持する。情報制御装置20の処理手段12は、ユーザ/テナント対応情報14を参照することにより、ユーザ名と対応するテナントIDを特定する。
【0059】
図8は、本実施の形態における処理の流れを示すフローチャートである。また図9は、ユーザ/テナント対応情報14の構成の一例を示した図である。図9に示したとおり、ユーザ/テナント対応情報14は、ユーザIDと、テナントIDとが対応付けられ、登録されている。ユーザIDとテナントIDとは、一対の場合もあるし、1つのテナントIDに複数のユーザIDが対応付けられている場合もある。これは、マルチテナントシステムのテナントがアプリケーションのユーザをどのように設定するかにより定められる。
【0060】
図8の処理の流れについて、説明する。処理を開始し、端末装置200の表示手段34は、表示装置に対して入力画面を表示し、入力手段33は、入力装置を用いて利用者からのユーザ名、パスワードの入力を受け付ける。その後、処理手段32は受け付けた入力データを判別し、通信手段31は、アプリケーションサーバ10に対して、ユーザ名、パスワードおよびログイン要求を送信する(ステップS21)。
【0061】
実施の形態1で用いた図3の入力画面例では、テナントID、ユーザ名、パスワードの3つの入力欄があったが、本実施の形態の入力画面では、ユーザ名、パスワードのみ入力を受けつける。
【0062】
アプリケーションサーバ10では、通信手段1が端末装置200の通信手段31から送信された情報を受信し、処理手段2が認証情報7を参照して、受信したユーザのログイン名とパスワードとが認証情報7に登録されているかどうかを確認し、登録されていればユーザ名およびパスワードの妥当性をOKと判別する。OKと判別した後、受信したログイン名を、ユーザID保持手段8に受け渡し、ユーザID保持手段8はセッション情報ととに、ユーザIDを記憶装置に記憶する。さらに、端末装置に対して、リクエスト送信可能であることを返信する(ステップS22)。
【0063】
端末装置200は、アプリケーションに関するリクエストをアプリケーションサーバ10に送信する(ステップS23)。
アプリケーションに関するリクエストを受け付けると、アプリケーションサーバ10の処理手段2は、リクエスト情報を一時的に記憶装置に記憶し、その後本実施の形態では(実施の形態1と同様)アプリケーション固有機能情報5を参照することにより定められる、DSNに対応するデータベース接続情報6が1レコード(1情報)のみ記憶されているデータベース接続情報6を参照し、DSNを特定する(ステップS24)。処理手段2は、特定されたDSNに紐づいているデータベース接続情報と、さらにユーザID保持手段8により保持されているユーザIDをデータベース接続情報に付加して、通信手段1は処理手段2が構成した情報(データベース接続情報と、ユーザID)を情報制御装置20に送信する(ステップS25)。
【0064】
情報制御装置20の通信手段11は、アプリケーションサーバ10の通信手段1よりデータベース接続情報とユーザIDとを受信し、処理手段12は通信手段11が受信したデータベース接続情報に基づき、通信手段11を介して、データベースへの接続要求をデータベースサーバ30の通信手段21に送信する。また処理手段12は受信したユーザIDとセッション情報とを記憶装置に記憶する(ステップS26)。
【0065】
データベースサーバ30の通信手段21は、受信したデータベース接続情報を処理手段22に受け渡し、処理手段22はデータベース接続要求によりデータベースへの接続を行う。接続可になった場合は、通信手段21からデータベース接続可の情報、また接続不可の場合は、通信手段21からデータベース接続不可の情報が返信される(ステップS27)。
【0066】
通信手段11は、受信したデータベース接続可の情報またはデータベース接続不可の情報を、通信手段1に送信する。通信手段1は、データベース接続不可の情報を受信したときは、データベース接続不可の情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置にデータベース接続不可の情報を表示する(ステップS28)。また実施の形態1で用いた、図2のステップS8で説明したように、データベース接続不可の原因候補や対策候補をシステム管理者に提示してもよい。
【0067】
データベース接続可となった後、アプリケーションサーバ10の処理手段2は、通信手段1を介して、ステップS24で一時的に記憶したデータベースアクセス情報を、ステップS22で記憶したセッション情報、ユーザIDとともに情報制御装置20の通信手段11に送信する(ステップS29)。
【0068】
通信手段11は受信したテナントIDおよびセッション情報がステップS26で記憶装置に記憶したテナントIDおよびセッション情報と同一であることを確認した後、データベースにアクセスするため、テナントID付加手段13はユーザ/テナント対応情報14を参照し、通信手段11から受け渡されたユーザIDに対応するテナントIDを検索する。その後テナントID付加手段13は、アクセス電文にテナントIDをスキーマ名として付加して、処理手段12は通信手段11を介して、データベースサーバ30に送信する(ステップS30)。エラー時の処理は、図2に示したフローチャートと同様に処理される。
【0069】
データベースサーバ30の通信手段21は、アクセス電文を受信し、処理手段22はアクセス電文に基づき、データベースへのアクセスを許可する。通信手段21は、アクセス結果を応答情報として、情報制御装置の通信手段11に送信する。
一方、処理手段22はデータベースへのアクセスを行い、一致するスキーマ名が存在しないことが判明したときは、アクセスを不許可とし、通信手段21はその結果を応答情報として情報制御装置の通信手段11に送信する(ステップS31)。
【0070】
通信手段11は、受信した応答情報またはアクセス不許可情報を、通信手段1に送信し、通信手段1は、受信した応答情報またはアクセス不許可情報を端末装置200の通信手段31に送信し、端末装置200では通信手段31が受信した情報に基づき、表示手段34が表示装置に結果(応答情報またはアクセス不許可情報)を表示する(ステップS32)。処理を終了する。
【0071】
本実施の形態の方法によると、利用者から入力されたユーザIDを用いて、データベースへのアクセス制御の妥当性を確認するので、何らかのデータ同士の照合作業が不要となる。そのためマスターデータ等の保管・メンテナンスが不要になるので、設計、保守、拡張がしやすい。また情報制御装置20により、ユーザIDとテナントIDとの対応付けが予め記憶されているため、利用者はテナントIDを入力する必要がなく、ユーザIDの入力によりユーザIDに割り当てられたアプリケーションを利用することができる。
【0072】
本実施の形態において固有情報は、利用者がログイン時に指定するユーザIDであり、通信手段11は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報(ユーザ/テナント対応情報14)に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDをデータベースサーバ30に格納されているテーブル構造定義情報名とみなし、アクセス電文にテーブル構造定義情報名としてテナントIDを付加する。さらに処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したテナントIDを含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0073】
実施の形態3.
本実施の形態では、マルチテナントシステムへのログイン時、ログイン情報の入力とともに、テナントIDの入力を受け付けるが、実施の形態1とは異なり、テナントIDと、スキーマ名は、異なることを特徴とする。
【0074】
図10は、本実施の形態でのシステム構成図である。実施の形態1で用いた図1と比較すると、情報制御装置20にテナント/スキーマ対応情報15を含み、テナントID付加手段13がテナント/スキーマ対応情報15を参照し、テナントIDと対応するスキーマ名を検索し、データベースアクセス時のスキーマ名を特定する。
【0075】
図11は、テナント/スキーマ対応情報15の構成を示す図である。図11に示すように、テナントIDとスキーマ名とが一対で定められ記憶されている。
本実施の形態の処理の流れを実施の形態1で用いた図2にて、説明する。
ステップS1〜S9までは、図2で説明したとおりの処理を行うが、ステップS10にてデータベースにアクセスするため、テナントID付加手段13はテナント/スキーマ対応情報15を参照し、通信手段11から受け渡されたテナントIDに対応するスキーマ名を検索する。その後テナントID付加手段13は、アクセス電文に特定されたスキーマ名を付加して、処理手段12は通信手段11を介して、データベースサーバ30に送信する(ステップS10)。その後のステップS11〜S12は、図2で説明したとおりである。
【0076】
このように本実施の形態の方法によると、情報制御装置20にてテナントIDとスキーマ名の対応付けを任意に設定することができるため、情報制御装置20での設計がしやすくなる効果が得られる。
【0077】
本実施の形態において、固有情報は、利用者がログイン時に指定するテナントIDであり、通信手段11は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、アプリケーション固有情報付加手段(テナントID付加手段)13は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報(テナント/スキーマ対応情報)15に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加する。さらに処理手段12は、アプリケーション固有情報付加手段(テナントID付加手段)13が構成したスキーマ名を含むアクセス電文にて、データベースサーバ30のデータベース24にアクセスすることを特徴とする。
【0078】
実施の形態4.
実施の形態1〜3では、アプリーションサーバのハードウェア環境とデータベースサーバのデータベースインスタンスとをテナント間で共有し、アプリケーション自体はテナント毎に存在するマルチテナントシステムについて説明した。本実施の形態は、1つのアプリケーションを複数のテナントで共有する形態である。つまり、アプリーションサーバのハードウェア環境、データベースサーバのデータベース、およびアプリーションサーバ上のアプリケーションを複数テナントで共有する。
【0079】
図12は、本実施の形態におけるシステム構成図である。実施の形態1で用いた図1と比較すると、アプリケーションサーバ10にDSN/テナントID対応情報8を含み、処理手段2は、DSN/テナントID対応情報8を参照することにより、入力されたテナントIDに対応するDSNを特定する。
【0080】
図13は、本実施の形態におけるデータベース接続情報6の構成である。データベース接続情報6の構成そのものは、実施の形態1において図4で説明したとおりであるが、本実施の形態では、1つのアプリケーションを複数のテナントで共有する構成のため、複数のDSNが記憶されている。
【0081】
本実施の形態の処理の流れを実施の形態1で用いた図2にて、説明する。ステップS1〜S3までは、図2で説明したとおりの処理を行うが、ステップS4でアプリケーションサーバ10の処理手段2は、アプリケーションに関するリクエストを受け付けると、リクエスト情報をデータベースアクセス情報に変換して、一時的に記憶装置に記憶する。その後、処理手段2はステップS2で記憶装置に記憶されたテナントIDとDSN/テナントID対応情報8とを参照し、取り出したテナントIDに対応するDSNを特定する。
続いて処理手段2は、データベース接続情報6を参照し、入力されたテナントIDに対応するDSNを決定する。ステップS5以降の処理は、図2で説明したとおりである。
【0082】
このように本実施の形態のようなアプリケーション共有方式のマルチテナントシステムにおいても、データベース接続情報6の組織ID/パスワードまたは、スキーマ名が誤って設定されることにより、本来許可すべきではない利用者に対して、誤ってデータベースへの接続を許可してしまう場合がある。データベースへの接続を本来の利用者ではない他テナントの利用者に誤って許可した場合でも、データベースのアクセス時には情報制御装置20にて、スキーマ名にテナントIDを設定させることで、データのアクセス時点でアクセスを不許可にすることができ、他テナントからのアクセスを制御することができる。
【0083】
図14は、各実施の形態で用いたアプリケーションサーバ10、情報制御装置20、データベースサーバ30、端末装置200のハードウェア資源の一例を示す図である。
図14において、コンピュータは、システムユニット(図示せず)、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、LANに接続されている。
【0084】
各コンピュータは、プログラムを実行するCPU911(「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう)を備えている。CPU911は、図1で示した各処理部(〜手段)でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される処理装置である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、スキャナ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
【0085】
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、それぞれのコンピュータが用いる記憶装置(記憶部)929の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905、スキャナ906などは、入力装置(図示せず)の一例である。また、通信ボード915、表示装置901などは、出力装置(図示せず)の一例である。
【0086】
通信ボード915は、ネットワーク400に接続されている。ネットワーク400は、LANに限らず、インターネット、あるいは、WANなどで構成されていても構わない。
記憶装置(磁気ディスク装置)920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、各実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(IDentifier)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0087】
また、各実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914などのメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク(MD)、DVD(Digital・Versatile・Disc)などの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
【0088】
また、各実施の形態の説明において「〜手段」として説明するものは、「〜部」、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜手段」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、各実施の形態の説明で述べる「〜手段」としてコンピュータを機能させるものである。あるいは、各実施の形態の説明で述べる「〜手段」の手順や方法をコンピュータに実行させるものである。
【符号の説明】
【0089】
1,11,21,31 通信手段、2,12,22,32 処理手段、3 テナントID保持手段、4 アプリケーション基本機能情報、5 アプリケーション固有機能情報、6 データベース接続情報、7 認証情報、10 アプリケーションサーバ、13 テナントID付加手段、14 ユーザ/テナント対応情報、15 テナント/スキーマ対応情報、20 情報制御装置、23 テナント別設計情報(スキーマ)、24 データベース、30 データベースサーバ、33 入力手段、34 表示手段、100 マルチテナントシステム、200 端末装置、300 ネットワーク。
【特許請求の範囲】
【請求項1】
アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、
上記アプリケーションサーバに格納されているアプリケーションから上記データベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、上記アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、
上記通信手段が上記アプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、上記通信手段を介して、上記データソースを用いてデータベースへの接続要求を上記データベースサーバへ要求する処理手段と、
上記通信手段が上記アプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、上記固有情報を上記データベースサーバに格納されているテーブル構造定義情報名とみなし、上記データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加するアプリケーション固有情報付加手段とを備え、
上記処理手段は、上記通信手段を介して、上記アプリケーション固有情報付加手段が構成した上記固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを
特徴とする情報制御装置。
【請求項2】
上記固有情報は、利用者がログイン時に指定するテナントIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、
上記アプリケーション固有情報付加手段は、上記テナントIDを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントIDを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントIDを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項3】
上記固有情報は、利用者がログイン時に指定するユーザIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、
上記アプリケーション固有情報付加手段は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントIDを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントIDを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項4】
上記固有情報は、利用者がログイン時に指定するテナントIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、
上記アプリケーション固有情報付加手段は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記スキーマ名を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項5】
コンピュータを、請求項1〜4のいずれか一項に記載の情報制御装置として機能させるコンピュータプログラム。
【請求項1】
アプリケーションが格納されているアプリケーションサーバ、データベースが格納されているデータベースサーバとネットワーク接続された情報制御装置であって、
上記アプリケーションサーバに格納されているアプリケーションから上記データベースサーバに格納されているデータベースへの接続要求としてデータソースを受信し、上記アプリケーションが該当のデータベースに接続された後上記アプリケーションサーバから該当のデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信する通信手段と、
上記通信手段が上記アプリケーションサーバからデータベースへの接続要求としてデータソースを受信したとき、上記通信手段を介して、上記データソースを用いてデータベースへの接続要求を上記データベースサーバへ要求する処理手段と、
上記通信手段が上記アプリケーションサーバからデータベースへのアクセス要求としてデータベースアクセス情報と利用者のログイン時に指定される固有情報とを受信したとき、上記固有情報を上記データベースサーバに格納されているテーブル構造定義情報名とみなし、上記データベースアクセス情報をアクセス電文に変換して、このアクセス電文に上記テーブル構造定義情報名として上記固有情報を付加するアプリケーション固有情報付加手段とを備え、
上記処理手段は、上記通信手段を介して、上記アプリケーション固有情報付加手段が構成した上記固有情報を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを
特徴とする情報制御装置。
【請求項2】
上記固有情報は、利用者がログイン時に指定するテナントIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、
上記アプリケーション固有情報付加手段は、上記テナントIDを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントIDを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントIDを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項3】
上記固有情報は、利用者がログイン時に指定するユーザIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、ユーザIDを受信し、
上記アプリケーション固有情報付加手段は、ユーザIDを受信したときは、ユーザIDとテナントIDとの対応付けを記憶している情報に基づき、ユーザIDに対応するテナントIDを検索し、このテナントIDを上記データベースサーバに格納されているテーブル構造定義情報名とみなし、アクセス電文に上記テーブル構造定義情報名として上記テナントIDを付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記テナントIDを含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項4】
上記固有情報は、利用者がログイン時に指定するテナントIDであり、
上記通信手段は、データベースへのアクセス要求を受信するとき、テナントIDを受信し、
上記アプリケーション固有情報付加手段は、テナントIDを受信したときは、テナントIDとスキーマ名との対応付けを記憶している情報に基づき、テナントIDに対応するスキーマ名を検索し、このスキーマ名をアクセス電文に付加し、
上記処理手段は、上記アプリケーション固有情報付加手段が構成した上記スキーマ名を含むアクセス電文にて、上記データベースサーバのデータベースにアクセスすることを特徴とする請求項1に記載の情報制御装置。
【請求項5】
コンピュータを、請求項1〜4のいずれか一項に記載の情報制御装置として機能させるコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−133645(P2012−133645A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−286154(P2010−286154)
【出願日】平成22年12月22日(2010.12.22)
【出願人】(394013002)三菱電機インフォメーションシステムズ株式会社 (251)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成22年12月22日(2010.12.22)
【出願人】(394013002)三菱電機インフォメーションシステムズ株式会社 (251)
【Fターム(参考)】
[ Back to top ]