(57)【要約】【課題】クエリへのアクセス、より詳細には、永続的に格納されたクエリへの複数のユーザによるアクセスを管理する方法、システム、および製品を提供すること。【解決手段】一実施形態では、データベース内のデータに対する既定のクエリへの複数のユーザによるアクセスを管理する方法が提供される。この方法は、１つまたは複数のアクセス権を既定のクエリの少なくともある部分と関連付けるステップを含む。第１のユーザによる、既定のクエリへのアクセスを求める要求を受信したとき、既定のクエリへのアクセスは、アクセス権に基づいて制限される。【選択図】図２
2006040277.tif 000002
【特許請求の範囲】
【請求項１】
データベース内のデータに対する既定のクエリへの複数ユーザによるアクセスを管理する方法であって、
１つまたは複数のアクセス権を前記既定のクエリの少なくとも一部分と関連付けるステップと、
第１のユーザによる前記既定のクエリへのアクセスを求める要求を受信するステップと、
前記第１のユーザによる前記既定のクエリへのアクセスを前記アクセス権に基づいて制限するステップと
を含む方法。
【請求項２】
前記既定のクエリが、前記データベース内の前記データを抽象的に記述するデータ抽象モデルによって定義された論理フィールドを使用して構成される、請求項１に記載の方法。
【請求項３】
各論理フィールドが、前記データベースで使用される基本のデータ表現によるデータの１つまたは複数の物理エンティティにマップされる、請求項２に記載の方法。
【請求項４】
前記第１のユーザの１つまたは複数の属性を決定するステップと、
前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップが、
１つまたは複数の決定された属性を使用して前記アクセス権の中から前記第１のユーザのためのユーザ固有のアクセス権を識別するステップを含み、
前記第１のユーザによる前記既定のクエリの一部または全体へのアクセスが前記ユーザ固有のアクセス権に基づいて許可される、請求項４に記載の方法。
【請求項６】
前記１つまたは複数の属性が、
（ｉ）ユーザ名
（ｉｉ）ユーザ役割
（ｉｉｉ）ユーザ権限レベル
のうちの少なくとも１つである、請求項４に記載の方法。
【請求項７】
一つのアクセス権を用いることで、前記第１のユーザが前記既定のクエリの第１の部分を読み出すことは可能にするが、前記第１の部分を修正することは不可能にする、請求項１に記載の方法。
【請求項８】
他の一つのアクセス権を用いることで、第２のユーザが前記既定のクエリの前記第１の部分を読み出すことを阻止する、請求項７に記載の方法。
【請求項９】
他の一つのアクセス権を用いることで、第２のユーザが前記既定のクエリの前記第１の部分を読み出し、かつ修正することを可能にする、請求項７に記載の方法。
【請求項１０】
一つのアクセス権を用いることで、前記第１のユーザが前記既定のクエリのある部分を読み出すことを阻止する、請求項１に記載の方法。
【請求項１１】
一つのアクセス権を用いることで、前記第１のユーザが前記クエリのある部分にクエリ条件を追加することは可能にするが、前記部分を修正することは不可能にする、請求項１に記載の方法。
【請求項１２】
前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップが、前記ユーザが前記既定のクエリの個人的複製を作成することを可能にするステップを含む、請求項４に記載の方法。
【請求項１３】
前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップが、前記ユーザが前記個人的複製のある限定された部分を修正することを可能にするステップを含む、請求項１２に記載の方法。
【請求項１４】
前記既定のクエリに関連付けられた前記アクセス権が、前記個人的複製にも関連付けられる、請求項１２に記載の方法。
【請求項１５】
データベース内のデータに対する既定のクエリへの複数の要求元エンティティによるアクセスを管理する方法であって、
前記既定のクエリへのアクセスを制限するように構成されるアクセス権を生成するステップと、
前記アクセス権を前記既定のクエリと関連付けるステップと、
前記アクセス権に基づいて前記既定のクエリの一部または全体へのアクセスを要求元エンティティに許可するステップと
を含む方法。
【請求項１６】
前記アクセス権に基づいて前記既定のクエリの一部または全体へのアクセスを要求元エンティティに許可するステップが、
前記要求元エンティティが前記既定のクエリを複製することを可能にするステップと、
前記アクセス権と前記複製された既定のクエリを関連付けるステップと
を含む、請求項１５に記載の方法。
【請求項１７】
前記要求元エンティティが前記複製された既定のクエリに関連付けられた前記アクセス権を修正することを可能にするステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記アクセス権に基づいて前記既定のクエリの一部または全体へのアクセスを要求元エンティティに許可するステップが、
前記要求元エンティティが１つまたは複数のクエリ条件を前記既定のクエリに追加することを可能にするステップを含む、請求項１５に記載の方法。
【請求項１９】
特定の要求元エンティティから前記既定のクエリへのアクセスを求める要求を受信するステップと、
前記アクセス権に基づいて、前記既定のクエリを前記特定の要求元エンティティに提供するステップと、
前記特定の要求元エンティティの前記アクセス権の指示を、前記特定の要求元エンティティに表示するステップと
をさらに含む、請求項１５に記載の方法。
【請求項２０】
特定の要求元エンティティから前記既定のクエリへのアクセスを求める要求を受信するステップと、
前記アクセス権に基づいて、前記既定のクエリを前記特定の要求元エンティティに提示するステップであって、前記既定のクエリの少なくとも１つのクエリ条件が前記既定のクエリ中に提示されないステップと
をさらに含む、請求項１５に記載の方法。
【請求項２１】
前記既定のクエリが少なくとも１つのクエリ条件を含み、
前記アクセス権に基づいて前記既定のクエリの一部または全体へのアクセスを要求元エンティティに許可するステップが、
（ｉ）前記要求元エンティティが前記少なくとも１つのクエリ条件を読み出すことは可能にするが、前記条件を修正することは不可能にするステップと、
（ｉｉ）前記要求元エンティティが前記少なくとも１つのクエリ条件を修正することを可能にするステップと
のうちの少なくとも一方を含む、請求項１５に記載の方法。
【請求項２２】
前記アクセス権を前記既定のクエリに関連付けるステップが、
前記既定のクエリおよび前記アクセス権を永続的データ・オブジェクトとして格納するステップを含む、請求項１５に記載の方法。
【請求項２３】
プロセッサによって実行されるときに、データベース内のデータに対する既定のクエリへの複数のユーザによるアクセスを管理するプロセスを実施するためのプログラムであって、前記プロセスが、
１つまたは複数のアクセス権を前記既定のクエリの少なくともある部分に関連付けるステップと、
第１のユーザによる、前記既定のクエリへのアクセスを求める要求を受信するステップと、
前記アクセス権に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップと
を含む、プログラム。
【請求項２４】
前記既定のクエリが、前記データベース内の前記データを抽象的に記述するデータ抽象モデルによって定義される論理フィールドを使用して構成される、請求項２３に記載のプログラム。
【請求項２５】
各論理フィールドが、前記データベースで使用される基本のデータ表現によるデータの１つまたは複数の物理エンティティにマップされる、請求項２４に記載のプログラ。
【請求項２６】
前記第１のユーザの１つまたは複数の属性を決定するステップと、
前記第１のユーザによる前記既定のクエリへのアクセスを、前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて制限するステップと
をさらに含む、請求項２３に記載のプログラム。
【請求項２７】
前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて前記第１のユーザによる前記既定のクエリへのアクセスを制限するステップが、
前記１つまたは複数の決定された属性を使用して、前記アクセス権の中から前記第１のユーザのユーザ固有のアクセス権を識別するステップを含み、
前記第１のユーザによる前記既定のクエリの一部または全体へのアクセスが前記ユーザ固有のアクセス権に基づいて許可される、請求項２６に記載のプログラム。
【請求項２８】
前記１つまたは複数の属性が、
（ｉ）ユーザ名
（ｉｉ）ユーザ役割
（ｉｉｉ）ユーザ権限レベル
のうちの少なくとも１つである、請求項２６に記載のプログラム。
【請求項２９】
一つのアクセス権を用いることで、前記第１のユーザが前記既定のクエリの第１の部分を読み出すことは可能にするが、前記第１の部分を修正することは不可能にする、請求項２３に記載のプログラム。
【請求項３０】
他の一つのアクセス権を用いることで、第２のユーザが前記既定のクエリの前記第１の部分を読み出すことを阻止する、請求項２９に記載のプログラム。
【請求項３１】
他の一つのアクセス権を用いることで、第２のユーザが前記既定のクエリの前記第１の部分を読み出し、かつ修正することを可能にする、請求項２９に記載のプログラム。
【請求項３２】
一つのアクセス権を用いることで、前記第１のユーザが前記既定のクエリのある部分を読み出すことを阻止する、請求項２３に記載のプログラム。
【請求項３３】
一つのアクセス権を用いることで、前記第１のユーザが前記クエリのある部分にクエリ条件を追加することは可能するが、前記部分を修正することは不可能にする、請求項２３に記載のプログラム。
【請求項３４】
前記第１のユーザによる前記既定のクエリへのアクセスを、前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて制限するステップが、前記ユーザが前記既定のクエリの個人的複製を作成することを可能にするステップを含む、請求項２６に記載のプログラム。
【請求項３５】
前記第１のユーザによる前記既定のクエリへのアクセスを、前記アクセス権ならびに前記第１のユーザの前記１つまたは複数の属性に基づいて制限するステップが、前記ユーザが前記個人的複製のある限定された部分を修正することを可能にするステップを含む、請求項３４に記載のプログラム。
【請求項３６】
前記既定のクエリに関連付けられた前記アクセス権が、前記個人的複製にも関連付けられる、請求項３４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にクエリ処理に関し、より詳細には、永続的に格納されたクエリへの複数ユーザによるアクセスを管理することに関する。
【背景技術】
【０００２】
データベースは、コンピュータ化された情報を格納し、取り出すシステムである。リレーショナル・データベース管理システムは、データの格納および取り出しにリレーショナル技術を使用するコンピュータ・データベース管理システム（ＤＢＭＳ）である。最も普及している種類のデータベースは、リレーショナル・データベース、すなわちデータをいくつかの異なる方法で再編成し、アクセスできるように定義した表形式のデータベースである。分散データベースは、ネットワーク中の様々なポイントに分散または複製できるデータベースである。オブジェクト指向プログラミング・データベースは、オブジェクト・クラスおよびオブジェクト・サブクラスの形で定義されたデータに適合するデータベースである。
【０００３】
特定のアーキテクチャにはかかわらず、ＤＢＭＳは様々な異なる種類の操作をサポートするように構成することができる。このような操作は、ＤＢＭＳによって格納され管理される情報を取り出し、追加し、変更し、削除するように構成することができる。標準のデータベース・アクセス方法では、ＳＱＬ（構造化クエリ言語）などの高級クエリ言語を使用してこのような操作をサポートしている。「クエリ」という用語は、格納されたデータベースのデータを処理するための操作の実行をもたらす１組の命令を意味する。例えば、ＳＱＬは４種類のクエリ操作、すなわち、ＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、およびＤＥＬＥＴＥをサポートする。ＳＥＬＥＣＴ操作はデータベースからデータを取り出し、ＩＮＳＥＲＴ操作は新しいデータをデータベースに追加し、ＵＰＤＡＴＥ操作はデータベース内のデータを変更し、ＤＥＬＥＴＥ操作はデータベースからデータを除去する。
【０００４】
アプリケーション、オペレーティング・システム、および最上位レベルであるユーザなど、任意の要求元エンティティは、１つまたは複数のデータベース内のデータに対してクエリを発行することができる。クエリはアプリケーションの一部としてハードコード化することもできるし、あるいは入力（例えば、ユーザ入力）に応答して生成することもできる。所与の要求元エンティティは、複数の異なるクエリを実行することができる。１つまたは複数のデータベースに対する各クエリが実行されるとすぐに、対応するクエリ結果が要求元エンティティに返される。クエリまたは対応するクエリ結果あるいはその両方はいずれも、永続的に格納することができる。
【０００５】
永続的に格納されたクエリまたはクエリ結果あるいはその両方は、複数のユーザで共用することができる。言い換えると、所与のユーザによって生成されたクエリは、永続的に格納し、他のユーザが使用できるようにすることができる。所与のユーザは、一人または複数人の他のユーザによって使用されることだけを意図したクエリを生成することもできる。例えば、１つまたは複数の基になるデータベースから情報を取り出す必要があるが、特定のクエリ言語に精通していないユーザのために、データベース管理者は、既定のクエリをその特定のクエリ言語で生成しておくことができる。したがって、このようなユーザが、基になるデータベースから必要な情報を取り出すためには、既定のクエリを単に実行することだけが必要になる。
【０００６】
しかし、永続的に格納されたクエリを複数のユーザ間で共用する上での１つの問題点は、特定の既定のクエリが、様々なユーザのニーズを厳密には満たしていない可能性があることである。例えば、ある企業のデータベース管理者が、その企業のセールス・マネージャによって使用されることを意図して、ある特定のクエリ言語を用いて既定のクエリを生成したと想定する。この既定のクエリは、様々なターゲット・グループの個人に関するデータを取り出すのに適した、比較的複雑なクエリであってもよい。さらに、所与のセールス・マネージャが、その企業の新しい製品の販売を開始しようとしていると想定する。したがって、所与のセールス・マネージャは、対応する既定のクエリを使用して、その新しい製品に対応するターゲット・グループを識別し、そのターゲット・グループ内の個人の情報を収集することができる。
【０００７】
次いで、所与のセールス・マネージャは、収集された情報を使用して識別されたターゲット・グループ内の各個人にぴったりの広告キャンペーンを行うことができる。次に、識別されたターゲット・グループが、１４〜２５歳で、特定の趣味を持つなど様々な条件を満たすティーンエイジャおよびヤング・アダルトからなると想定する。さらに、同一の様々な条件を満たす１８〜２５歳のティーンエイジャおよびヤング・アダルトの情報を取り出すように適合された既定のクエリが存在するものと想定する。所与のセールス・マネージャは、この既定のクエリを使用することもできるが、この既定のクエリは、１４〜１７歳のティーンエイジャに関連する必要な情報も併せて要求するためには修正が必要になる。
【０００８】
しかし、修正の後では、既定のクエリは、もはや元の１８〜２５歳のターゲット・グループを対象とするものではなくなる。言い換えると、既定のクエリの全体的な目的は修正によって変更されてしまう。この変更は、元のターゲット・グループに関連する情報だけを必要とする他のユーザによる、この既定のクエリのその後の実行に影響を与える可能性がある。さらに、場合によっては、特にそのセールス・マネージャが特定のクエリ言語に精通していない場合には、修正の間に既定のクエリが意図せずに損傷される可能性もある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、永続的に格納されたクエリを複数のユーザ間で共用し、しかもその永続的に格納されたクエリに対する望ましくない修正を不可能にする有効な技術が必要とされている。
【課題を解決するための手段】
【００１０】
本発明は一般に、クエリへのアクセスを管理する方法、およびプログラムに関し、より詳細には、永続的に格納されたクエリへの複数のユーザによるアクセスを管理するための方法、およびプログラムに関する。
【００１１】
一実施形態では、データベース内のデータに対する既定のクエリへの複数のユーザによるアクセスを管理する方法が提供される。この方法は、１つまたは複数のアクセス権と既定のクエリの少なくとも一部分を関連付ける方法を含む。第１のユーザによる、既定のクエリへのアクセス要求が受信されたとき、この第１のユーザによる既定のクエリへのアクセスは、アクセス権に基づいて制限される。
【００１２】
他の実施形態では、データベース内のデータに対する既定のクエリへの複数の要求元エンティティによるアクセスを管理する方法が提供される。この方法は、既定のクエリへのアクセスを制限するように構成されたアクセス権を生成すること、およびそのアクセス権を既定のクエリに関連付けることを含む。既定のクエリの一部または全体へのアクセスは、アクセス権に基づいて要求元エンティティに許可される。
【００１３】
他の実施形態においては、プログラムが提供される。このプログラムは、プロセッサによって実行されたときに、データベース内のデータに対する既定のクエリへの複数ユーザによるアクセスを管理する。このプロセスは、１つまたは複数のアクセス権を、既定のクエリの少なくとも一部分に関連付けることを含む。第１のユーザによる、既定のクエリへのアクセス要求が受信されたとき、この第１のユーザによる既定のクエリへのアクセスは、アクセス権に基づいて制限される。
【００１４】
本発明に関する上記の特徴、利点、および目的が達成され、詳細に理解されるように、上で要約した本発明のより詳細な説明を、添付の図面に例示された本発明の各実施形態を参照しながら行う。
【００１５】
しかし、添付の図面は本発明の代表的な実施形態を例示したものに過ぎず、したがって本発明の範囲を制限するものと見なすべきではないこと、したがって本発明には、他の同等に有効な実施形態を含み得ることに留意されたい。
【発明を実施するための最良の形態】
【００１６】
本発明は一般に、クエリへのアクセスを管理するための方法、およびプログラムを対象とするものであり、より詳細には、永続的に格納された既定のクエリへの複数のユーザによるアクセスを管理するものである。一態様によれば、複数のユーザが既定のクエリを使用して１つまたは複数のデータベースを変更し検索することが可能になる。複数のユーザはさらに、少なくともある程度までは既定のクエリを操作することが可能であり、それによって、既定のクエリのある種の全般的な目的が損なわれることが回避される。この目的のために、アクセス権を既定のクエリの１つまたは複数の部分に関連付ける。例として、このようなアクセス権は、データベース・カラムのアクセス権と同じにすることができる。一実施形態では、所与の既定のクエリ内の各クエリ条件をアクセス権（「特権」とも呼ばれる）と関連づけることができる。特定のクエリ条件に関する特権は、対応するクエリ・ツールを用いて、特定のユーザがこのクエリ条件をどのように扱うことが可能になるかを定義するように構成される。
【００１７】
本発明の一実施形態は、コンピュータ・システムとともに使用されるプログラムとして実装される。プログラムは、（本明細書に記載の方法を含む）各実施形態の機能を定義する。また、プログラムは、様々な信号搬送媒体に含めることができる。例示的信号搬送媒体は、これに限定されるわけではないが、（ｉ）非書込み可能記憶媒体（例えば、ＣＤ−ＲＯＭドライブで読出し可能なＣＤ−ＲＯＭディスクなどコンピュータ内の読出し専用記憶装置）に永続的に格納された情報、（ｉｉ）書込み可能な記憶媒体（例えば、ディスケット・ドライブ内のフロッピー（Ｒ）ディスク、またはハードディスク・ドライブ）に格納された変更可能情報、あるいは（ｉｉｉ）無線通信を含む、コンピュータ・ネットワークまたは電話ネットワークなどを介して通信媒体によってコンピュータに伝えられる情報を含む。最後の実施形態は、特にインターネットや他のネットワークからダウンロードした情報も含む。このような信号搬送媒体は、本発明の機能を指示するコンピュータ可読の命令を運ぶときには、本発明の実施形態を表すものになる。
【００１８】
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、モジュール、オブジェクト、または一連の命令であってもよい。本発明のソフトウェアは一般に、ネイティブ・コンピュータによってマシン可読のフォーマット、すなわち実行可能な命令に変換される複数の命令からなる。また、プログラムは、プログラムにローカルに備わっているか、またはメモリもしくは記憶装置上に存在する変数またはデータ構造からなる。さらに、以下で記述される様々なプログラムは、それらが本発明の特定の実施形態で実装されるアプリケーションに基づいて識別することもできる。しかし、以下で使用されるどのような用語も単に便宜のために使用されるものであり、したがって、本発明は、そのような用語によって識別されるアプリケーションまたはそれらが示唆するアプリケーション、あるいはその両方においてのみ使用されるものに限定すべきでないことを理解されたい。
【００１９】
本発明の各実施形態は、少なくとも１台のネットワーク・クライアントおよび少なくとも１台のサーバ・コンピュータを含むハードウェア／ソフトウェア構成の形で実装することができる。さらに、本発明の各実施形態は、コンピュータ・システムが複雑であるかどうか、あるいはマルチユーザ・コンピュータ装置、単一ユーザ・ワークステーション、またはそれ自体の中に不揮発性記憶装置を持たないネットワーク装置であるかどうかにかかわらず、任意の対応するハードウェア構成に適用することができる。さらに、ＳＱＬなど特定のクエリ言語を参照することもできるが、本発明が特定の言語、標準、またはバージョンに限定されるものではないことを理解されたい。したがって、当業者ならば、本発明が他のクエリ言語にも適合可能であり、また本発明が、特定のクエリ言語および現在知られていない他のクエリ言語における将来的な変更にも適合可能であることを理解されよう。
【００２０】
以下では、本発明の各実施形態を参照する。しかし、本発明が、記述した特定の実施形態に限定されるものではないことを理解されたい。むしろ、様々な実施形態に関連するか否かを問わず、以下の機能および要素の任意の組合せが、本発明を実装し実施するために考慮される。さらに、様々な実施形態において、本発明は従来技術に対して多くの利点を提供する。本発明の実施形態は他の可能な解決策または従来技術、あるいはその両方に対していくつかの利点を提供することができるが、しかし、所与の実施形態が特定の利点を達成するか否かは、本発明を限定するものではない。したがって、以下の態様、特徴、実施形態、および利点は、単に例示的なものであり、明示的に示された場合を除き、添付の特許請求の範囲の構成要素または制限と見なすべきものではない。
【００２１】
次に、図１を参照すると、一実施形態のソフトウェア・コンポーネントの関係ビューが示されている。一態様によれば、ソフトウェア・コンポーネントは、クエリを使用してデータ・ソースからデータのサブセットを取得するように構成される。ソフトウェア・コンポーネントはさらに、そのクエリを永続的に格納し、その永続的に格納されたクエリに関してアクセス権を生成することまたは関連付けすること、あるいはその両方を実施するように構成される。
【００２２】
例示として、ソフトウェア・コンポーネントは要求元エンティティ１１０、クエリ・マネージャ１４０、およびユーザ・インタフェース１９０を含む。一態様によれば、要求元エンティティ１１０は、データ・ソース１３０のデータ１３２に対して、クエリ、例えばクエリ１２０を発行する。データ・ソース１３０は、特定の物理的表現にはかかわらず、データの任意の集合体を表す。一実施形態では、データ・ソース１３０は１つまたは複数のデータベースを含む。１つまたは複数のデータベースはそれぞれ、（ＳＱＬクエリによってアクセス可能な）関係スキーマに従って、または（ＸＭＬクエリによってアクセス可能な）ＸＭＬスキーマに従って構成することができる。しかし、本発明は、特定のスキーマに限定されるものではなく、現在知られていないスキーマへの拡張も企図する。本明細書で使用する「スキーマ」という用語は、一般にデータの特定の配列を意味する。
【００２３】
要求元エンティティ１１０によって発行されたクエリ１２０は、事前に定義しておくこともできる。あるいは、例えば、ユーザ・インタフェース１９０（例えば、ユーザ入力部）を介して受信した入力に応答して生成することもできる。クエリ・マネージャ１４０は、データ・ソース１３０のデータ１３２に対するクエリ１２０を実行してクエリ結果１７０を取得する。その後、クエリ結果１７０は、要求元エンティティ１１０に提示される。
【００２４】
一実施形態では、クエリ１２０はＳＱＬクエリである。最も一般的に実行されるＳＱＬクエリは、ＳＥＬＥＣＴステートメントである。ＳＥＬＥＣＴステートメントは一般に、「ＳＥＬＥＣＴ＜文節＞  ＦＲＯＭ＜文節＞  ＷＨＥＲＥ＜文節＞  ＧＲＯＵＰ  ＢＹ＜文節＞  ＨＡＶＩＮＧ＜文節＞  ＯＲＤＥＲＥＤ  ＢＹ＜文節＞」のフォーマットを有する。一般に、各文節はこの順序に従う必要がある。ＳＥＬＥＣＴ文節とＦＲＯＭ文節だけが必須であり、他の全ての文節は任意選択である。一般に、ＳＥＬＥＣＴステートメントの結果は、リレーショナル・データベース（例えば、図１のデータ・ソース１３０）に格納された１つまたは複数の既存のテーブルから取り出されたデータ（例えば、データ１３２）のサブセットになる。この場合、ＦＲＯＭ文節は、データが選択されている１つまたは複数のテーブル名を識別する。データのサブセットは、結果テーブルと呼ばれる新しいテーブルとして扱われる。ＷＨＥＲＥ文節は、結果テーブルにどの行を返すべきかを決定する。一般に、ＷＨＥＲＥ文節は、結果テーブルに返される各行が満たすべき１つまたは複数のクエリ条件を含む。一般に、クエリ条件は１つまたは複数の述部であり、各述部は、ある列、定数、または相関値からの２つの値の比較を、「＝」、「＞」、「＜」など適切な比較演算子を使用して指定する。一般に、ＷＨＥＲＥ文節の複数の述部は、例えば、ブールＡＮＤ演算子またはブールＯＲ演算子、あるいはその両方によって接続される。
【００２５】
他の実施形態では、クエリ１２０は抽象クエリである。抽象クエリは、データ抽象モデルによって定義された論理フィールドを使用して構成される。各論理フィールドは、データ・ソース１３０で使用される基本のデータ表現（例えば、ＸＭＬ、ＳＱＬ、その他のタイプの表現）によるデータの１つまたは複数の物理エンティティにマップされる。さらに、データ抽象モデルでは、論理フィールドは基本のデータ表現とは独立に定義され、それによって、基本のデータ表現と疎に結合したクエリを形成することが可能になる。抽象クエリは、データ１３２にアクセスしてクエリ結果を返す、あるいはデータ１３２を修正（すなわち、挿入、削除、または更新）するように構成することができる。データ１３２に対する実行のために、抽象クエリは、データ１３２の基本データ表現に適合する形（本明細書では具体的クエリと呼ぶ）に変換される。抽象クエリの具体的クエリへの変換は、２００２年２月２６日出願の「Application Portability And Extensibility Through Database SchemaAnd Query Abstraction」と題する、同一出願人による同時係属中の米国特許出願１０／０８３０７５号に詳細に記載されている。
【００２６】
一実施形態では、クエリ・マネージャ１４０は、クエリ１２０を永続的データ・オブジェクト１５６「ＱＵＥＲＹ  Ｎ」として、クエリ・リポジトリ１５０に格納する。例示として、クエリ・リポジトリ１５０には、すでに複数のクエリ、１５２「ＱＵＥＲＹ  １」および１５４「ＱＵＥＲＹ  ２」（簡単のために２つだけを示す）が含まれており、それらもまた永続的データ・オブジェクトとして格納されているものとする。ただし、クエリ・リポジトリ１５０にクエリ１５２、１５４、および１５６を提供したのは単に例示のためであり、したがって本発明の制限を意図したものではないことに留意されたい。例えば、クエリ１５２、１５４、および１５６は、異なる要求元エンティティによって生成することができ、また対応するデータ処理システムの異なる位置に個別に格納することもできる。
【００２７】
一実施形態では、クエリ１５２、１５４、および１５６へのアクセスは、アクセス権１３４に基づいて制限される。例示として、アクセス権１３４は、データ・ソース１３０内に格納される。例として、アクセス権１３４には、複数の要求元エンティティの各々に対し、その対応する要求元エンティティに、１つまたは複数のクエリ１５２、１５４、１５６の一部または全体にアクセスする権限を与えるかどうかを定義することができる。アクセス権１３４にはさらに、要求元エンティティの１つまたは複数のグループに対して、その対応するグループに１つまたは複数のクエリ１５２、１５４、１５６の一部または全体にアクセスする権限を与えるかどうかを定義することもできる。また、アクセス権１３４にはさらに、１つまたは複数のクエリ１５２、１５４、１５６の様々な部分、または様々な要求元エンティティもしくは要求元エンティティのグループ、あるいはその両方に対して、様々な種類のアクセスを定義することもできる。より詳細には、所与のクエリへのアクセスは、所与のクエリに付与されたアクセス権に基づいて、対応する要求元エンティティに所与のクエリの限られた部分だけを提示することによって制限することができる。所与のクエリへのアクセスはさらに、所与のクエリに付与されたアクセス権に基づき、対応する要求元エンティティによる所与のクエリの少なくともある部分の修正を禁止することによって制限することができる。
【００２８】
一実施形態では、アクセス権１３４はユーザ・インタフェース１９０を用いて生成される。一態様によれば、アクセス権１３４は、データベース管理者など権限を与えられた要求元エンティティによって生成される。さらに、クエリ１５２、１５４、および１５６の所与の１つに対するアクセス権は、クエリ１５２、１５４、および１５６の所与の１つを生成する対応する要求元エンティティによって生成時に生成することができる。クエリ１５２、１５４、および１５６へのアクセスを制限するクエリ・マネージャ１４０の動作については、以下で図２および図３を参照しながらより詳細に説明する。
【００２９】
図２は、クエリ１５２、１５４、および１５６へのアクセスを管理するための一実施形態における、図１の各コンポーネントの関係ビューを示すものである。例示として、複数の要求元エンティティ１１０１〜１１０Ｎは、クエリ１５２、１５４、および１５６に関連するデータを取得するためのデータ要求１６０を発行する。例として、要求元エンティティ１１０１〜１１０Ｎ（以下では、「要求元エンティティ１１０」と呼ぶ）の１つが、クエリ１５２「クエリ１」にアクセスするための複数のデータ要求１６０のうちの１つ（以下では、「データ要求１６０」と呼ぶ）を発行すると想定する。クエリ・マネージャ１４０は、データ要求１６０を受信し、その要求元エンティティ１１０にクエリ１５２の全体または少なくとも一部にアクセスする権限が与えられているかどうかを判断する。この目的で、クエリ・マネージャ１４０はデータ・ソース１３０のアクセス権１３４にアクセスする。次に、アクセス権１３４が、要求元エンティティ１１０に対し、クエリ１５２の１つまたは複数の部分にだけアクセスする権限は与えているが、クエリ１５２の全体へのアクセス権は与えていないと想定する。したがって、クエリ・マネージャ１４０は、アクセス権１３４に基づいて、クエリ１５２からその１つまたは複数の部分を識別する。次に、クエリ・マネージャ１４０は、クエリ１５２からその１つまたは複数の部分を、制限されたクエリ１７２として要求元エンティティ１１０に提示する。制限されたクエリ１７２は、提示されるクエリがアクセス権１３４に基づいて制限されているという指示とともに要求元エンティティ１１０に提示することができる。
【００３０】
一実施形態では、アクセス権１３４は、要求元エンティティ１１０１〜１１０Ｎなど、複数の潜在的な要求元エンティティに対して定義される。上記のように、アクセス権１３４は、要求元エンティティ１１０１〜１１０Ｎのうちのどの要求元エンティティに、クエリ１５２、１５４、１５６へのアクセスが認められるかを定義するために実装することができる。さらに、アクセス権１３４には、ユーザまたはアプリケーション固有の細分性（granularity）を備えることもできる。例えば、アクセス権１３４は、全体のクエリまたはクエリ・コンポーネント、例えばクエリ条件などのへのアクセスを制限するように構成することができる。したがって、様々な要求元エンティティに対し、アクセス権１３４に基づいてクエリ１５２、１５４、１５６の１つへの様々なアクセス権が決定される、様々なシナリオが生ずる可能性がある。言い換えると、これらの要求元エンティティはすべて同一のクエリ、すなわちクエリ１５２に関して動作するが、これらの各要求元エンティティに対して異なるクエリ・データを提示することができる。例として、クエリ１５２の第１の部分を第１の要求元エンティティに提示し、クエリ１５２の第２の部分を第２の要求元エンティティに提示することができる。それによって、第１の部分は、第２の部分には提示されない１つまたは複数のデータ・オブジェクトを含むことになる。
【００３１】
例として、ユーザに代表される様々な要求元エンティティが、単一の既定のクエリにアクセスを試みる例示的シナリオを、以下でテーブルＩＩ〜Ｖを参照しながら説明する。例示的な既定のクエリについては、以下でテーブルＩを参照しながら説明する。
【００３２】
テーブルＩ：例示的な既定のクエリ
００１    ＳＥＬＥＣＴ  ＊
００２    ＦＲＯＭ  ｔａｂｌｅ−ｘ
００３    ＷＨＥＲＥ（条件１  ＡＮＤ  条件２  ＡＮＤ  条件３）
【００３３】
テーブルＩから分かるように、例示のクエリはデータベース・テーブル「ｔａｂｌｅ−ｘ」に対して実行されるように、あらかじめ定義されている（行００２）。詳細には、特定のクエリ条件「条件１」および「条件２」および「条件３」を満たす（行００３）、データベース・テーブル「ｔａｂｌｅ−ｘ」のすべての行を決定するために（行００１）、例示のクエリを使用することができる。
【００３４】
テーブルＩＩ：例示的シナリオ１
００１    条件「条件１」は、ジョン・スミス（Ｊｏｈｎ  Ｓｍｉｔｈ）が修正できる
００２    条件「条件２」は、読出しだけが可能
００３    条件は、「研究者（ＲＥＳＥＡＲＣＨＥＲＳ）」グループによって追加することができる
【００３５】
テーブルＩＩの例示的なシナリオ１において、テーブルＩの例示的クエリに対するアクセス権１３４は、ユーザ「ジョン・スミス」だけがクエリ条件「条件１」を修正できるように定義されている（行００１）。言い換えれば、行００１によれば、ユーザ「ジョン・スミス」はクエリ条件「条件１」の演算子や値などのパラメータを変更することができる。行００２によれば、アクセス権１３４は、すべてのユーザがクエリ条件「条件２」の読出しだけはできるが、その条件を修正することはできないように定義される。さらに、テーブルＩの全体のクエリは、００３行によって定義されたアクセス権と関係付けられている。より詳細には、行００３によれば、アクセス権１３４は、「研究者」グループのユーザだけが１つまたは複数のクエリ条件をテーブルＩの例示的クエリに追加できるように定義されている。シナリオ１のクエリ条件「条件３」には、アクセス権がまったく指定されていないので、一態様によれば、すべてのユーザが必要に応じてこのクエリ条件を操作することができる。
【００３６】
テーブルＩＩＩ：例示的シナリオ２
００１    条件「条件１」は補足することができる
００２    条件「条件３」は隠蔽される
【００３７】
テーブルＩＩＩの例示的シナリオ２では、テーブルＩの例示的クエリに対するアクセス権１３４は、任意のユーザがクエリ条件「条件１」を補足できるように定義されている（行００１）。一態様によれば、クエリ条件が補足できる場合に、ユーザは、クエリ条件の述部を変更せずに、１つまたは複数の追加の述部だけをそのクエリ条件に追加することができる。例えば、クエリ条件「条件１」が、１８歳以上の個人を識別するように構成されていると想定する。したがって、クエリ条件「条件１」は、次のように定義することができる：「Ａｇｅ＞＝１８」。次に、ユーザが、１８歳以上だが、２５歳以下の個人を決定したいと想定する。この場合ユーザは、「Ａｇｅ＜＝２５」など、対応する補足クエリ条件を追加することによって、クエリ条件「条件１」を補足することができる。その結果、補足された条件は、クエリ条件「条件１」と補足クエリ条件の組合せに相当するもの、すなわち、「Ａｇｅ＞＝１８  ＡＮＤ  Ａｇｅ＜＝２５」となる。行００２によれば、アクセス権１３４は、クエリ条件「条件３」がすべてのユーザに隠蔽されるように定義される。したがって、テーブルＩに定義されたクエリは、クエリ条件「条件３」がユーザに表示されないように提供することができる。しかし、いくつかの実施形態では、このような場合に、テーブルＩＩＩのクエリの一部が表示されずに隠蔽されていることを示す何らかの指示をユーザに表示することができる。さらに、シナリオ２のクエリ条件「条件２」には、アクセス権がまったく指定されていないので、一態様によれば、すべてのユーザが必要に応じてこのクエリ条件を操作することができる。
【００３８】
テーブルＩＶ：例示的シナリオ３
００１    静的複製が可能
【００３９】
テーブルＩＶの例示的シナリオ３において、テーブルＩの例示的クエリに対するアクセス権１３４は、任意のユーザが例示的クエリの個人用複製を作成できるように定義されている（行００１）。次に、この個人用の複製が「静的」と定義されているので（テーブルＩＶの行００１）、この個人用の複製はテーブルＩの例示的クエリと同一のアクセス権（すなわちアクセス権１３４）に関係付けられることになる。
【００４０】
例として、図２の要求元エンティティ１１０はクエリ１５２の個人用複製１１４を作成し、その複製が、（破線１１６で示されるように）要求元エンティティ１１０に関連付けられたローカルのデータ・ソース１１２に例示として格納されている。クエリ１５２へのアクセスはアクセス権１３４に基づいて制限されているので、（破線１３６で示されるように）個人用複製１１４へのアクセスもアクセス権１３４によって制限される。したがって、要求元エンティティ１１０がクエリ１５２の個人用複製１１４にアクセスするとき、（破線１７４によって示されるように）制限されたクエリ１７２が有効にユーザに提示されることになる。
【００４１】
テーブルＶ：  例示的シナリオ４
００１    動的複製が可能
【００４２】
テーブルＶの例示的シナリオ４において、テーブルＩの例示的クエリに対するアクセス権１３４は、任意のユーザが例示的クエリの動的個人用複製が作成できるように定義されている（行００１）。動的個人用複製は、必要に応じてユーザによって修正することができる。言い換えると、動的個人用複製には、アクセス権１３４を関連づけることができなくなる。
【００４３】
次に図３を参照すると、クエリ１５２、１５４、および１５６へのアクセスを管理するための他の実施形態における、図１のソフトウェア・コンポーネントの関係ビューが示されている。例示として、複数の要求元エンティティ１１０１〜１１０Ｎが、永続的データ・オブジェクトとしてクエリ・リポジトリ１５０に格納された複数のクエリ１８０に対してデータ要求１６０を発行する。各クエリ１８０は、クエリ・データ１８２および関連するアクセス権１８４を含む。一態様によれば、クエリ・データ１８２は既定のクエリ（例えば、図１のクエリ１５２〜１５６）のデータに対応する。
【００４４】
次に、例として、クエリ・マネージャ１４０は、いくつかのクエリ１８０のうちの所与のクエリ１８０（以下、「クエリ１８０」と呼ぶ）にアクセスしたいと思うユーザから、いくつかのデータ要求１６０のうちの所与のデータ要求（以下、「データ要求１６０」と呼ぶ）を受信するものと想定する。クエリ１８０の例示的実施形態については、以下で図６を参照しながら説明する。
【００４５】
データ要求１６０を受信するとすぐに、クエリ・マネージャ１４０は、そのユーザが、クエリ１８０のクエリ・データ１８２の全体、または少なくとも一部にアクセスする権限が与えられているかどうかを判断する。その目的で、クエリ・マネージャ１４０は、ユーザの属性を決定する。決定される属性は、ユーザを識別するために適したものである。例として、決定される属性は、ユーザ名、ユーザ識別子、ユーザの役割、またはユーザに関する権限レベルなどのことがある。クエリ・マネージャ１４０はさらに、クエリ・データ１８２に関するユーザのアクセス権を決定する。ユーザのアクセス権は、アクセス権１８４に基づいて決定される。
【００４６】
一実施形態では、アクセス権１８４は、図１のアクセス権１３４に基づいて生成される。したがって、アクセス権１８４は、クエリ・データ１８２の複数の潜在的ユーザに適したものにすることができる。言い換えると、アクセス権１８４は、クエリ・データ１８２の一部または全体について、各潜在ユーザごとに適切なものにすることができる。あるいは、アクセス権１８４には、アクセス権１３４へのリンクを定義することもできる。この場合、アクセス権１３４を使用して、潜在的ユーザがクエリ・データ１８２の一部または全体にアクセスする権限が与えられているかどうかを判断することができる。あるいは、アクセス権１８４をクエリ・データ１８２の生成時に生成し、クエリ・データ１８２とともに、永続的データ・オブジェクト１８０として格納しておくこともできる。
【００４７】
詳細には、図３に示した例において、クエリ・マネージャ１４０は、クエリ・データ１８２とともに格納されたアクセス権１８４に基づいて、クエリ・データ１８２にアクセスする権限が要求元エンティティ１１０に与えられているかどうかを判断する。より詳細には、クエリ・マネージャ１４０は、アクセス権１８４を使用して、クエリ・データ１８２中のそのユーザによるアクセスが許されている部分を識別する。次いで、クエリ・マネージャ１４０は、その識別された部分を制限されたクエリ１７６としてユーザに提供する。クエリ・マネージャ１４０の動作については、以下で図４を参照しながらより詳細に説明する。
【００４８】
次に図４を参照すると、複数のユーザによる既定のクエリ（例えば、図１のクエリ１５２、１５４、１５６のうちの１つ）へのアクセスを管理する方法２００の一実施形態が示されている。方法２００の諸ステップのうちの少なくとも一部は、クエリ・マネージャ（例えば、図１のクエリ・マネージャ１４０）およびユーザ・インタフェース（例えば、図１のユーザ・インタフェース１９０）を使用して実施することができる。方法２００は、ステップ２１０で始まる。
【００４９】
ステップ２２０で、データ・ソース（例えば、図１のデータ・ソース１３０）に対する、第１の要求元エンティティ（例えば、図１の要求元エンティティ１１０）からのクエリ（例えば、図１のクエリ１２０）が受信される。ステップ２３０で、そのクエリに対するアクセス権が生成される。一態様によれば、アクセス権は、ユーザ・インタフェースを使用して第１の要求元エンティティによって生成される。アクセス権は、クエリへのアクセスを制約するように構成される。一実施形態では、アクセス権（例えば、図１のアクセス権１３４）の生成は、そのアクセス権をデータ・ソースに格納することを含む。したがって、クエリ・マネージャは、クエリへのアクセス要求を受信したとき、そのクエリとアクセス権（例えば、図２のアクセス権１３４）を実行時にリンクすることができる。他の実施形態では、アクセス権の生成は、アクセス権（例えば、図３のアクセス権１８４）を生成して、クエリとともに永続的データ・オブジェクト（例えば、図３のクエリ１８０）に格納することを含む。あるいは、永続的データ・オブジェクトのアクセス権では、データ・ソースに格納されたアクセス権へのリンクを定義することもできる。
【００５０】
ステップ２４０で、アクセス権とクエリが関係付けられる。一実施形態では、ステップ２５０で、アクセス権はクエリとともに永続的データ・オブジェクト（例えば、図３のクエリ１８０）として格納される。あるいは、アクセス権をデータ・ソースに格納するとき、クエリだけを永続的データ・オブジェクト（例えば、図２のクエリ１５２）として格納することもできる。
【００５１】
ステップ２５０で格納された永続的データ・オブジェクトは、その後、関係付けられたアクセス権に基づいて複数の要求元エンティティによってアクセスすることができる。例示として、ステップ２６０では、ステップ２５０で永続的データ・オブジェクトとして格納されたクエリにアクセスを求めるデータ要求（例えば、図２および３のデータ要求１６０）を、第２の要求元エンティティ（例えば、図２〜３の要求元エンティティ１１０）から受信する。
【００５２】
ステップ２７０では、永続的データ・オブジェクトの少なくとも１つまたは複数の部分へのアクセスがアクセス権に基づいて許可または拒絶される。永続的データ・オブジェクトへのアクセスを許可する例示的方法については、以下で図５を参照しながら説明する。次に、方法２００は、ステップ２８０で終了する。
【００５３】
次に図５を参照すると、図４のステップ２７０に従って、永続的データ・オブジェクト（例えば、図２のクエリ１５２または図３のクエリ１８０）へのアクセスを許可する例示的方法３００が示されている。方法３００の諸ステップの少なくとも一部は、クエリ・マネージャ（例えば、図２〜３のクエリ・マネージャ１４０）を使用して実施することができる。方法３００はステップ３１０で始まり、そのステップで永続的データ・オブジェクトがアクセス権（例えば、図３のアクセス権１８４）を含むかどうかが判断される。
【００５４】
永続的データ・オブジェクト（例えば、図３のクエリ１８０）にアクセス権が含まれている場合は、ステップ３２０で、要求元エンティティの１つまたは複数の属性が決定される。次に、ステップ３３０で、永続的データ・オブジェクトに含まれるアクセス権および決定された属性に基づいて、永続的データ・オブジェクトへのエンティティ固有のアクセス権が、要求元エンティティのために識別される。言い換えると、永続的データ・オブジェクトに含まれるアクセス権を解析して、そこからその要求元エンティティに固有のアクセス権を引き出せるかどうかが識別される。例えば、永続的データ・オブジェクトに含まれるアクセス権を解析して、決定された属性を有する要求元エンティティのアクセスに対して明確に権限を与えるアクセス権の部分を識別することができる。さらに、永続的データ・オブジェクトに含まれるアクセス権を解析して、決定された属性を有する要求元エンティティによるアクセスに対して明確には排除されていないアクセス権の部分を識別することもできる。しかし、アクセス権が、様々に異なる方法で実装できることに留意されたい。上で述べたように、アクセス権は、特定のユーザまたはユーザ・グループあるいはその両方と関連付けることができる。しかし、アクセス権は、特定のユーザまたはユーザ・グループを参照することなく、永続的データ・オブジェクトのクエリ・データの一部、例えばクエリ条件などに関して指定することもできる。したがって、本発明は、アクセス権についての特定の実装に限定されるものではなく、現在知られていない実装を含む他の実装への拡張を企図したものである。
【００５５】
ステップ３４０で、識別されたエンティティ固有のアクセス権に基づいて、何も提供されないか、あるいは、永続的データ・オブジェクトの１つまたは複数の部分、または全体が、制限されたクエリ（例えば、図３の制約されたクエリ１７６）として要求元エンティティに提供される。次に、処理は図４のステップ２８０に続く。
【００５６】
一方、ステップ３１０で、永続的データ・オブイジェクト（例えば、図２のクエリ１５２）にアクセス権が含まれていないと判断された場合は、ステップ３５０で、要求元エンティティの対応するエンティティ固有のアクセス権は、対応するデータ・ソース（例えば、図２のアクセス権１３４）に格納されたアクセス権から判断される。次いで、処理はステップ３４０に続く。
【００５７】
次に、図６を参照すると、例示的な永続的データ・オブジェクト（例えば、図３の永続的データ・オブジェクト１８０）を含むデータ構造４００の一実施形態が示されている。例として、データ構造４００が、複数の列４１０〜４４０および行４５０〜４８０を有する表形式で示されている。
【００５８】
行４５０は、列４１０〜４４０の項目名を表示する。ただし、行４５０が単に例示のために示されていること、したがって任意選択であることを理解されたい。行４５０から分かるように、列４１０〜４２０にはクエリ・データ（例えば、図３のクエリ・データ１８２）が含まれる。また、列４３０〜４４０には、アクセス権（例えば、図３のアクセス権１８４）の仕様が含まれる。より詳細には、列４１０は、例示として、既定のクエリの識別を含む。列４２０は、例示として、クエリ条件を含む。列４３０は、例示として、様々なクエリ条件に関連付けられたアクセス権を含む。列４４０は、例示として、列４３０に含まれたアクセス権が適用されるユーザ／ユーザ・グループの識別を含む。
【００５９】
例として、行４６０〜４６４は、３つのクエリ条件、すなわち「条件１」、「条件２」、および「条件３」を有する第１のクエリ「クエリ１」に関係する。列４６０〜４６４において、これら３つのクエリ条件にアクセス権が定義される。より詳細には、行４６０によれば、クエリ条件「条件１」に定義されたアクセス権は「読出し専用」タイプのものである（列４３０）。このアクセス権は、すべてのユーザに適用される。なぜならば、「条件１」に対して、列４４０で特定のユーザまたはユーザ・グループが定義されていないからである。言い換えると、クエリ条件「条件１」により、すべてのユーザによる読出し専用アクセスが可能になる。
【００６０】
行４６２によれば、クエリ条件「条件２」に定義されたアクセス権は「修正」タイプのものである（列４３０）。このアクセス権は、「研究者」グループのすべてのユーザに適用される（列４４０）。言い換えると、「研究者」グループのすべてのユーザは、クエリ条件「条件２」を修正することが可能になる。一態様によれば、定義されたアクセス権が「修正」であり、また他のユーザまたはユーザ・グループには「条件２」へのアクセス権が定義されていないので、クエリ条件「条件２」は、他のユーザ／ユーザ・グループに対しては、デフォルト設定で、隠蔽するかまたは読出し専用アクセスだけを可能にすることができる。この目的で、一実施形態では、ユーザ固有の、またはアプリケーション固有のデフォルトのアクセス権を定義することができる。
【００６１】
行４６４によれば、クエリ条件「条件３」に定義されたアクセス権は、「読出し専用」タイプである（列４３０）。このアクセス権は２人のユーザ、すなわち第１のユーザである「管理者」、例えばデータベース管理者、および第２のユーザである「ジョン・スミス」に適用される（列４４０）。言い換えると、「管理者」および「ジョン・スミス」だけがクエリ条件「条件３」を読み出すことが可能である。例えば、「クエリ１」が、ある企業Ｘで「ジョン・スミス」によって作成されたと想定する。「クエリ１」を用いると、「ジョン・スミス」のローカル・データ、例えば「ジョン・スミス」によって立ち上げられた研究プロジェクトに関連するデータにアクセスすることが可能になる。
【００６２】
「クエリ１」に基づいて、「ジョン・スミス」は、社内のすべてのユーザに対してローカル・データへのアクセスを可能にする。しかし、クエリ条件「条件３」を使用して機密データへのアクセスは禁止する。自分自身による、クエリ条件「条件３」の意図しない修正を避けるために、「ジョン・スミス」は、自らのアクセス権を「読出し専用」に設定している。さらに、企業Ｘの内部手続きに従って、データベース管理者は、企業Ｘの任意の既定のクエリに関するすべての部分にアクセスできる必要があるものと想定する。例えば、データベース管理者は、所与のクエリ条件が不必要にデータ・アクセスを制限していないかどうかを検証できなければならない。したがって、所与の例では、データベース管理者は、クエリ条件「条件３」を読み出すことはできるが、修正することはできない。さらに、２人の特定のユーザ、すなわち「管理者」および「ジョン・スミス」に対して定義されたアクセス権が「読出し専用」であり、また「条件３」へのアクセス権が、他のユーザまたはユーザ・グループには定義されていないので、クエリ条件「条件３」は、デフォルトで他のすべてのユーザ／ユーザ・グループに対して隠蔽することができる。
【００６３】
行４７０は、第２のクエリ「クエリ２」に関する。しかし、第２のクエリ「クエリ２」に対する特別なクエリ条件は列４２０には指示されていない。したがって、第２のクエリ「クエリ２」の列４３０に定義されたアクセス権は、そのクエリのすべてのコンポーネントに対して適用される。より詳細には、列４３０によれば、クエリ「クエリ２」に定義されたアクセス権は、「条件追加」である。このアクセス権はすべてのユーザに適用される。なぜならば、「クエリ２」の列４４０に特定のユーザまたはユーザ・グループが定義されていないからである。言い換えると、任意のユーザが、第２のクエリ「クエリ２」に、１つまたは複数のクエリ条件を追加することができる。
【００６４】
行４８０は第３のクエリ「クエリＮ」に関する。しかし、第３のクエリ「クエリＮ」の列４２０には、特別なクエリ条件は指示されていない。さらに、第３のクエリ「クエリＮ」の列４３０にアクセス権も定義されていない。したがって、任意のユーザが要望に応じて、第３のクエリ「クエリＮ」を操作することができる。
【００６５】
図６を参照しながら、例として、様々な種類のアクセス、すなわち「読出し専用」、「修正」、および「条件追加」を説明してきたことに留意されたい。しかし、所与の既定のクエリに関する１つまたは複数のクエリ条件を補足可能にするアクセス（例えば、テーブルＩＩＩのシナリオ２）など、他の種類のアクセスを提供することもできる。他の種類のアクセスは、既定のクエリの静的または動的な複製を作成すること（例えば、それぞれテーブルＩＶのシナリオ３およびテーブルＶのシナリオ４）を可能にする。したがって、本明細書で説明した、すべての種類のアクセスおよびアクセス権は、例示のためだけに提示されたものであり、本発明をそれらに限定するものではない。むしろ、クエリまたはクエリ条件、あるいはその両方に基づくセキュリティを提供するのに適した任意の種類のアクセスを広く企図したものである。
【００６６】
上記の説明は、本発明の諸実施形態を対象にしたものであるが、添付の特許請求の範囲で定められた本発明の基本的な範囲を逸脱することなく、本発明のその他の実施形態を考案することができる。
【図面の簡単な説明】
【００６７】
【図１】一実施形態における永続的に格納されるクエリを生成するための各ソフトウェア・コンポーネントの関係ビューを示す図である。
【図２】一実施形態における永続的に格納されたクエリへのアクセスを管理するための、図１の各ソフトウェア・コンポーネントの関係ビューを示す図である。
【図３】他の実施形態における永続的に格納されたクエリへのアクセスを管理するための、図１の各ソフトウェア・コンポーネントの関係ビューを示す図である。
【図４】一実施形態における永続的に格納されたクエリへのアクセスを管理するための方法を示す流れ図である。
【図５】一実施形態における永続的に格納されたクエリへのアクセスを管理するための方法を示す流れ図である。
【図６】一実施形態における永続的に格納されたクエリおよび関連するアクセス権の一覧を示す図である。
【符号の説明】
【００６８】
１１０  要求元エンティティ
１１０１〜Ｎ  要求元エンティティ
１１２  ローカル・データ・ソース
１１４  個人用複製
１２０  クエリ
１３０  データ・ソース
１３２  データ
１３４  アクセス権
１４０  クエリ・マネージャ
１５０  クエリ・リポジトリ
１５２  クエリ１
１５４  クエリ２
１５６  クエリＮ
１６０  データ要求
１７２  制限されたクエリ
１７６  制限されたクエリ
１８２  クエリＸ
１８４  アクセス権
１９０  ユーザ・インタフェース
【図１】
2006040277.tif 000003
【図２】
2006040277.tif 000004
【図３】
2006040277.tif 000005
【図４】
2006040277.tif 000006
【図５】
2006040277.tif 000007
【図６】
2006040277.tif 000008