(57)【要約】      （修正有）【課題】顧客関係管理（ＣＲＭ）データベースのための保護されたビューを提供すること。【解決手段】ユーザーは、例えば、統合ＤＢＭＳ／オペレーティングシステム認証プロトコルを使ってＤＢＭＳにログオンし、アプリケーションデータベースのインスタンスへのアクセス権を獲得することができる。しかしながら、データベースに含まれるオブジェクトへのさらなるアクセスは、データベースビューまでに限られる。さらに、このモデルは、ビュー識別子の一覧表示を獲得し、ビューを実行するためにのみビューへのアクセスを許容することができる。ビューは、それが対応するデータベースの特定のテーブルへの保護されたプロキシとして働く。さらに、ユーザの役割および特権をテーブル／行関連付けおよび特権にマッチさせる簡単な問い合わせ条件をビューに付与する。【選択図】図６
2006179009.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデータベーステーブルと、少なくとも１つのデータベースビューとを含むデータベースを作成するステップであって、前記データベーステーブルが、行ＩＤ、行業務ユニット、および行所有者を有する、ステップと、
ユーザに、前記データベースビューにアクセスすることおよび前記データベースビューを実行することを許可する一方で、前記ユーザが前記データベーステーブルを閲覧することおよび前記データベーステーブルに直接アクセスすることを防ぐステップであって、前記ユーザが、関連付けられたユーザＩＤ、関連付けられたユーザ業務ユニット、関連付けられたユーザ業務グループ、および関連付けられた特権の深さを有する、ステップと、および
前記ユーザＩＤ、前記ユーザ業務ユニット、前記ユーザ業務グループおよび前記特権の深さを含むパラメータセットからの少なくとも１つのパラメータと、前記行ＩＤ、前記行業務ユニット、および前記行所有者を含むパラメータセットからの少なくとも１つのパラメータに基づいて、前記データベースビューに前記データベーステーブルの行のセットを選択すること
を備えることを特徴とするデータベースの保護されたビューを作成するコンピュータ実行可能命令を有するコンピュータ可読媒体。
【請求項２】
前記ユーザＩＤ、前記ユーザ業務ユニット、前記ユーザ業務グループ、前記特権の深さ、前記行ＩＤ、前記行業務ユニット、および前記行所有者を獲得するためにデータベースルックアップを実行するステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記行ＩＤ、前記行業務ユニット、および前記行所有者を含むセットの少なくとも１つを獲得するためにデータベースルックアップを実行する間に、前記ユーザＩＤ、前記ユーザ業務ユニット、前記ユーザ業務グループ、および前記特権の深さを含むセットの少なくとも１つを獲得するためにキャッシュをサーチするステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記ユーザが前記行所有者であるかどうかと、
前記行業務ユニットが前記ユーザ業務ユニットであるかどうか、および前記特権の深さがローカルであるかどうかと、
前記行業務ユニットが前記ユーザ業務ユニットに関連付けられた業務ユニットのセットに含まれるかどうか、および前記特権の深さがディープであるかどうかと、
前記行業務ユニットが前記ユーザ業務グループに関連付けられた業務ユニットのセットの中に含まれるかどうか、および前記特権の深さがグローバルであるかどうかと、
前記行ＩＤが前記ユーザＩＤに関連付けられているかどうかとの内の
の少なくとも１つに基づいて行を選択することをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項５】
ユーザに、前記データベースビューを閲覧し、前記データベースビューにアクセスするための特権を割り当てるステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項６】
ユーザに、前記データベーステーブルを閲覧し、前記データベーステーブルにアクセスするための特権を割り当てないステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項７】
前記ビューがＳＱＬリストビューコマンドで一覧表示されるようにするステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項８】
前記特権は、ユーザが前記ビューの一覧表示を閲覧することを許可することを含むことを特徴とする請求項５に記載のコンピュータ可読媒体。
【請求項９】
前記特権は、ユーザが前記ビューを実行することを許可することを含むことを特徴とする請求項５に記載のコンピュータ可読媒体。
【請求項１０】
前記特権は、ユーザが前記ビューの属性のセットを決定することを許可することを含むことを特徴とする請求項５に記載のコンピュータ可読媒体。
【請求項１１】
前記選択された行に対するピックリスト評価と、前記選択された行に対する日時変換と、前記ビューパラメータに対する論理名から物理名への変換と、前記選択された行に対する物理名から論理名への変換との内の少なくとも１つを実行するステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１２】
前記ユーザが前記必要とされる特権の深さを持たない場合には、空のセットを返すステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１３】
前記ユーザが知られているユーザＩＤを持たない場合には、ヌルセットを返すステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１４】
データベース管理システムを使って前記データベーステーブルおよびビューへのアクセスを制御するステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１５】
前記ビュー結果を、前記データベース管理システムとの接続を介して非データベースアプリケーションに送るステップをさらに備えることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１６】
前記非データベースアプリケーションはスプレッドシートプログラムであることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
ユーザ認証サービスを提供するオペレーティングシステムと、
前記ユーザ認証サービスを使用してデータベース管理システムに接続するユーザを認証する、データベースのセットを管理するデータベース管理システムと、
顧客関係管理システムと、
前記データベース管理システムを介して前記顧客関係管理システムによってアクセスされる顧客データベースであって、顧客データベーステーブルを含む顧客データベースと、
前記顧客データベーステーブルの行を公開するために前記顧客データベースに格納されるビュー定義であって、前記データベース管理システムは、前記データベース管理システムにログオンするユーザが、前記ビュー定義の一覧表示を閲覧し、前記ビューを実行することを可能にする一方で、前記ユーザが前記顧客データベーステーブルを閲覧し、前記顧客データベーステーブルにアクセスするのを防ぎ、
さらに、前記ビューは、ユーザＩＤ、ユーザ業務ユニット、ユーザ業務グループ、および特権の深さを含むパラメータのセットからの少なくとも１つのパラメータと、行ＩＤ、行業務ユニット、および行所有者を含むパラメータのセットからの少なくとも１つのパラメータに基づいて、前記顧客データベーステーブルの行を公開する、ビュー定義とを備える
ことを特徴とするコンピュータシステム。
【請求項１８】
前記顧客関係管理システムは、複数のデータベーステーブルおよび複数のビュー定義を含み、さらに、各顧客データベーステーブルは対応するビュー定義を有することを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記ビュー定義は、
前記ビュー定義を実行するユーザが行所有者であるとき、
前記行業務ユニットが前記ユーザ業務ユニットであり、前記特権の深さがローカルであるとき、
前記行業務ユニットが前記ユーザ業務ユニットに関連付けられた業務ユニットのセットの中に含まれ、前記特権の深さがディープであるとき、
前記行業務ユニットが前記ユーザ業務グループに関連付けられた業務ユニットのセットの中に含まれ、前記特権の深さがグローバルであるとき、および
前記行ＩＤが前記ユーザＩＤと関連付けられているとき
の内の１つのときに前記顧客データベーステーブルの行を公開させることを特徴とする請求項１７に記載のシステム。
【請求項２０】
ビデオイメージを生成することのできる表示ユニットと、
入力装置と、
動作可能なように前記表示ユニットおよび前記入力装置に結合され、プロセッサおよび動作可能なように前記プロセッサに結合されたメモリを備える処理装置と、
ネットワークおよび前記処理装置に接続されたネットワークインターフェースと
を備え、
前記処理装置は、
テーブルおよびビューを含むデータベースを管理するようにプログラムされ、前記処理装置は、ユーザが前記テーブルにアクセスし、前記テーブルを閲覧するのを防ぐ一方で、前記ユーザが前記ビューにアクセスし、前記ビューを実行することを許可し
さらに、前記ビューは、ユーザＩＤ、ユーザ業務ユニット、ユーザ業務グループ、およびユーザの特権の深さを含むパラメータのセットからの少なくとも１つのパラメータと、行ＩＤ、行業務ユニット、および行所有者を含むパラメータのセットからの少なくとも１つのパラメータに基づいて前記テーブルの行のセットを選択する
ことを特徴とするコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データベース管理システムにおいてデータベーステーブルへの保護されたアクセスを提供する方法に関する。
【背景技術】
【０００２】
データベース管理システム（ＤＢＭＳ）において、データは、１つまたは複数のデータコンテナに格納される。各コンテナはレコードを含み、各レコード内のデータは、１つまたは複数のフィールドに編成される。関係データベースシステムでは、データコンテナをテーブルといい、レコードを行といい、フィールドを列という。オブジェクト指向データベースでは、データコンテナをオブジェクトクラスといい、レコードをオブジェクトといい、フィールドを属性という。他のデータベースアーキテクチャでは異なる述語を使用し得る。本願の特許請求の範囲は、どんな特定の種類のデータコンテナにもデータベースアーキテクチャにも限定されるものではない。
【０００３】
広範囲にわたるデータ処理要件を持つ多くのアプリケーションは、しばしば、アプリケーションデータの管理を助けるために独立のＤＢＭＳを利用する。そのようなアプリケーションには、顧客関係管理（「ＣＲＭ」）システムおよび企業資源計画（「ＥＲＰ」）システムを含む業務アプリケーションが含まれ得る。別個の、独立したＤＢＭＳを使用すれば、アプリケーション設計者がＤＢＭＳを利用して複雑なバルクデータ記憶機能を扱うことが可能になると同時に、設計者を自由にしてアプリケーション固有の機能の作成に集中させることができる。分業のメリットに加えて、そのような二重のシステムモデルは、セキュリティ機能がそのアプリケーションシステムに局在化される、簡単で一般に使用されるセキュリティフレームワークを提供する。例えば、ＤＢＭＳを使用するＣＲＭシステムを含む多くの専有の業務アプリケーションは、そのＣＲＭシステムを介してのみＣＲＭデータへのアクセスを提供し、それによって、データアクセスおよびデータセキュリティが、そのＣＲＭアプリケーションによって提供されるセキュリティ機能を介して管理されるようにする。このモデルでは、ＣＲＭシステムが、ＣＲＭアプリケーションから、または保守のためにシステム管理者によってのみアクセスされ得る、閉じた、専用のデータベースインスタンスを実施するのが一般的である。
【０００４】
図２に従来技術のシステムで使用されるセキュリティモデルを示す。このセキュリティモデルでは、ＤＢＭＳは、アプリケーションデータベースへの一般のアクセスを拒否し、そのソフトウェアシステム自体、または、おそらく、システム管理者だけがデータベースにアクセスすることを許可するようにセットアップされる。このように、アプリケーションシステムデータへのすべてのアクセスがアプリケーションによって制御される。
【０００５】
セキュリティがＤＢＭＳから離して導かれ、業務アプリケーション内に局在化される１つの理由は、典型的なＤＢＭＳのセキュリティ機能が、しばしば、アプリケーション固有のセキュリティ要件を処理するのに適さないことである。例えば、ＤＢＭＳの１つである、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒは、テーブルレベルに対してのみデータ保護を提供する。Ｍｉｃｒｏｓｏｆｔ  ＣＲＭなど、多くの業務アプリケーションは、特定の行レベルの保護を必要とし得る。行レベルのセキュリティでは、結果セットが、ユーザの役割または特権に基づいて、隠蔽された、または非公表のデータ行と共に返される。Ｍｉｃｒｏｓｏｆｔ  ＣＲＭなどのＣＲＭシステムは、普通、一般のソフトウェア実行可能プログラムを使って、またはアプリケーションプログラミングインターフェース（「ＡＰＩ」）を介してプログラマチックに、アプリケーションソフトウェアを介してこの行レベルのセキュリティを実行する。
【０００６】
多くの独立系ソフトウェアベンダがＤＢＭＳレベルのセキュリティを利用したがらない別の理由は、これが、ベンダ独自の設計考慮事項および特定のＤＢＭＳのサポートを必要とし得ることである。これは、ソフトウェアの相互互換性をより実施しにくくする。データベースセキュリティがアプリケーションソフトウェア自体を介して導かれるシステムでは、アプリケーションと共に使用される特定のＤＢＭＳのための考慮事項がはるかに少なくなるはずである。
【０００７】
この一般のセキュリティシステムは、ＣＲＭシステム設計者が局在化されたセキュリティを実施するのにうってつけであるが、しばしば、アプリケーションデータベースに格納されたデータに対して、そのアプリケーション自体が実行するのに適さない、または実行するように設計されていない分析を実行する要求または必要が発生することがある。Ｍｉｃｒｏｓｏｆｔ  ＣＲＭなどのＣＲＭシステムの例では、そのＣＲＭシステムが実行するように設計されていない顧客データの傾向、マーケティングパターン、需要統計、予算編成考慮事項、業務考慮事項などを分析する要求が発生し得る。さらに、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータを、企業資源計画（「ＥＲＰ」）アプリケーションなど、他の関連する業務アプリケーションと共有する好都合な方法もない。
【０００８】
既存のセキュリティモデルの下で、ＣＲＭデータへのアクセスを提供する１つの選択肢は、ＣＲＭシステムを介して必要なデータを抽出するＣＲＭシステムへのインターフェースを設計することである。これは、ユーザに、ＣＲＭシステムを介してデータを取り出すためのＡＰＩを提供することによってなされ得る。しかしながら、ＣＲＭシステムによっては、この手順は、耐え難いほどに時間がかかり、複雑になり得る。というのは、アプリケーションインターフェースを介してやりとりするためのコードのプログラミングに熟達していることが必要になるからである。この手法は、多くのデータ分析者が実行するのに適したプロセスではない。
【０００９】
Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ、Ｍｉｃｒｏｓｏｆｔ  ＰｏｗｅｒＰｏｉｎｔなど、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅスイート製品を含む、多くのアプリケーションは、ＳＱＬおよびＯＤＢＣをサポートする任意のＤＢＭＳにアクセスすることができる。ゆえに、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータベースへのアクセスを提供する別のより好都合な選択肢は、ＤＢＭＳを介してユーザグループへのアクセスのためにデータベース開くことである。しかしながら、前述のように、ＤＢＭＳは、普通、テーブルレベルまでしか保護することができず、テーブル中の行別情報をマイクロレベルで保護することができない。個々の業務は、データ分析者が、行データすべてではなく、それらの行の一部だけを見ることを必要とするかもしれない。この選択肢が実施された場合、従業員の業務役割を変更し、新しい業務役割を作り出すという点で、さらなる業務プロセス変更を行うことが必要になることがあり、多くの独立系ソフトウェアベンダ（「ＩＳＶ」）は、そのようなことを消費者に負わせることを望まないはずである。さらに、オープンデータベース接続を可能にすれば、業務を大きく害し得るアプリケーションデータ破損の危険が増大する。システム管理者に対してデータベースを開くことは妥当であるが、データ分析者グループに対して全アクセス権についてデータベースを開くことは、ＣＲＭデータベースなどのデータベースを危険にさらされやすくするセキュリティ上の問題を生じる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、保護されたアプリケーションのセキュリティ目的を損なわずに、ＤＢＭＳを介して、保護されたアプリケーションデータベース中のデータにアクセスする改善された方法およびシステムが求められている。
【課題を解決するための手段】
【００１１】
本願の特許請求の範囲には、セキュリティプロトコルを実施するビュー定義を使って、ＤＢＭＳの別の方法ではアクセスできないアプリケーションデータベース中の情報にアクセスする方法およびシステムが記載されている。以下では、ＣＲＭシステムの実施形態、具体的にはＭｉｃｒｏｓｏｆｔ  ＣＲＭに適用されるその具体的な方法およびシステムについて説明するが、このシステムは、他の保護されたアプリケーションデータベースにも適用され得ることを強調しておく。
【００１２】
特許請求される方法およびシステムは、ＤＢＭＳが、ＣＲＭデータベースへの個別アクセスを許容するように設定される多階層型セキュリティアクセスモデルとすることができる。ユーザは、例えば、統合ＤＢＭＳ／オペレーティングシステム認証プロトコルを使ってＤＢＭＳにログオンし、アプリケーションデータベースのインスタンスへのアクセス権を獲得することができる。しかしながら、データベースに含まれるオブジェクトへのさらなるアクセスは、データベースビューまでに限られる。さらに、このモデルは、ビュー識別子の一覧表示を獲得し、ビュー属性の一覧表示を獲得し、ビューを実行するためにのみビューへのアクセスを許容することができる。
【００１３】
ビューは、それが対応するデータベースの特定のテーブルへの保護されたプロキシとして働く。さらに、ユーザ役割およびユーザ特権をテーブル／行関連付けおよび特権にマッチさせる簡単な問い合わせ条件をビューに付与することによって、セキュリティが比較的に容易なやり方で使用できるようになる。さらに、アクセスがＤＢＭＳを介して実行されるため、ＣＲＭデータを処理するのに使用される補助的なアプリケーションとの相互運用性を提供するためにさらなるインターフェースメソッドをコーディングする必要がない。このようにして、コードに精通したデータ分析者を必要とせずに、効率のよいデータベース抽出および問い合わせフィルタリングを実行することができる。
【発明を実施するための最良の形態】
【００１４】
以下のテキストに多数の異なる実施形態の詳細な説明を記述するが、この説明の法的適用範囲は、添付の特許請求の範囲に記載される文言によって定義されることを理解されたい。この詳細な説明は、単なる例としてみなされるべきであり、あらゆる可能な実施形態を記述するものではない。というのは、あらゆる可能な実施形態を記述することは、不可能ではないにせよ、実際的でないからである。現在の技術、または本特許の出願日後に開発される技術を使って、多数の代替実施形態が実施され得るはずであり、それらもやはり本特許請求の範囲の範囲内に含まれることになる。
【００１５】
また、用語が、本特許において、「本明細書で使用される際、「      」という用語は．．．を意味するものと定義される」という文または類似の文を使って特に定義されない限り、その明白な、または通常の意味を越えて、その用語の意味を、特に、または暗黙的に限定することは意図されておらず、また、そのような用語を、（特許請求の範囲の文言以外の）本特許の任意の部分で行われる任意の記述に基づいて範囲が限定されると解釈してはならないことを理解されたい。添付の特許請求の範囲に記載される任意の用語が、本特許において、単一の意味と一致するように言及される限り、それは、読者を混乱させないよう、明確にするために行われるものにすぎず、そのような特許請求の用語が、暗黙的にも、別の方法によっても、その単一の意味だけに限定されることは意図されていない。最後に、請求項の要素が、どんな構造の記述もなく「手段」という語および機能を列挙することによって定義されない限り、どの請求項の要素の範囲も合衆国法典第３５巻第１１２条、第６項の適用に基づいて解釈されることは意図されていない。
【００１６】
図１に、特許請求される方法および装置のブロックのシステムが実施され得る適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、特許請求の範囲の方法および装置の用途または機能の範囲に関するどんな限定も示唆することを意図するものではない。また、コンピューティング環境１００は、例示的動作環境１００に示すいずれか１つの構成要素または構成要素の組合せに関連するどんな依存関係も要件も有するものと解釈してはならない。
【００１７】
特許請求される方法および装置のブロックは、他の多数の汎用または専用コンピューティングシステム環境または構成と共に動作する。特許請求の範囲の方法または装置と共に使用するのに適し得る、よく知られているコンピューティングシステム、環境、および／または構成の例には、それだけに限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは機器のいずれかを含む分散コンピューティング環境などが含まれる。
【００１８】
特許請求される方法および装置のブロックは、コンピュータにより実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などが含まれる。また、これらの方法および装置は、通信ネットワークを介してリンクされたリモート処理装置によりタスクが実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルとリモート両方のコンピュータ記憶媒体に置くことができる。
【００１９】
図１を参照すると、特許請求される方法および装置のブロックを実施する例示的システムは、コンピュータ１１０の形で汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、それだけに限らないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれ得る。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれでもよい。例をあげると、それだけに限らないが、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００２０】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされ得る任意の利用可能な媒体とすることができ、それには揮発性と不揮発性両方の媒体、取り外し可能と取り外し不能両方の媒体が含まれる。例をあげると、それだけに限らないが、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造体、プログラムモジュールまたはその他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性と不揮発性両方、取り外し可能と取り外し不能両方の媒体が含まれる。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリや他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）などの光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、あるいは所望の情報を格納するのに使用でき、コンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュールまたはその他のデータを、搬送波や他の搬送機構などの変調されたデータ信号中に具現化されるものであり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、その特性の１つまたは複数が、その信号に情報を符号化するような方式で設定され、または変更されている信号を意味する。例をあげると、それだけに限らないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。また、上記のいずれかの組合せも、コンピュータ可読媒体の範囲内に含めるべきである。
【００２１】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形でコンピュータ記憶媒体を含む。基本入出力システム（ＢＩＯＳ）１３３は、始動時などに、コンピュータ１１０内の諸要素間での情報転送を支援する基本ルーチンを含み、通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、通常、処理装置１２０から直ちにアクセス可能であり、かつ／または処理装置１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。例として、それだけに限らないが、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２２】
また、コンピュータ１１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も含み得る。例にすぎないが、図１に、取り外し不能、不揮発性磁気媒体との間で読取りまたは書込みを行うハードディスクドライブ１４１、取り外し可能、不揮発性磁気ディスク１５２との間で読取りまたは書込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの取り外し可能、不揮発性光ディスク１５６との間で読取りまたは書込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用され得る他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通常、インターフェース１４０などの取り外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などの取り外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００２３】
前述の、図１に示す各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造体、プログラムモジュールおよびその他のデータの記憶を提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともそれらが異なるコピーであることを示すために、図では異なる番号を付与してある。ユーザは、キーボード１６２や、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれ得る。上記その他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインターフェースおよびバス構造によっても接続され得る。また、モニタ１９１または他の種類の表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。また、モニタ１９１に加えて、コンピュータは、スピーカ１９７やプリンタ１９６など他の周辺出力装置を含むこともでき、それらは、出力周辺装置インターフェース１９５を介して接続され得る。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他一般のネットワークノードとすることができ、図１にはメモリ記憶装置１８１だけが示されているが、通常は、コンピュータ１１０に関連して前述した要素の多くまたはすべてを含まれる。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含まれ得る。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。
【００２５】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ１１０はネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、通常、モデム１７２またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続され得る。ネットワーク化された環境では、コンピュータ１１０に関連して示すプログラムモジュール、またはその一部は、リモートのメモリ記憶装置にも格納され得る。例として、それだけに限らないが、図１に、リモートアプリケーションプログラム１８５を、メモリ装置１８１上にあるものとして示す。図示のネットワーク接続は例であり、コンピュータ間での通信リンクを確立する他の手段も使用され得ることが理解されよう。
【００２６】
図２に、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭシステム２００およびＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ２１０を使用した既存のＣＲＭ／ＤＢＭＳモデルの一般的な構成を示す。現在、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭは、ブロック２１５に示すように、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭシステム２００自体またはＤＢＭＳの管理を許可されたシステム管理者２２０によるアクセスを除いて、ＤＢＭＳを介したＣＲＭデータベースへのすべてのアクセスを拒否する。しかしながら、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭは、そのユーザインターフェースに加えて、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータベースのデータにアクセスするもう１つの手段を提供する。このアクセスは、ＸＭＬ形式の問い合わせコマンドコードである、Ｆｅｔｃｈ  ＸＭＬを使用するＥｘｅｃｕｔｅＱｕｅｒｙ２３０というＭｉｃｒｏｓｏｆｔ  ＣＲＭアプリケーションプログラミングインターフェース（「ＡＰＩ」）を使用して達成される。ユーザ２４０は、Ｆｅｔｃｈ  ＸＭＬコマンドを書き、これらのコマンドをＥｘｅｃｕｔｅＱｕｅｒｙ２３０に送ることができる。次いで、ＥｘｅｃｕｔｅＱｕｅｒｙは、Ｆｅｔｃｈ  ＸＭＬ問い合わせコマンドを解釈し、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータベース２５０にアクセスし、結果セットを返すことができる。この方法は、ＣＲＭ／ＤＢＭＳ構造のセキュリティをバイパスするように見えるが、このＡＰＩは、実際には、結果セットを提供する前に、その問い合わせコマンドに対してＭｉｃｒｏｓｏｆｔ  ＣＲＭに基づくセキュリティフィルタリングを実行する。前述のように、典型的なユーザは、普通、アプリケーションからデータを抽出するためのアプリケーションレベルコードを書くのに必要なものを十分に持っていない。ＥｘｅｃｕｔｅＱｕｅｒｙインターフェース２３０を用いてさえも、Ｆｅｔｃｈ  ＸＭＬを書くのは、複雑で、時間がかかる。
【００２７】
図２に、さらに、データベーステーブル２５１、２６１のセットを含むいくつかのデータベース２５０、２６０を管理するＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ  ２１０を示す。しばしば、特定のアプリケーションのテーブルのセットを収容するのに別個のデータベースインスタンスが使用され得る。Ｍｉｃｒｏｓｏｆｔ  ＣＲＭシステム２００の例では、ＤＢＭＳ２１０は、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータベース２５０として使用するために指定された１つのデータベースを有することができ、このデータベースは、顧客情報やＣＲＭシステムに関連する様々なタスク情報など、ＣＲＭシステムに関連するデータの大部分を格納し得る。ＤＢＭＳは、いくつかのデータベースを管理し、１つのアプリケーションデータベースだけに、特許請求される方法およびシステムを実施させることができる。ＣＲＭデータベース２５０では、一般のユーザ２４０については、ＣＲＭデータベース２５０へのアクセスがブロックされ、ＣＲＭデータへのすべてのアクセスは、実行可能プログラムによって、またはＥｘｅｃｕｔｅＱｕｅｒｙ２３０などのＡＰＩによってプログラマチックに、ＣＲＭシステム２００を介して行われなければならないことが図２に示されている。
【００２８】
ＣＲＭデータベース３１０にアクセスするＭｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ３００の使用を示す図３に、特許請求の範囲の業務プロセスの一実施形態を示すことができる。Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌは、アプリケーションデータを分析する一般的なツールである。Ｍｉｃｒｏｓｏｆｔスーツは、ＳＱＬおよびＯＤＢＣを使った任意のＤＢＭＳへの接続機能を提供するので、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌは、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ３２０に接続し、その後、Ｍｉｃｒｏｓｏｆｔ  ＣＲＭデータベース３１０に接続することができる。実際、ＳＱＬおよびＯＤＢＣを使ったＤＢＭＳへの接続機能を提供する多くのサードパーティシステム３３０は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ３２０に接続することができる。次いで、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌは、個々のＣＲＭテーブル３５０に対応する利用可能なビュー３４０を問い合わせ、情報を要求することができる。さらに、この要求は、ユーザ３６０の役割および特権情報に基づいて、行でフィルタリングされた結果（ｒｏｗ  ｆｉｌｔｅｒｅｄ  ｒｅｓｕｌｔ）を提供し得る。従来技術のシステムは、引き続き、完全にオープンなデータベース、またはＣＲＭシステム自体へのカスタムインターフェースを必要とし得る。また、従来技術のシステムは、特定のユーザおよび行に割り当てられた役割および特権に基づいて行がフィルタリングされ得る、特許請求されるシステムのいくつかの実施形態の独自の行フィルタリング機能を提供しないこともある。
【００２９】
また、図３には、ＣＲＭデータベース３１０がテーブル３５０のセットに対応するビュー３４０のセットを持つことも示されている。各テーブル３５０は、ＤＢＭＳを介してデータベースにログオンするユーザに対して保護される。さらに、各テーブル３５０は、実際には、セキュリティを高めるために一般のユーザ３６０から隠蔽され得る（点線で示す）。ビュー３４０は、データベーステーブル３５０へのアクセスのためのプロキシとして働くことができる。ビュー３４０は見ることができるが、それらの実際の定義は、ユーザがそのビューの実装を発見するのを防ぐために保護され得ることに留意されたい。場合によっては、ビューへのアクセス権を、利用可能なビューの一覧表示と、ビュー実行のパラメータの一覧表示と、選択されたビューを実行する実行特権とを使用可能にすることに限定するのが適切なこともある。
【００３０】
図４に、特許請求の範囲の一実施形態を実施するためのＤＢＭＳのパラメータ設定を示す。これらのパラメータ設定は、ユーザ固有のものとすることができ、個々の状況に応じてシステム管理者によって変更され得る。例えば、システム管理者が業務開発者にビューの定義の変更を許可するときがあり得るが、その場合、業務開発者には、変更特権が与えられる。他の状況では、図４に列挙する設定以上のどんな特権を提供することも適当でない。例えば、販売員は、おそらく、決してビュー定義を変更する権限を与えられることがないであろうはずである。というのは、これは、その販売員が、他の販売員に関連する許可されていないデータを見ることを可能にするからである。これらの設定は大部分のＤＢＭＳユーザに適用されるが、システム管理者は、通常、テーブルとビューの両方を含む、データおよびデータベースオブジェクトへの全アクセス権を持つ。
【００３１】
図５に、特許請求の範囲の一実施形態のビュー定義の流れ図５００を示す。この流れ図において、セキュリティルーチン５０１は、データの役割５０２および特権５０３をチェックすることができる。特権チェック５０３に失敗した場合、レコードは、空のデータセットと共に戻される。役割チェック５０２に失敗すると、レコード５０９を完全に隠蔽する結果となる。また、セキュリティフィルタリングに加えて、ビューは、データ分析者がデータセット５０８をより扱いやすくするために、ピックリスト変換（ｐｉｃｋ  ｌｉｓｔ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ）５０５、物理列名の論理データベース名へのマッピング５０４、５０７、および日時変換５０６を実施することができる。日時変換は、１つの形式を持つテーブルの日付または時刻の属性を取り出し、アプリケーションに基づく形式など、第２の形式に変換するのに使用することができる。ピックリスト変換は、ピックリスト値に記述ストリングを提供するのに使用され得る。例えば、出荷アクションリストのピックリスト変換は、０、１、２、３などのデータベースピックリスト値をＦｅｄＥｘ、ＵＰＳ、ＵＳＰｏｓｔＭａｉｌなどに変換する。また、物理列名の論理データベース名へのマッピングも、データベース命名スキーマで使用される列ごとの名前に、ユーザにとって分かりやすい名前が割り当てられるようにすることができる。
【００３２】
ＣＲＭシステムは、そのセキュリティ実装に業務階層を統合することができ、しばしば、そのデータエンティティに、所有者および業務ユニットに対応するフィールドを含む。また、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）などのオペレーティングシステムも、特権のセットを持つユーザ役割をグループに付属させる階層構造を含むことができる。特許請求の範囲の一実施形態では、保護されたビューは、既存のＣＲＭアプリケーションおよびオペレーティングシステム環境を活用する階層的所有権構造（ｈｉｅｒａｒｃｈｉｃａｌ  ｏｗｎｅｒｓｈｉｐ  ｓｔｒｕｃｔｕｒｅ）に基づいて行を返すように設計され得る。この潜在的セキュリティチェックモデルを図６に示す。アクセスチェック手順６００は、ブロック６０１に示すように、まず、ユーザがそのオブジェクトの所有者であるかどうか判定する。そうである場合、ブロック６０２でユーザは全アクセス権を持つ。ユーザがオブジェクト所有者でない場合、ルーチン６１０は、オブジェクトの所有権所属（ｏｗｎｅｒｓｈｉｐ  ａｆｆｉｌｉａｔｉｏｎ）に基づいてそのオブジェクトにアクセスするのに必要な特権の深さを決定する。ユーザおよびオブジェクトが同じ業務ユニットに属する場合（ブロック６１１）、最低限の深さはローカルである（６１２）。オブジェクトの所有業務ユニットがユーザの業務ユニットと同じである場合（ブロック６１３）、最低限必要な深さはディープである（６１４）。オブジェクトがユーザと同じ組織にある場合（ブロック６１５）、最低限必要な深さはグローバルである（６１６）。最低限の特権の深さが計算された後、ブロック６２０、６２１、および６２２で、ユーザの特権が最低限必要な深さを持つかどうかチェックする。ユーザの特権が最低限必要な深さ以上を持つとブロック６２０、６２１、および６２２で判定された場合、ブロック６０２でアクセス権が付与される。そうでない場合、ルーチン６００は、ブロック６３０で、そのオブジェクトがそのユーザまたはユーザがそのメンバであるチームと明示的に共用されているかどうか判定する。そうである場合、ブロック６０２でアクセス権が付与され、そうでない場合ブロック６４０でアクセス権が拒否される。
【００３３】
図６に示す特権の深さは、ベーシック、ローカル、ディープ、グローバルとして分類される。ベーシックの特権の深さを持つユーザは、そのユーザによって所有され、そのユーザと共用され、またはそのユーザがそのメンバであるチームと共用されている任意のオブジェクトについての権限を持つ。ローカルの特権の深さを持つユーザは、ベーシックの特権の深さの権限を持つと共に、そのユーザの業務ユニットに含まれる任意のオブジェクトについての権限も持つ。ディープの特権の深さを持つユーザは、ローカルの特権の深さの権限を持つと共に、そのユーザが属する業務ユニットの下位業務に含まれる任意のオブジェクトの権限も持つ。これは、すぐ下のレベルの下位業務だけでなく、任意の深さの下位業務を含み、ゆえに、下位業務の下位業務を含む。グローバルの特権の深さを持つユーザは、ユーザの組織中の任意のオブジェクトについての権限を持つ（ゆえに、グローバルは、その他の特権レベルすべてのスーパーセットである）。
【００３４】
図６のセキュリティプロセスを実施するように使用され得るＳＱＬステートメントを以下に示す。
【００３５】
【表１】
2006179009.tif 000003
【００３６】
【表２】
2006179009.tif 000004
【００３７】
セキュリティ記述子フィールドを使ってＡＰＩベースのセキュリティ処理のためのバルク命令を提供する既存のセキュリティモデルとは異なり、本発明の特許請求の範囲は、各データベースオブジェクトの個別の所有権属性、すなわち、多くの場合すでにオブジェクトの一般の属性構造の一部である属性を参照するだけのセキュリティモデルを利用することができる。前述のように、セキュリティ特権は、所有権所属に基づくセットで処理され得る。このようにして、処理がより高速になり得る。さらに、特許請求される方法およびシステムのセキュリティモデルは、ＡＰＩを利用するのではなく、完全にＤＢＭＳにおいて行を処理するので、処理がより高速になり得る。というのは、専用のＤＢＭＳ処理内部命令は、たいていの場合、通信チャネルを介して行セットを取り出し、大きなセキュリティ記述子を解釈するＡＰＩよりも高速になるからである。
【００３８】
さらに、ＣＲＭ／ＤＢＭＳシステムのユーザは、今、保護されたビューによって提供される仮想テーブルを介してデータベーステーブルと連係することができる。ユーザは、オペレーティングシステムと統合されたセキュリティシステムを使ってＳＱＬ／ＯＤＢＣドライバと互換性のある多くの他の分析ツールを用いてデータ分析を実行することができる。それは、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅのようなアプリケーションスーツのためのシームレスな統合を提供する。というのは、ユーザは、もはや、その基礎をなす実装を知る必要なしに、問い合わせウィザードのようなツールを使って、データベーステーブルを開くのと同様に、ビューを開くことができるからである。
【００３９】
一例として、ユーザは、保護されたビューを使って、ＣＲＭ関連データを、そのデータに対して多数の統計操作が実行され得る、Ｅｘｃｅｌなどのスプレッドシートプログラムにインポートすることができる。これは、簡単なポップアップ式問い合わせウィザードタイプのツールを使用することができるので、どんなコンピュータコーディング言語も知らずに達成することができる。さらに、このインポートは、セキュリティがＤＢＭＳに局在化されるため、データベースにアクセスする別個のセキュリティ手順を介して進むことを必要とせずに達成することができる。最後に、このインポートおよび分析は、実際のデータではなくデータのビューを操作することによって、データベース中の基礎をなすデータを変更せずに達成することができる。
【００４０】
以上のテキストに多数の異なる実施形態の詳細な説明を記述したが、本特許の範囲は、添付の特許請求の範囲に記載される文言によって定義されることを理解されたい。この詳細な説明は、例にすぎないものとみなされるべきであり、あらゆる可能な実施形態を記述するものではない。というのは、あらゆる可能な実施形態を記述することは、不可能ではないにせよ、実際的でないからである。現在の技術、または本特許の出願日後に開発される技術を使って、多数の代替実施形態が実施され得るものであり、それらもやはり特許請求の範囲の範囲内に含まれることになる。
【００４１】
ゆえに、本特許請求の範囲の精神および範囲を逸脱することなく、本明細書で説明し、図示した技術および構造の多くの変更および変形が行われ得る。したがって、本明細書で説明した方法および装置は例示にすぎず、本特許請求の範囲の範囲を限定するものではないことを理解されたい。
【図面の簡単な説明】
【００４２】
【図１】特許請求の範囲に従って動作し得るコンピューティングシステムを示すブロック図である。
【図２】Ｍｉｃｒｏｓｏｆｔ  ＣＲＭおよびＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒを使用する既存のＣＲＭ／ＤＢＭＳモデルの一般的な構成を示す図である。
【図３】特許請求されるシステムの一実施形態を示す図である。
【図４】特許請求の範囲の方法およびシステムを実施するためのＤＢＭＳの可能なセキュリティパラメータセットを示す図である。
【図５】特許請求の範囲の一実施形態のビュー定義を示す流れ図である。
【図６】保護されたビューを使って実施されるセキュリティ手順を示す図である。
【符号の説明】
【００４３】
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラムデータ
１４０  取り外し不能不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラムデータ
１５０  取り外し可能不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺装置インターフェース
１９６  プリンタ
１９７  スピーカ
【図１】
2006179009.tif 000005
【図２】
2006179009.tif 000006
【図３】
2006179009.tif 000007
【図４】
2006179009.tif 000008
【図５】
2006179009.tif 000009
【図６】
2006179009.tif 000010