(57)【要約】【課題】クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、メモリ使用量やディスク使用量を削減することを課題とする。【解決手段】データベースシステムは、クエリ制御装置とＸＭＬデータベースとから構成されており、ネットワークを介して利用者装置などの他の端末装置に接続されている。このような構成において、利用者装置からＸＭＬデータベースに対してクエリ要求が送信されると、クエリ制御装置は、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢに記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出して、抽出したクエリ要求のみをＸＭＬデータベースに転送する。【選択図】        図１
2008165432.tif 000002
【特許請求の範囲】
【請求項１】
各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することをコンピュータに実行させるクエリ制御プログラムであって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手順と、
前記クエリ判定抽出手順により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手順と、
をコンピュータに実行させることを特徴とするクエリ制御プログラム。
【請求項２】
前記クエリ判定抽出手順は、前記クエリ要求とともに前記識別子を受信した場合に、前記クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得して、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出することを特徴とする請求項１に記載のクエリ制御プログラム。
【請求項３】
前記利用者情報と、前記ＸＭＬデータの各ノードを示す制御対象ノードと、前記制御対象ノードに対する処理内容を示す制御処理内容と、前記制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、前記アクセス制御ポリシーに基づいて、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、前記アクセス制御記憶手段に格納するアクセス制御生成手順を、さらにコンピュータに実行させることを特徴とする請求項１または２に記載のクエリ制御プログラム。
【請求項４】
前記アクセス制御記憶手段は、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶することを特徴とする請求項１〜３のいずれか一つに記載のクエリ制御プログラム。
【請求項５】
各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送するクエリ制御装置であって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手段と、
前記クエリ判定抽出手段により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手段と、
を備えたことを特徴とするクエリ制御装置。
【請求項６】
各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することに適するクエリ制御方法であって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出工程と、
前記クエリ判定抽出工程により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送工程と、
を含んだことを特徴とするクエリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、利用者装置から送信されたクエリ要求を転送することをコンピュータに実行させるクエリ制御プログラム、クエリ制御装置およびクエリ制御方法に関する。
【背景技術】
【０００２】
従来より、効率よくデータを記憶したり、記憶するデータを効率よく検索および更新することを目的として、ＲＤＢ（リレーショナルデータベース：Relational  Database）など様々なデータベースが提案されている。
【０００３】
そして、最近では、細粒度のアクセス制御が求められており、従来から注目されていたＲＤＢに代わり、ＸＭＬ文書（eXtensible  Markup  Language）をそのままの形式（ツリー形式、木構造）で格納することができるＸＭＬデータベースが注目されている。一般に、データベースシステムは、大容量のデータベース（例えば、ＸＭＬデータベース）を保有し、このデータベースに大量のデータを記憶（保持）している。このようなデータベースシステムは、データベースに記憶されるデータを利用する利用者によって、アプリケーションソフトウェアを介し検索条件（例えば、ＸＱｕｅｒｙ、クエリ要求など）が入力され、検索条件に合致したデータを検索結果として利用者に提供する。
【０００４】
そして、ＸＭＬデータベースは、電子商取引やインターネットなどの様々な分野で広く利用されており、大規模なデータを取り扱うことが多い。そこで、このようなＸＭＬデータベースにおいて、ＸＱｕｅｒｙ（クエリ）に対して正確かつ迅速に応答するための様々な技術が提案されている。
【０００５】
ＸＭＬデータベースでは、記憶するＸＭＬデータへのＸＱｕｅｒｙに対して文字列検索技術を応用する手法として、パススキーマを用いてワイルドカード文字を含むパスパターンを具体的なパスへと変換するパスプルートニングが用いられている（非特許文献１）。具体的には、ＸＭＬデータから得られるパススキーマ（パストライ）を用いて、ＸＱｕｅｒｙの質問式（検索要求）に対してパスプルートニングを行い、決定性有限オートマトンを構築する。そして、このオートマトンを用いてＸＭＬデータを処理することで、ＸＱｕｅｒｙに対する検索結果を応答する。
【０００６】
また、従来からある技術として、利用者からクエリ要求を受信したＸＭＬデータベースが、記憶する各ＸＭＬデータに対応する全てのアクセス制御ルールを一時的にメモリなどに読み込んで、当該クエリ要求に対応したアクセス制御ルールを検出し、当該アクセス制御ルールに基づいてクエリ処理を行って、クエリ応答を返信する技術がある。
【０００７】
【非特許文献１】石野  明、竹田  正幸  著、“パスプルートニングによる決定性有限オートマトンを用いたＸＱｕｅｒｙ処理の提案”、日本データベース学会  Ｌｅｔｔｅｒｓ  Ｖｏｌｏ４、Ｎｏ．４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記した従来の技術では、利用者からクエリ要求（ＸＱｕｅｒｙ）を受け取るたびに、膨大なアクセス制御ルールを全て走査する必要があるので、クエリ要求を受けてからクエリ応答を返信するまでのクエリ処理時間が長くなる（高速でない）とともに、膨大なアクセス制御ルールを全て読み込むためのメモリ領域やディスク領域が必要であるという課題があった。
【０００９】
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、ＸＱｕｅｒｙに応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能であるクエリ制御プログラムおよびクエリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することをコンピュータに実行させるクエリ制御プログラムであって、前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手順と、前記クエリ判定抽出手順により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手順と、をコンピュータに実行させることを特徴とする。
【００１１】
また、請求項２に係る発明は、上記の発明において、前記クエリ判定抽出手順は、前記クエリ要求とともに前記識別子を受信した場合に、前記クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得して、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出することを特徴とする。
【００１２】
また、請求項３に係る発明は、上記の発明において、前記利用者情報と、前記ＸＭＬデータの各ノードを示す制御対象ノードと、前記制御対象ノードに対する処理内容を示す制御処理内容と、前記制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、前記アクセス制御ポリシーに基づいて、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、前記アクセス制御記憶手段に格納するアクセス制御生成手順を、さらにコンピュータに実行させることを特徴とする。
【００１３】
また、請求項４に係る発明は、上記の発明において、前記アクセス制御記憶手段は、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶することを特徴とする。
【００１４】
また、請求項５に係る発明は、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送するクエリ制御装置であって、前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手段と、前記クエリ判定抽出手段により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手段と、を備えたことを特徴とする。
【００１５】
また、請求項６に係る発明は、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することに適するクエリ制御方法であって、前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出工程と、前記クエリ判定抽出工程により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送工程と、を含んだことを特徴とする。
【発明の効果】
【００１６】
請求項１、５、６の発明によれば、利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶し、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶し、クエリ要求とともに識別子を受信した場合に、当該識別子に対応する利用者情報を取得し、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかを各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出し、抽出されたクエリ要求のみをＸＭＬデータベースに転送するので、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能である。
【００１７】
例えば、どのようなクエリ要求（ＸＱｕｅｒｙ）を受信した場合でも、パストライを参照することで、クエリ要求に関係するアクセス制御ルールのみに直接アクセスすることができ、また、パストライを全て読み込むための読み込むために少量のメモリやディスクしか必要とせず、データ量の小さいクエリ要求をアクセス制御に基づいて書き換えることでアクセス制御を行うことができる結果、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能である。
【００１８】
また、請求項２の発明によれば、クエリ要求とともに識別子を受信した場合に、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を取得して、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかを各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するので、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、さらに高速に応答することが可能であるとともに、さらに小さいメモリ領域やディスク領域で動作することが可能である。
【００１９】
例えば、ワイルドカードを含むクエリ要求を事前に展開して、アクセスが許可されたクエリ要求のみを抽出するので、ワイルドカードを含むクエリ要求を展開せずに、ＸＭＬデータベースに転送する場合に比べて、より高速に応答することが可能であるとともに、さらに小さいメモリ領域やディスク領域で動作することが可能である。
【００２０】
また、請求項３の発明によれば、利用者情報と、ＸＭＬデータの各ノードを示す制御対象ノードと、制御対象ノードに対する処理内容を示す制御処理内容と、制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、アクセス制御ポリシーに基づいて、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、格納するので、アクセス制御ポリシーが変更されても、自動でパストライを作成することができる結果、利用者（データベース管理者）の負担を軽減することが可能であるとともに、新しいアクセス制御ポリシーに従ったアクセス制御を迅速に行うことが可能である。
【００２１】
例えば、人事異動や組織変更などが発生した場合でも、パストライを手動で修正する必要がなく、アクセスポリシーに記載するだけで自動で新たなパストライを生成することができる結果、利用者（データベース管理者）の負担を軽減することが可能であるとともに、新しいアクセス制御ポリシーに従ったアクセス制御を迅速に行うことが可能である。
【００２２】
また、請求項４の発明によれば、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するので、複数のＸＭＬデータベースを一つの大きなデータバースとして一つのパストライを生成することができる結果、ＸＭＬデータベースの数だけパストライを生成する場合に比べて、メモリ領域やディスク領域などの浪費を防止することが可能である。
【００２３】
例えば、ＸＭＬデータベース１（最上位ノード：ｒｏｏｔ１）、ＸＭＬデータベース２（最上位ノード：ｒｏｏｔ２）、ＸＭＬデータベース３（最上位ノード：ｒｏｏｔ３）である場合、それぞれのパスの起点が異なるため、それぞれのパストライを生成する必要があるが、それぞれの最上位ノードより上位に「ノード：ＲＯＯＴ」を生成することで、全てのデータベースに対して起点がＲＯＯＴとなり、それぞれのデータベース内のノードも同様にＲＯＯＴ起点のパス表記を行うことができる結果、ＸＭＬデータベースの数だけパストライを生成する場合に比べて、メモリ領域やディスク領域などの浪費を防止することが可能である。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明に係るクエリ制御装置の実施例を詳細に説明する。なお、以下の実施例で用いる主要な用語、実施例１に係るクエリ制御装置を含むデータベースシステムの概要および特徴、実施例１に係るクエリ制御装置を含むデータベースシステムの構成および処理の手順、実施例１の効果を順に説明し、続いて、他の実施例について説明する。
【実施例１】
【００２５】
［用語の説明］
まず最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「データベースシステム」とは、「クエリ制御装置」と「ＸＭＬデータベース」とから構成され、他のアプリケーションソフトウェアと連携して動作するシステムであって、アプリケーションソフトウェアにおいて対象とされるデータを記憶するシステムである。一般に、データベースシステムは、大容量のハードディスク（本実施例では、ＸＭＬデータベースに該当する）を保有し、このハードディスクに大量のデータを記憶（保持）している。このようなデータベースシステムは、データベースシステムに記憶されるデータを利用する利用者によって、アプリケーションソフトウェアを介し検索条件（クエリ要求）が入力され、検索条件に合致したデータを検索結果として利用者（利用者装置）に提供する。なお、「データベースシステム」は、特許請求の範囲に記載の「データベースシステム」に対応する。
【００２６】
また、「ＸＭＬデータベース」とは、ＸＭＬデータをそのまま格納できるデータベースのことであり、具体的には、ＸＭＬのツリー構造をそのままデータ構造として扱うことができ、リレーショナルデータベース（ＲＤＢ）とは異なりスキーマ定義を伴わずにデータを格納、利用することができる。そして、ＸＭＬデータベースは、利用者装置などからＸＰａｔｈやＸＱｕｅｒｙなどのクエリ要求を受信すると、クエリ要求に合致したデータを記憶するＸＭＬデータから検索し、検索結果として利用者（利用者装置）に提供する。なお、「ＸＭＬデータベース」は、特許請求の範囲に記載の「ＸＭＬデータベース」に対応する。
【００２７】
また、「クエリ制御装置」とは、ＸＭＬデータベースに対して、利用者装置から送信されたクエリ要求を転送するプログラムを実行する装置である。具体的には、利用者装置からデータベースシステムに送信されたＸＰａｔｈやＸＱｕｅｒｙなどのクエリ要求を受信して、ＸＭＬデータベースシステムに転送する。そして、このクエリ制御装置を介して、ＸＭＬデータベースから当該クエリ要求に対する応答が利用者装置に送信される。なお、本実施例では、クエリ制御装置は、データベースシステムに組み込まれている場合について説明するが、本発明はこれに限定されるものではなく、データベースシステムと接続される他の装置であってもよい。
【００２８】
また、「パストライ」とは、一般的にはパススキーマと呼ばれ、ＸＭＬデータベースに格納されるＸＭＬデータをＤＯＭ（Documents  Object  Model）に変換したときに、そこに出現する全てのパスが、ただ１回だけ出現するように変換したものであり、つまり、ＸＭＬデータの繰り返し構造（厳密に１本ずつ含む木構造）をまとめたものである。
【００２９】
［クエリ制御装置を含むデータベースシステムの概要および特徴］
次に、図１を用いて、実施例１に係るクエリ制御装置を含むデータベースシステムの概要および特徴を説明する。図１は、実施例１に係るクエリ制御装置を含むデータベースシステムの概要と特徴を説明するための図である。
【００３０】
図１に示すように、実施例１に係るデータベースシステムは、クエリ制御装置とＸＭＬデータベースとから構成されており、ネットワークを介して利用者装置などの他の端末装置に接続されている。そして、ＸＭＬデータベースは、「シグマレッド、特許太郎」「シグマブルー、特許次郎」「シグマピンク、特許花子」などのデータをＸＭＬデータとして記憶する。また、利用者装置は、利用者の指示操作により、ＸＰａｔｈやＸＱｕｅｒｙなどのクエリ要求をデータベースシステムに送信する。
【００３１】
このような構成のもと、実施例１に係るクエリ制御装置を含むデータベースシステムは、上記したように、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、利用者装置から送信されたクエリ要求を転送することを概要とするものであり、特に、クエリ要求に応答するのに際して、高速に応答することが可能であるとともに、メモリ使用量やディスク使用量を削減することが可能である点に主たる特徴がある。
【００３２】
この主たる特徴を具体的に説明すると、クエリ制御装置は、利用者装置に割り当てられた識別子に対応付けて、利用者装置に関する利用者情報を利用者情報ＤＢに記憶する。例えば、利用者情報ＤＢは、「０＊＊、一般社員」「１＊＊、幹部社員」（＊：ワイルドカード）などと記憶する。なお、利用者情報ＤＢに記憶される各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができ、例えば、「一般社員」「幹部社員」と区別するだけでなく、「００１、鈴木太郎」などのように個人名で記憶してもよい。
【００３３】
そして、クエリ制御装置は、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けてアクセス制御ＤＢに記憶する。具体的に例を挙げると、アクセス制御ＤＢは、ＸＭＬデータに対応するパストライのノードとして「/root」「/root/Syain」「/root/Syain/ACT/cast」などを記憶し、これらのノードごとにアクセスを許可する「Ｐｅｒｍｉｔ」を記憶する。例えば、「/root、一般社員、幹部社員」、「/root/Syain、一般社員、幹部社員」や「/root/Syain/ACT/cast、幹部社員」などと記憶する（図５参照）。つまり、アクセス制御ＤＢは、パストライにアクセス許可または拒否などを示すアクセス制御情報を付加したデータベースである。
【００３４】
このような状態のもと、利用者装置は、利用者の指示操作により、データベースシステムにクエリ要求と識別番号を送信する（図１の（１）参照）。具体的に例を挙げれば、利用者装置は、利用者の指示操作により、クエリ要求（例えば、ＸＱｕｅｒｙやＸＰａｔｈなど）として、『「For  $n  in  //name」「Return  $n/text」』とＩＤ（０１１）とをデータベースシステムに送信する。
【００３５】
そして、クエリ要求とともに識別子を受信した場合に、データベースシステムのクエリ制御装置は、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を利用者情報ＤＢから取得して、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢに記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出する（図１の（２）参照）。
【００３６】
上記した例で具体的に説明すると、クエリ制御装置は、利用者装置からクエリ要求『「For  $n  in  //name」「Return  $n/text」』と識別番号『ＩＤ（０１１）』とを受信した場合に、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスである「Ｑ１（/root/Syain/ACT/chara/name）」と「Ｑ２（/root/Syain/ACT/cast/name）」とに展開する。そして、クエリ制御装置は、受信したＩＤ（０１１）と利用者情報ＤＢに格納される利用者情報「（０＊＊、一般社員）、（１＊＊、幹部社員）」とからクエリ要求を送信した利用者を「一般社員」と判定する。続いて、クエリ制御装置は、展開した「Ｑ１」と「Ｑ２」とがアクセス可能であるか否かを判定する。この例では、パス（Ｑ１）「/root/Syain/ACT/chara/name」へのＰｅｒｍｉｔ（アクセス可能）な利用者が「一般社員、幹部社員」であり、パス（Ｑ２）「/root/Syain/ACT/cast/name」へのＰｅｒｍｉｔな利用者が「幹部社員」であることより、クエリ制御装置は、アクセスが許可されたクエリ要求として「Ｑ１（/root/Syain/ACT/chara/name）」を抽出する。つまり、展開されたクエリ要求「Ｑ２」は、一般社員がアクセス不可能なパスであったため、ここで破棄される。
【００３７】
そして、クエリ制御装置は、抽出されたクエリ要求のみをＸＭＬデータベースに転送し、ＸＭＬデータベースは、受信したクエリ要求に対するクエリ応答を利用者装置に送信する。（図１の（３）と（４）参照）。上記した例で具体的に説明すると、クエリ制御装置は、抽出されたクエリ要求である「Ｑ１（/root/Syain/ACT/chara/name）」をＸＭＬデータベースに転送する。クエリ要求「Ｑ１（/root/Syain/ACT/chara/name）」を転送されて受信したＸＭＬデータベースは、クエリ要求「Ｑ１（/root/Syain/ACT/chara/name）」に合致したクエリ応答として「シグマレッド、シグマブルー、シグマピンク」を利用者装置に送信する。
【００３８】
このように、実施例１に係るクエリ制御装置は、どのようなクエリ要求（ＸＱｕｅｒｙ）を受信した場合でも、パストライを参照することで、クエリ要求に関係するアクセス制御ルールのみに直接アクセスすることができ、また、パストライを全て読み込むために膨大なメモリやディスクを必要とせず、データ量の小さいクエリ要求をアクセス制御に基づいて書き換えることでアクセス制御を行うことができる結果、上記した主たる特徴のごとく、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能である。
【００３９】
［データベースシステムの構成］
次に、図２を用いて、図１に示したデータベースシステムの構成を説明する。図２は、実施例１に係るクエリ制御装置を含むデータベースシステムの構成を示すブロック図である。
【００４０】
図２に示すように、このデータベースシステム１０は、通信制御Ｉ／Ｆ部１１と、ＸＭＬデータベース１２と、クエリ制御装置１３とから構成される。通信制御Ｉ／Ｆ部１１は、データベースシステム１０に接続される他の装置との間でやり取りする各種情報に関する通信を制御し、具体的に例を挙げると、利用者装置からクエリ要求を受信したり、ＸＭＬデータベース１２により出力されたクエリ応答を利用者装置に送信したりする。
【００４１】
ＸＭＬデータベース１２は、ＸＭＬデータをそのまま格納できるデータベースであり、受信されたクエリ要求に合致したデータを、記憶するＸＭＬデータから検索して検索結果（クエリ応答）として利用者（利用者装置）に送信する。具体的に例を挙げると、ＸＭＬデータベース１２は、図３に示すように、ＸＭＬデータをそのまま格納する。また、ＸＭＬデータベース１２は、受信したクエリ要求「Ｑ２（/root/Syain/ACT/cast/name）」に対応するデータ（図４参照）から取得して、クエリ応答として「シグマレッド、シグマブルー、シグマピンク」を利用者装置に送信する。なお、図３は、ＸＭＬデータベースに記憶される情報の例を示す図である。
【００４２】
クエリ制御装置１３は、利用者装置から送信されたクエリ要求をＸＭＬデータベース１２に転送するものであり、特に本発明に密接に関連するものとしては、記憶部１４と制御部１７とを有する。記憶部１４は、制御部１７による各種処理に必要なデータおよびプログラムを格納し、特に本発明に密接に関連するものとしては、利用者情報ＤＢ１５と、アクセス制御ＤＢ１６とを備える。
【００４３】
利用者情報ＤＢ１５は、利用者装置に割り当てられた識別子に対応付けて、利用者装置に関する利用者情報を記憶する。具体的に例を挙げると、図４に示すように、利用者情報ＤＢ１５は、『利用者装置に割り当てられた識別子を示す「ＩＤ」、利用者装置の利用者名である「利用者名」、利用者が所属するグループを示す「利用者グループ」』として、「００１、鈴木太郎、一般社員」「１０１、田中次郎、幹部社員」などと記憶する。なお、利用者情報ＤＢに記憶される各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、利用者情報ＤＢ１５は、特許請求の範囲に記載の「利用者情報記憶手段」に対応する。また、図４は、利用者情報ＤＢに記憶される情報の例を示す図である。
【００４４】
アクセス制御ＤＢ１６は、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する。具体的に例を挙げれば、アクセス制御ＤＢ１６は、図５に示すように、アクセス制御ＤＢは、ＸＭＬデータに対応するパストライのノードとして「/root」「/root/Syain」「/root/Syain/ACT/cast」などを記憶し、これらのノードごとにアクセスを許可する「Ｐｅｒｍｉｔ」を記憶する。例えば、「/root、一般社員、幹部社員」、「/root/Syain、一般社員、幹部社員」や「/root/Syain/ACT/cast、幹部社員」などと記憶する。つまり、アクセス制御ＤＢ１６は、パストライにアクセス許可または拒否などを示すアクセス制御情報を付加したデータベースである。なお、利用者情報ＤＢに記憶される各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、アクセス制御ＤＢ１６は、特許請求の範囲に記載の「アクセス制御記憶手段」に対応する。また、図５は、アクセス制御ＤＢに記憶される情報の例を示す図である。
【００４５】
制御部１７は、ＯＳ（Operating System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、特に本発明に密接に関連するものとしては、クエリ判定抽出部１８と、クエリ転送部１９とを備え、これらによって種々の処理を実行する。
【００４６】
クエリ判定抽出部１８は、クエリ要求とともに識別子を受信した場合に、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を利用者情報ＤＢ１５から取得して、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢ１６に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出する。
【００４７】
上記した例で具体的に説明すると、クエリ判定抽出部１８は、利用者装置からクエリ要求『「For  $n  in  //name」「Return  $n/text」』と識別番号『ＩＤ（０１１）』とを受信した場合に、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスである「Ｑ１（/root/Syain/ACT/chara/name）」と「Ｑ２（/root/Syain/ACT/cast/name）」とに展開する。そして、クエリ制御装置は、受信したＩＤ（０１１）と利用者情報ＤＢに格納される利用者情報「（０＊＊、一般社員）、（１＊＊、幹部社員）」とからクエリ要求を送信した利用者を「一般社員」と判定する。続いて、クエリ判定抽出部１８は、展開した「Ｑ１」と「Ｑ２」とがアクセス可能であるか否かを判定する。この例では、パス（Ｑ１）「/root/Syain/ACT/chara/name」へのＰｅｒｍｉｔ（アクセス可能）な利用者が「一般社員、幹部社員」であり、パス（Ｑ２）「/root/Syain/ACT/cast/name」へのＰｅｒｍｉｔな利用者が「幹部社員」であることより、クエリ判定抽出部１８は、アクセスが許可されたクエリ要求として「Ｑ２（/root/Syain/ACT/cast/name）」を抽出する。
【００４８】
また、受信したクエリ要求にワイルドカードが含まれない場合、クエリ判定抽出部１８は、当該識別子に対応する利用者情報を利用者情報ＤＢ１５から取得し、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢ１６に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出する。上記した例で具体的に説明すると、クエリ要求をとして「Ｑ２（/root/Syain/ACT/cast/name）」と、識別番号「０１１」とを受信した場合、クエリ判定抽出部１８は、識別番号「０１１」より利用者装置を「一般社員」と判定し、受信した「Ｑ２」とが「一般社員」において、アクセス可能か否かを判定する。この例の場合、クエリ判定抽出部１８は、クエリ要求「Ｑ２」がアクセス可能であることより、「Ｑ２（/root/Syain/ACT/cast/name）」を抽出する。なお、クエリ判定抽出部１８は、特許請求の範囲に記載の「クエリ判定抽出手順」に対応する。
【００４９】
クエリ転送部１９は、クエリ判定抽出部１８により抽出されたクエリ要求のみをＸＭＬデータベース１２に転送する。上記した例で具体的に説明すると、利用者装置からクエリ要求『「For  $n  in  //name」「Return  $n/text」』と識別番号『ＩＤ（０１１）』とを受信した場合に、クエリ転送部１９は、クエリ判定抽出部１８により抽出されたクエリ要求である「Ｑ２（/root/Syain/ACT/cast/name）」のみをＸＭＬデータベース１２に転送する。なお、クエリ転送部１９は、特許請求の範囲に記載の「クエリ転送手順」に対応する。
【００５０】
［データベースシステムによる処理］
次に、図６を用いて、データベースシステムによる処理を説明する。図６は、実施例１に係るデータベースシステムにおけるクエリ応答処理の流れを示すフローチャートである。
【００５１】
図６に示すように、利用者装置からクエリ要求と識別番号（ＩＤ）を受信すると（ステップＳ６０１肯定）、クエリ判定抽出部１８は、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開する（ステップＳ６０２）。具体的に例を挙げれば、クエリ判定抽出部１８は、クエリ要求からワイルドカード文字を含むパスパターンを、具体的なパスとして「Ｑｉ、・・・、Ｑｎ（ｎ＞＝１）」と展開する。
【００５２】
続いて、クエリ判定抽出部１８は、「ｉ」に「１」を代入して（ステップＳ６０３）、「ｉ」が「ｎ」以下か否かを判定する（ステップＳ６０４）。そして、「ｉ」が「ｎ」以下の場合、クエリ判定抽出部１８は、受信したＩＤで「Ｑｉ」の指し示すノードがアクセス可能か否かを判定する（ステップＳ６０５）。
【００５３】
受信したＩＤで「Ｑｉ」の指し示すノードがアクセス可能であった場合（ステップＳ６０５肯定）、クエリ判定抽出部１８は、「Ｑｉ」をＱＬｉｓｔに格納して（ステップＳ６０６）、「ｉ」を「１」だけ増加する（ステップＳ６０７）。
【００５４】
一方、受信したＩＤで「Ｑｉ」の指し示すノードがアクセス可能でなかった場合（ステップＳ６０５否定）、クエリ判定抽出部１８は、「Ｑｉ」をＱＬｉｓｔに格納することなく、「ｉ」を「１」だけ増加する（ステップＳ６０７）。
【００５５】
その後、「ｉ」を「１」だけ増加すると、ステップＳ６０４に戻り、「ｉ」が「ｎ」より大きくなるまで、上記したステップＳ６０４〜ステップＳ６０７の処理を繰り返して行う。
【００５６】
そして、「ｉ」が「ｎ」より大きくなると（ステップＳ６０４否定）、クエリ転送部１９は、ＱＬｉｓｔに格納されるクエリを順にＸＭＬデータベース１２に転送する（ステップＳ６０８）。
【００５７】
［実施例１による効果］
このように、実施例１によれば、利用者装置に割り当てられた識別子に対応付けて、利用者装置に関する利用者情報を記憶し、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶し、クエリ要求とともに識別子を受信した場合に、当該識別子に対応する利用者情報を利用者情報ＤＢから取得し、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢに記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出し、抽出されたクエリ要求のみをＸＭＬデータベース１２に転送するので、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能である。
【００５８】
例えば、どのようなクエリ要求（ＸＱｕｅｒｙ）を受信した場合でも、パストライを参照することで、クエリ要求に関係するアクセス制御ルールのみに直接アクセスすることができ、パストライを全て読み込むための読み込むために少量のメモリやディスクしか必要とせず、データ量の小さいクエリ要求をアクセス制御に基づいて書き換えることでアクセス制御を行うことができる結果、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することが可能である。
【００５９】
また、実施例１によれば、クエリ要求とともに識別子を受信した場合に、クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を利用者情報ＤＢから取得して、クエリ要求に対応するノードについて利用者情報で特定される利用者のアクセスが許可または禁止されているかをアクセス制御ＤＢに記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するので、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、さらに高速に応答することが可能であるとともに、さらに小さいメモリ領域やディスク領域で動作することが可能である。
【００６０】
例えば、ワイルドカードを含むクエリ要求を事前に展開して、アクセスが許可されたクエリ要求のみを抽出するので、ワイルドカードを含むクエリ要求を展開せずに、ＸＭＬデータベースに転送する場合に比べて、より高速に応答することが可能であるとともに、さらに小さいメモリ領域やディスク領域で動作することが可能である。
【実施例２】
【００６１】
さて、実施例１では、アクセス制御ＤＢがあらかじめ記憶されている場合について説明したが、本発明はこれに限定されるものではなく、自動的にアクセス制御ＤＢを作成するようにしてもよい。
【００６２】
そこで、実施例２では、自動的にアクセス制御ＤＢを作成する場合について説明する。実施例２では、実施例２に係るデータベースシステムの構成、処理の流れおよび実施例２による効果について説明する。
【００６３】
［データベースシステムの構成（実施例２）］
図７を用いて、実施例２に係るデータベースシステムの構成を説明する。図２は、実施例２に係るクエリ制御装置を含むデータベースシステムの構成を示すブロック図である。
【００６４】
図７に示すように、このデータベースシステム７０は、通信制御Ｉ／Ｆ部７１と、ＸＭＬデータベース７２と、クエリ制御装置７３の記憶部７４と制御部７７とから構成される。このうち、通信制御Ｉ／Ｆ部７１と、ＸＭＬデータベース７２と、記憶部７４の利用者情報ＤＢ７５とアクセス制御ＤＢ７６と、制御部７７のクエリ判定抽出部７８とクエリ転送部７９とは、図２で説明した通信制御Ｉ／Ｆ部１１と、ＸＭＬデータベース１２と、記憶部１４の利用者情報ＤＢ１５とアクセス制御ＤＢ１６と、制御部１７のクエリ判定抽出部１８とクエリ転送部１９と同様の機能を有するので、その詳細な説明は省略する。ここでは、実施例１とは異なる機能を有するアクセス制御ポリシー８０と、アクセス制御生成部８１とについて説明する。
【００６５】
アクセス制御ポリシー８０は、利用者情報と、ＸＭＬデータの各ノードを示す制御対象ノードと、制御対象ノードに対する処理内容を示す制御処理内容と、制御処理内容を許可または禁止するアクセス制御内容とを対応付けて記憶する。例を挙げると、図８に示したように、『利用者情報を示す「ユーザグループ」、制御対象ノードを示す「制御対象ノード」、制御処理内容を示す「制御動作」、アクセス制御情報を示す「アクセス制御」』として「一般社員、chara配下のname、read、permit」「一般社員、cast配下のname、read、deny」や「幹部社員、chara配下のname、read  write、permit」などと記憶する。ここで、例に挙げた格納形式は、あくまで例であり、例えば、ＸＡＣＭＬ（eXtensible  Access  Control  Markup  Language）で記述されているもよく、格納形式を限定するものではない。なお、アクセス制御ポリシー８０は、特許請求の範囲に記載の「アクセス制御ポリシー」に対応する。また、ここで示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図８は、アクセス制御ポリシーに記憶される情報の例を示した図である。
【００６６】
アクセス制御生成部８１は、アクセス制御ポリシー８０に基づいて、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、アクセス制御ＤＢに格納する。具体的には、アクセス制御ポリシー８０に記憶されるアクセス制御ポリシーとパストライとから、各ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、図５に示したように、アクセス制御を作成してアクセス制御ＤＢに格納する。なお、アクセス制御生成部８１は、特許請求の範囲に記載の「アクセス制御生成手順」に対応する。
【００６７】
［データベースシステムによる処理（実施例２）］
次に、図９を用いて、データベースシステムによる処理を説明する。図９は、実施例２に係るデータベースシステムにおけるアクセス制御ＤＢ作成処理の流れを示すフローチャートである。
【００６８】
図９に示したように、アクセス制御ＤＢ作成要求を受信すると（ステップＳ９０１肯定）、クエリ制御装置のアクセス制御生成部８１は、アクセス制御なしのパストライ「Ｑ１、・・・、Ｑｎ」を作成する（ステップＳ９０２）。
【００６９】
続いて、「ｉ」に「１」を代入して（ステップＳ９０３）、「ｉ」が「ｎ」以下である場合（ステップＳ９０４肯定）、アクセス制御生成部８１は、パストライ上のノードをＸｐａｔｈで「ｖｊ、・・・、ｖＭ（Ｍ＞＝０、ｊ＝０・・・Ｍ）」と表現する（ステップＳ９０５）。
【００７０】
続いて、「ｊ」に「１」を代入して（ステップＳ９０６）、アクセス制御生成部８１は、「ｊ」が「Ｍ」以下か否かを判定する（ステップＳ９０７）。「ｊ」が「Ｍ」以下である場合（ステップＳ９０７肯定）、アクセス制御生成部８１は、利用者情報ＤＢから利用者グループ（ｄｋ、・・・、ｄＫ（Ｋ＞＝０、ｋ＝０・・・Ｋ）を取得して（ステップＳ９０８）、「ｋ」に「１」を代入する（ステップＳ９０９）。そして、アクセス制御生成部８１は、「ｋ」が「Ｋ」以下であるか否かを判定する（ステップＳ９１０）。
【００７１】
「ｋ」が「Ｋ」以下である場合（ステップＳ９１０肯定）、アクセス制御生成部８１は、アクセス制御ポリシーからノードｖｊのアクセス制御ポリシーを読み込み（ステップＳ９１１）、アクセス制御ＤＢに格納して（ステップＳ９１２）、「ｋ」を「１」だけ増加する（ステップＳ９１３）。
【００７２】
その後、ステップＳ９１０に戻り、「ｋ」が「Ｋ」以下である間、ステップＳ９１１〜ステップＳ９１３の処理を繰り返す。そして、「ｋ」が「Ｋ」より大きくなると（ステップＳ９１０否定）、アクセス制御生成部８１は、「ｊ」を「１」だけ増加して（ステップＳ９１４）、ステップＳ９０７に戻る。
【００７３】
そして、「ｊ」が「Ｍ」以下である間、ステップＳ９０７〜ステップＳ９１４の処理を繰り返す。その後、「ｊ」が「Ｍ」より大きくなると（ステップＳ９０７否定）、アクセス制御生成部８１は、「ｉ」を「１」だけ増加して（ステップＳ９１５）、「ｉ」が「ｎ」以下である間、ステップＳ９０４〜ステップＳ９１５の処理を繰り返す。「ｉ」が「ｎ」より大きくなると（ステップＳ９０４否定）、アクセス制御生成部８１は、処理を終了する。
【００７４】
［実施例２による効果］
このように、実施例２によれば、利用者情報と、ＸＭＬデータの各ノードを示す制御対象ノードと、制御対象ノードに対する処理内容を示す制御処理内容と、制御処理内容を許可または禁止するアクセス制御内容とが対応付けたれたアクセス制御ポリシーを受け付けた場合、アクセス制御ポリシーに基づいて、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、アクセス制御ＤＢに格納するので、アクセス制御ポリシーが変更されても、自動でパストライを作成することができる結果、利用者（データベース管理者）の負担を軽減することが可能であるとともに、新しいアクセス制御ポリシーに従ったアクセス制御を迅速に行うことが可能である。
【００７５】
例えば、人事異動や組織変更などが発生した場合でも、パストライを手動で修正する必要がなく、アクセスポリシーに記載するだけで自動で新たなパストライを生成することができる結果、利用者（データベース管理者）の負担を軽減することが可能であるとともに、新しいアクセス制御ポリシーに従ったアクセス制御を迅速に行うことが可能である。
【実施例３】
【００７６】
ところで、実施例２では、一つのＸＭＬデータベースから一つのアクセス制御ＤＢを作成する場合について説明したが、本発明はこれに限定されるものではなく、複数のＸＭＬデータベースから一つのアクセス制御ＤＢを作成するようにしてもよい。
【００７７】
具体的に例を挙げれば、図１０に示したように、ＸＭＬデータベース１（最上位ノード：ｒｏｏｔ１）、ＸＭＬデータベース２（最上位ノード：ｒｏｏｔ２）、ＸＭＬデータベース３（最上位ノード：ｒｏｏｔ３）である場合、それぞれのパスの起点が異なるため、それぞれのパストライを生成する必要があるが、それぞれの最上位ノードより上位に「ノード：Ｒｏｏｔ」を生成することで、全てのデータベースに対して起点が「Ｒｏｏｔ」となり、それぞれのデータベース内のノードも同様に「Ｒｏｏｔ」起点のパス表記を行うことができる結果、複数のＸＭＬデータベースから一つのアクセス制御ＤＢすることができる。なお、図１０は、複数のＸＭＬデータベースから一つのアクセス制御ＤＢを作成した例を示す図である。
【００７８】
このようにすることで、複数のＸＭＬデータベースを一つの大きなデータバースとして一つのパストライを生成することができる結果、ＸＭＬデータベースの数だけパストライを生成する場合に比べて、メモリ領域やディスク領域などの浪費を防止することが可能である。
【実施例４】
【００７９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、（１）システム構成等、（２）プログラム、にそれぞれ区分けして異なる実施例を説明する。
【００８０】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合（例えば、クエリ判定抽出部とクエリ転送部とを統合する）して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８１】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、クエリ応答など）の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図３、図４、図５、図８など）については、特記する場合を除いて任意に変更することができる。
【００８２】
（２）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムを他の実施例として説明する。
【００８３】
図１１は、クエリ制御プログラムを実行するコンピュータシステムの例を示す図である。図１１に示すように、コンピュータシステム１１０は、ＲＡＭ１１１と、ＨＤＤ１１２と、ＲＯＭ１１３と、ＣＰＵ１１４とから構成される。ここで、ＲＯＭ１１３には、上記の実施例と同様の機能を発揮するプログラム、つまり、図１１に示すように、クエリ判定抽出プログラム１１３ａと、クエリ転送プログラム１１３ｂとがあらかじめ記憶されている。
【００８４】
そして、ＣＰＵ１１４には、これらのプログラム１１３ａと１１３ｂを読み出して実行することで、図１１に示すように、クエリ判定抽出プロセス１１４ａと、クエリ転送プロセス１１４ｂとなる。なお、クエリ判定抽出プロセス１１４ａは、図２に示した、クエリ判定抽出部１８に対応する。クエリ転送プロセス１１４ｂは、クエリ転送部１９に対応する。
【００８５】
また、ＨＤＤ１１２には、利用者装置に割り当てられた識別子に対応付けて、利用者装置に関する利用者情報を記憶する利用者情報テーブル１１２ａと、ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御テーブル１１２ｂとが設けられる。なお、利用者情報テーブル１１２ａは、図２に示した、利用者情報ＤＢ１５に対応し、アクセス制御テーブル１１２ｂは、アクセス制御ＤＢ１６に対応する。
【００８６】
ところで、上記したプログラム１１３ａと１１３ｂは、必ずしもＲＯＭ１１３に記憶させておく必要はなく、例えば、コンピュータシステム１１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム１１０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム１１０に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム１１０がこれらからプログラムを読み出して実行するようにしてもよい。
【００８７】
（付記１）各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することをコンピュータに実行させるクエリ制御プログラムであって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手順と、
前記クエリ判定抽出手順により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手順と、
をコンピュータに実行させることを特徴とするクエリ制御プログラム。
【００８８】
（付記２）前記クエリ判定抽出手順は、前記クエリ要求とともに前記識別子を受信した場合に、前記クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得して、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出することを特徴とする付記１に記載のクエリ制御プログラム。
【００８９】
（付記３）前記利用者情報と、前記ＸＭＬデータの各ノードを示す制御対象ノードと、前記制御対象ノードに対する処理内容を示す制御処理内容と、前記制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、前記アクセス制御ポリシーに基づいて、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、前記アクセス制御記憶手段に格納するアクセス制御生成手順を、さらにコンピュータに実行させることを特徴とする付記１または２に記載のクエリ制御プログラム。
【００９０】
（付記４）前記アクセス制御記憶手段は、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶することを特徴とする付記１〜３のいずれか一つに記載のクエリ制御プログラム。
【００９１】
（付記５）各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送するクエリ制御装置であって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出手段と、
前記クエリ判定抽出手段により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送手段と、
を備えたことを特徴とするクエリ制御装置。
【００９２】
（付記６）前記クエリ判定抽出手段は、前記クエリ要求とともに前記識別子を受信した場合に、前記クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得して、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出することを特徴とする付記５に記載のクエリ制御装置。
【００９３】
（付記７）前記利用者情報と、前記ＸＭＬデータの各ノードを示す制御対象ノードと、前記制御対象ノードに対する処理内容を示す制御処理内容と、前記制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、前記アクセス制御ポリシーに基づいて、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、前記アクセス制御記憶手段に格納するアクセス制御生成手段を、さらに備えたことを特徴とする付記５または６に記載のクエリ制御装置。
【００９４】
（付記８）前記アクセス制御記憶手段は、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶することを特徴とする付記５〜７のいずれか一つに記載のクエリ制御装置。
【００９５】
（付記９）各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、前記利用者装置から送信されたクエリ要求を転送することに適するクエリ制御方法であって、
前記利用者装置に割り当てられた識別子に対応付けて、前記利用者装置に関する利用者情報を記憶する利用者情報記憶手段と、
前記ＸＭＬデータベースに記憶されるＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶するアクセス制御記憶手段と、
前記クエリ要求とともに前記識別子を受信した場合に、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得し、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出するクエリ判定抽出工程と、
前記クエリ判定抽出工程により抽出されたクエリ要求のみを前記ＸＭＬデータベースに転送するクエリ転送工程と、
を含んだことを特徴とするクエリ制御方法。
【００９６】
（付記１０）前記クエリ判定抽出工程は、前記クエリ要求とともに前記識別子を受信した場合に、前記クエリ要求からワイルドカード文字を含むパスパターンを具体的なパスへと展開し、当該識別子に対応する利用者情報を前記利用者情報記憶手段から取得して、前記クエリ要求に対応するノードについて前記利用者情報で特定される利用者のアクセスが許可または禁止されているかを前記アクセス制御記憶手段に記憶される各ノードに対するアクセス情報を参照して判定し、アクセスが許可されたクエリ要求を抽出することを特徴とする付記９に記載のクエリ制御方法。
【００９７】
（付記１１）前記利用者情報と、前記ＸＭＬデータの各ノードを示す制御対象ノードと、前記制御対象ノードに対する処理内容を示す制御処理内容と、前記制御処理内容を許可または禁止するアクセス制御内容とが対応付けられたアクセス制御ポリシーを受け付けた場合、前記アクセス制御ポリシーに基づいて、前記ＸＭＬデータに対応するパストライの各ノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて、前記アクセス制御記憶手段に格納するアクセス制御生成工程を、さらに含んだことを特徴とする付記９または１０に記載のクエリ制御方法。
【００９８】
（付記１２）前記アクセス制御記憶手段は、複数のＸＭＬデータに対して、各ＸＭＬデータの最上位に位置するノードよりさらに上位に位置する仮ノードを生成し、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶する各ＸＭＬデータの最上位ノードを仮ノードとした各ＸＭＬデータのノードごとに、当該ノードに対するアクセスを許可または禁止される利用者を特定する利用者情報を対応付けて記憶することを特徴とする付記９〜１１のいずれか一つに記載のクエリ制御方法。
【産業上の利用可能性】
【００９９】
以上のように、本発明に係るクエリ制御プログラム、クエリ制御装置およびクエリ制御方法は、各種処理を行う利用者装置から送信されたクエリ要求に対して応答するＸＭＬデータベースに対して、利用者装置から送信されたクエリ要求を転送することに有用であり、特に、クエリ要求（ＸＱｕｅｒｙ）に応答するのに際して、高速に応答することが可能であるとともに、十分小さいメモリ領域やディスク領域で動作することに適する。
【図面の簡単な説明】
【０１００】
【図１】実施例１に係るクエリ制御装置を含むデータベースシステムの概要と特徴を説明するための図である。
【図２】実施例１に係るクエリ制御装置を含むデータベースシステムの構成を示すブロック図である。
【図３】ＸＭＬデータベースに記憶される情報の例を示す図である。
【図４】利用者情報ＤＢに記憶される情報の例を示す図である。
【図５】アクセス制御ＤＢに記憶される情報の例を示す図である。
【図６】実施例１に係るデータベースシステムにおけるクエリ応答処理の流れを示すフローチャートである。
【図７】実施例２に係るクエリ制御装置を含むデータベースシステムの構成を示すブロック図である。
【図８】アクセス制御ポリシーに記憶される情報の例を示す図である。
【図９】実施例２に係るデータベースシステムにおけるアクセス制御ＤＢ作成処理の流れを示すフローチャートである。
【図１０】複数のＸＭＬデータベースから一つのアクセス制御ＤＢを作成した例を示す図である。
【図１１】クエリ制御プログラムを実行するコンピュータシステムの例を示す図である。
【符号の説明】
【０１０１】
１０  データベースシステム
１１  通信制御Ｉ／Ｆ部
１２  ＸＭＬデータベース
１３  クエリ制御装置
１４  記憶部
１５  利用者情報ＤＢ
１６  アクセス制御ＤＢ
１７  制御部
１８  クエリ判定抽出部
１９  クエリ転送部
７０  データベースシステム
７１  通信制御Ｉ／Ｆ部
７２  ＸＭＬデータベース
７３  クエリ制御装置
７４  記憶部
７５  利用者情報ＤＢ
７６  アクセス制御ＤＢ
７７  制御部
７８  クエリ判定抽出部
７９  クエリ転送部
８０  アクセス制御ポリシー
８１  アクセス制御生成部
１１０  コンピュータシステム
１１１  ＲＡＭ
１１２  ＨＤＤ
１１２ａ  利用者情報テーブル
１１２ｂ  アクセス制御テーブル
１１３  ＲＯＭ
１１３ａ  クエリ判定抽出プログラム
１１３ｂ  クエリ転送プログラム
１１４  ＣＰＵ
１１４ａ  クエリ判定抽出プロセス
１１４ｂ  クエリ転送プロセス
【図１】
2008165432.tif 000003
【図２】
2008165432.tif 000004
【図３】
2008165432.tif 000005
【図４】
2008165432.tif 000006
【図５】
2008165432.tif 000007
【図６】
2008165432.tif 000008
【図７】
2008165432.tif 000009
【図８】
2008165432.tif 000010
【図９】
2008165432.tif 000011
【図１０】
2008165432.tif 000012
【図１１】
2008165432.tif 000013