JP4787617B2 - アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法 - Google Patents

アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法 Download PDF

Info

Publication number
JP4787617B2
JP4787617B2 JP2005507103A JP2005507103A JP4787617B2 JP 4787617 B2 JP4787617 B2 JP 4787617B2 JP 2005507103 A JP2005507103 A JP 2005507103A JP 2005507103 A JP2005507103 A JP 2005507103A JP 4787617 B2 JP4787617 B2 JP 4787617B2
Authority
JP
Japan
Prior art keywords
application
specific
server
privileges
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2005507103A
Other languages
English (en)
Other versions
JP2006505877A (ja
Inventor
イディキュラ,サム
アガルバル,ニプン
マーシー,ラビ
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2006505877A publication Critical patent/JP2006505877A/ja
Application granted granted Critical
Publication of JP4787617B2 publication Critical patent/JP4787617B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/956Hierarchical

Description

発明の分野
この発明は、アプリケーションの動作へのユーザアクセスを制御することに関し、特に、アプリケーションの動作へのユーザアクセスを、アプリケーションとは別個のサーバを用いて制御することに関する。
発明の背景
コンピュータ処理相互作用のクライアント−サーバモデルは、幅広く用いられている。クライアント−サーバモデルによれば、クライアントプロセスは、要求を含むメッセージをサーバプロセスに送信し、サーバプロセスは、サービスを提供することによって応答する。サーバプロセスはまた、クライアントプロセスへの応答とともにメッセージを返してもよい。クライアントプロセスおよびサーバプロセスは往々にして、ホストと呼ばれる異なるコンピュータ装置上で実行され、ネットワーク通信用の1つ以上のプロトコルを用いて、ネットワークを介して通信する。
「サーバ」という用語は従来、サービスを提供するプロセス、またはプロセスが動作するホストコンピュータを指すために使用されている。同様に、「クライアント」という用語は従来、要求を行なうプロセス、またはプロセスが動作するホストコンピュータを指すために使用される。ここで使用されているように、「クライアント」および「サーバ」という用語は、文脈から特に明らかとなっていない限り、ホストコンピュータというよりもむしろプロセスを指している。
データベースサーバは、データベースクライアントからの要求に応答して、データベースサービスを提供する。たとえば、データベースサーバは、要求において受信されたデータを、データベースサーバによって管理されるある特定のデータベース内の1つ以上のデータコンテナに書込む。または、データベースサーバは、要求において特定された条件を満たすそれらのコンテナのうちの1つ以上から、データを検索する。もしくは、それは両方とも行なう。多くの状況において、データベースクライアントは、データベースサーバとは異なる中層のアプリケーションであり、それは1人以上のアプリケーションユーザのために会計サービスといった他のサービスを実行する。アプリケーション自体はクライアント−サーバ動作用に構成されていてもよく、そのため、アプリケーションユーザは、アプリケーションサーバにアプリケーション要求を行なうアプリケーションクライアントを動作させる。
データベースサーバのすべてのユーザに、データベースサーバによって管理される全データベースオブジェクト内の全データへのアクセスが付与されるわけではない。したがって、データベース内のデータへのデータベースユーザのアクセスを制御するアクセス制御を実現することは、データベースサーバにとってよくあることである。多くのアクセス制御メカニズムが公知である。たとえば、マーシー(Murthy)に記載されている均一なアクセス制御メカニズムは、データベースユーザには記憶コンテナの階層、または定義された列を有するテーブルのリレーショナルデータベース、もしくはその双方に編成されているように見えるデータ内容についてのアクセス制御を提供する。
アクセス制御はしばしば、データベース動作を実行する特権として実現されており、データベース内のある特定のデータ項目またはデータ項目の群について、1組の1つ以上の
特権がデータベースの各ユーザに関連付けられている。たとえば、基本データベース動作、たとえばテーブルなどのデータベースオブジェクト内に存在し得るデータ項目のデータを読出す、挿入する、削除する動作、またはデータベースオブジェクト自体を作成する、修正する、または削除する動作を実行するために、基本的な特権が定義されている。
基本データベース動作を実行する特権は、データベースのいくつかのレベルのうちのある特定のレベルに関連付けられてもよい。データベースのレベルは、たとえば、データ項目のレベル、いくつかのデータ項目のデータベースオブジェクトのレベル、いくつかのデータベースオブジェクトの階層のノードのレベル、および、データベースオブジェクトのいくつかの子孫ノードの親ノードのレベルを含む。ある特権がある特定のレベルに関連付けられると、その特権はそのレベルでの全項目に当てはまるかもしれない。
いくつかのデータベース管理システムでは、特権の階層が定義されていてもよく、階層における各ノードは、データベースの1つ以上のレベルに対して基本動作のある組合せを実行する特権を表わしている。特権のこの階層をサポートするため、いくつかのデータベース管理システムにおけるデータベースサーバは、特権を記述し、ユーザおよびデータ項目を特権と関連付け、特権についての情報を高速メモリキャッシュに効率よく記憶および検索して、データベースユーザが、要求されたデータ項目またはデータベースオブジェクトに対して、要求されたデータベース動作を実行してもよいかどうかを迅速に判断するインフラストラクチャを提供する。
データベース動作を実行する特権に基づいてデータベースへのアクセス制御をサポートするインフラストラクチャは、データベース動作の細分性でアクセス制御を提供する。しかしながら、データベース動作レベルの細分性でアクセス制御を提供する能力は、データベースを使用するアプリケーションにおいて定義されている動作に基づいてアクセスを制御したい場合には、特に有用ではない。そのような動作をここに「アプリケーション特有の」動作と呼ぶ。
たとえば、ある企業のために発注書を管理するアプリケーションでは、アプリケーション特有の動作は、新しい発注書の作成、発注書の承認、購入を行なうための発注書の発行、ある特定の発注書への請求書の関連付け、配送された注文の受領確認、および関連付けられた請求書の支払による発注書の清算を含む。あるアプリケーションユーザにこれらのアプリケーション特有の動作の一部のみを実行する特権が与えられる場合、アクセス制御は、アプリケーション特有の動作のレベルの細分性で提供されなければならない。アクセス制御のこのレベルの細分性はデータベースサーバによって提供されないため、アプリケーション特有の動作の特権を使用する各アプリケーションの開発者は、異なるユーザのための異なる特権を管理するアクセス制御ソフトウェアを設計し、実現しなければならない。
各アプリケーションについてアクセス制御ソフトウェアを開発することにはいくつかの欠点がある。一欠点は、アクセス制御を実現するソフトウェアを生成するために開発資源が消費されるため、アプリケーションの開発費が増加することである。アクセス制御がより高度化するにつれ、開発費もより高くなる。逆に、アクセス制御の開発にかける金額が少なくなるほど、実現されるアクセス制御は高度ではなくなる。別の欠点は、新しいアプリケーション用に開発されるアクセス制御が往々にして、長年にわたっていくつかのシステムおよびサーバ用に既に開発されているアクセス制御ほど効率的ではないことである。たとえば、データベースサーバの中には、ユーザ特権を示すデータの効率的なキャッシングの使用を含め、計算用資源を最小限しか使用しないアクセス制御を備えて進化してきた
ものもある。
さらに、個別に開発されたアクセス制御メカニズムを有する多数のアプリケーションのアドミニストレータは、特権の階層を表現し、それらの特権へのアプリケーションユーザおよびデータ項目の関連付けを表現するために、異質のインターフェイスに取組まなければならない場合がある。多数のアプリケーションにわたって同じアクセス制御インフラストラクチャが利用可能である場合、それら多数のアプリケーションについてのアドミニストレータは、特権および関連するユーザならびにデータ項目についての情報を、より少ない集中力およびエラーでより容易に入力することができる。
前述の記載に基づき、データベースアプリケーションが、データベースサーバの効率的なアクセス制御メカニズムを利用できるようにするための明らかな要望が存在している。どのアプリケーションも、別個のサーバにおいて既に実現されている高度化した、かつ効率的なアクセス制御メカニズムを利用できるようにするための要望が、一般に存在している。
この項に記載されたアプローチは追求可能であるが、それらは必ずしも、以前に考えられまたは追求されてきたアプローチであるとは限らない。したがって、ここに特に示されていない限り、この項に記載されたアプローチは、この背景の項に存在するというだけの理由で、本出願の請求項に対する先行技術として考えられるべきではない。
この発明を、添付図面の図において、限定のためではなく例示のために説明する。図中、同じ参照番号は同様の要素を示す。
発明の詳細な説明
アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法および装置が記載される。以下の記載では、説明のため、数多くの特定の詳細がこの発明の完全な理解を提供するために述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置はブロック図の形で示される。
以下に、ある実施例が、データベースサーバ、およびデータベースクライアントであるアプリケーションの状況で説明される。この状況では、アプリケーションはデータベースサーバを、アプリケーション用のデータを記憶するためだけでなく、データベース動作ではない代わり、アプリケーションに特有の動作である動作についてアクセス制御をサポートするためにも使用する。この発明の実施例はこの状況に限定されないが、アプリケーション特有の動作に対するアクセス制御をサポートするために任意の別個のサーバに頼る任意のアプリケーションを含んでいてもよい。アプリケーションとサーバとは別個のプロセスであるが、実施例によっては、双方が同じコンピュータホスト上で実行されてもよい。
一実施例によれば、アプリケーション特有の動作のためのアクセス制御は、アプリケーションが、第1の組のアプリケーション特有の動作を実行するための特権の第1の階層を記述するデータをサーバに送信することによって、達成される。アプリケーションはまた、サーバに、アプリケーションの第1のユーザを特権の第1の階級におけるある特権に関連付けるデータを送信する。ある特定のユーザがある特定のアプリケーション特有の動作を実行するよう許可されているかどうかを判断するために、アプリケーションはサーバに要求を送信する。要求は、特定のユーザおよび特定のアプリケーション特有の動作を示す。要求の受信に応答して、サーバは、アプリケーションから以前に受信したデータに基づき、ある特定のユーザがアプリケーションにある特定のアプリケーション特有の動作を実
行させてもよいかどうかを判断する。応答がアプリケーションに送信される。応答は、その特定のユーザがアプリケーションにその特定のアプリケーション特有の動作を実行させてもよいかどうかを示す。
これらの手法のいくつかの実施例では、アプリケーションによってサーバに送信されたデータは、アプリケーションの第1のユーザを、サーバに記憶された特定の型のデータ項目についての第1の階層におけるある特権と関連付ける。実施例によっては、アプリケーションはサーバに、いくつかの異なるユーザ、またはいくつかの異なるデータ項目、もしくはその双方についての特権情報を提供してもよい。
アクセス制御は一般に、動作を実行する特権の階層として表現可能である。階層は周知の数学的構成体である。一般に、階層は多数レベルのノードから構成されている。各レベルのノードは各々、異なるレベルの1つ以上のノードにリンクされている。トップレベルの下のレベルの各ノードは、上のレベルの1つ以上の親ノードの子ノードである。ツリー階層では、各子ノードは親ノードを1つしか持たないが、親ノードは多数の子ノードを有していてもよい。ツリー階層では、親ノードがリンクされていないノードはルートノードであり、子ノードがリンクされていないノードはリーフノードである。ツリー階層は通常、単一のルートノードを有する。ツリー階層は、1つ以上の子特権を含む親特権を記述するために使用可能である。
特権の階層において、各リーフリードは、アクセスが制御されるべき1つのアプリケーション特有の動作を実行する特権に対応している。2つ以上のアプリケーション特有の動作を実行する特権は、2つ以上のアプリケーション特有の動作に対応するリーフノードについての階層における先祖ノードに対応している。
図1は、ある企業の発注書(PO)を管理するアプリケーションのためにアプリケーション特有の動作を実行する特権の例示的な階層100を示すブロック図である。例示的な階層100では、各ノード110は、発注書(PO)に関連する1つ以上のアプリケーション特有の動作を実行する特権に対応している。省略記号111は、追加の特権をもしあれば表わす追加のノードを表わしている。他の実施例では、特権の階層は、より多いまたはより少ないレベルの、より多いまたはより少ないノードを有していてもよい。
階層100における各リーフノードは、アクセスが制御されるべきアプリケーション特有の動作のうちの1つを実行する各特権に対応している。例示された実施例では、単独のアプリケーション特有の動作についての特権、および対応するリーフノードを表1に列挙する。これらの特権のいずれも、アプリケーションについてのアドミニストレータの判断で、アプリケーションのどのユーザに付与されてもよい。
Figure 0004787617
階層100はまた、2つ以上のアプリケーション特有の動作についての特権を表わす親ノードを含んでいる。親ノード110cでのApprove_POと名付けられた特権は、ノード110gでのサービスを承認する特権、ノード110hでの設備を承認する特権、ノード110iでの供給品を承認する特権を含んでいる。親ノード110eでのAccept_Deliveryと名付けられた特権は、ノード110jでの配送されたサービスを受入れる特権、ノード110kでの配送された設備を受入れる特権、ノード110lでの配送された供給品を受入れる特権を含んでいる。そのような親ノードでの特権は、部長といったアプリケーションのある監督ユーザに付与されてもよい。ノード110aでのPO_ALLについての特権は、ノード110bでのPOを作成する特権、ノード110cでのPOを承認する特権、ノード110dでの承認されたPOの購入を行なう特権、ノード110eでのPOの下で購入品の配送を受入れる特権、およびノード110fでのPOの下で配送された購入品についての支払を行なう特権を含んでいる。PO_ALLについての特権は、発注書に関するアプリケーション特有の動作をすべて実行する特権を含む。
構造的概要
図2は、一実施例に従った、アプリケーション特有の動作に対するアクセス制御を、別個のデータベースサーバを用いてサポートするためのシステム200を例示するブロック図である。システム200は、アプリケーション220と、アプリケーションクライアント210と、データベースサーバ230とを含む。アプリケーション220は、1つ以上のアプリケーションクライアント210からの1つ以上のコマンドに応答して、1つ以上のアプリケーション特有の動作を実行する。
データベースサーバ230は、アプリケーション220のために1つ以上のデータベースオブジェクトのデータベースを管理する。データベースサーバ230は、永続的ストレージ240およびキャッシュ232を、データベースサーバ230の高速だが揮発性のメモリに含む。なお、データベースサーバ230はプロセスである。永続的ストレージ240およびキャッシュ232は、データベースサーバプロセス230に割当てられたホスト
の永続的ストレージおよびホストのメモリの一部である。その結果、アプリケーション220およびデータベースサーバ230は、ホストの永続的ストレージの異なる部分およびホストのメモリの異なる部分を用いて、またはホストのメモリの同じ部分を異なる時間に用いて、同じホスト上で実行されてもよい。データベースサーバの永続的ストレージ240内に、データベースサーバ230は、1つ以上のデータ構造242、244、および、1つ以上のデータベースオブジェクト(図示せず)内の1つ以上のデータ項目を記憶させる。データ構造242は、アプリケーション220のための1つ以上の特権階層を表わすデータを保持する。データ構造244は、アプリケーション220の1人以上のユーザおよび1つ以上のデータ項目を、アプリケーション220のためにデータ構造242に表わされた1つ以上の特権階層における1つ以上の特権と関連付けるデータを保持する。図2では2つのデータ構造として図示されているものの、他の実施例では、データ構造242、244のデータは、より多いまたはより少ないデータ構造に記憶されてもよい。
機能的概要
例示された実施例によれば、アプリケーション220がクライアントのために、アクセスが制御されるアプリケーション特有の動作を実行する前に、アプリケーション220は、そのクライアントに関連するユーザが、アプリケーション220がある特定のデータ項目に対してアプリケーション特有の動作を実行することを許可する特権を有するかどうかを判断するために、データベースサーバ230に要求を送信する。この要求、およびデータ構造242、244に記憶された情報に基づいて、データベースサーバ230はアプリケーション220に応答を返す。この応答は、アプリケーション220がその特定のデータ項目に対してアプリケーション特有の動作を実行することを許可する特権を、ユーザが有するかどうかを示すデータを含んでいる。
アプリケーション220についてのアドミニストレータは、データ構造242、244内の情報を提供する。例示された実施例では、アプリケーションアドミニストレータは、階層を記述するデータを記憶するために、拡張可能マークアップ言語(XML)文書を使用している。XMLは、構造化されたデータを記述するために、ワールドワイドウェブ・コンソーシアム(W3C)により公布されている基準によって定義されている、周知のかつ広範に使用されているマークアップ言語であり、データ要素の任意のツリー階層を可能にする。アプリケーションアドミニストレータは次に、データベースサーバ230によって提供されたインターフェイスと対話する。インターフェイスにより、アプリケーションアドミニストレータは、各データ項目またはデータ項目の群に当てはまる階層を記述するXML文書を示し、アプリケーション220の各ユーザに当てはまる、各階層における1つ以上の特権を示すようになる。
実施例によっては、1つのアプリケーションについてのいくつかの特権階層の各々は、アプリケーション特有の動作が動作する、対応する型のデータ項目と関連付けられる。たとえば、特権階層100は、ある企業の発注書を表わすデータ項目と関連付けられているが、同じ企業についての人事記録を表わすデータ項目とは関連付けられていない。人事記録に対して動作する特権は、特権階層100とは異なる第2の特権階層(図示せず)において示される。そのような実施例では、データ構造242のデータは、各特権階層を、それらの特権によって許可された動作が動作する1つ以上の型のデータ項目と関連付ける。
アプリケーション特有の動作に対するアクセス制御をサポートするための方法
この方法を説明するため、例示的な一実施例を説明する。例示的な実施例では、アプリケーションアドミニストレータは、発注書オブジェクトに対するアプリケーション特有の動作についての特権の階層を記述する拡張可能マークアップ言語(XML)文書を生成する。他の実施例では、特権の階層を表わすために、他の構造化されたデータフォーマットが使用されてもよい。
例示的な実施例では、各XML要素は、特権の階層におけるある特権を表わすノードに対応している。表2は、表1に示す例示的な階層100を記述するXML文書の一例の一部を示している。
Figure 0004787617
例示のため、表2に列挙されたラインを有するXML文書は、アプリケーション220用のホストコンピュータ上のPOprivileges.xmlと名付けられたファイルに記憶されていると仮定される。各XML要素は名前を有する。XML要素の最初は、XML要素の名前を囲む記号“<”“>”によって表わされる。XML要素の最後は、XML要素の名前を囲む記号“</”“>”によって表わされる。ある親要素の子要素はすべて、親要素の最初および最後を表わす記号の間に含まれる。ある要素に子がない場合、それはオプションで、記号“<”“/>”によって囲まれる要素の名前によって表わされ得る。
表2のライン1および17に示された省略記号は、ライン2〜16に先行する、または続く、XML文書内のXMLラインを表わしている。XMLライン2〜16は、PO_ALL特権に対応する“PO_ALL”と名付けられたXML要素を示している。PO_ALL要素は5つの子要素、つまり、ライン3のGenerate_PO、ライン4〜8のApprove_PO、ライン9のPurchase、ライン10〜14のAccept_Delivery、およびライン15のPay_under_POを含む。ライン4〜8のApprove_PO要素は、3つの子要素、つまり、ライン5のApprove_Services、ライン6のApprove_Equipment、およびライン7のApprove_Suppliesを含む。ライン10〜14のAccept_Delivery要素は、3つの子要素、つまり、ライン11のAccept_Services、ライン12のAccept_Equipment、およびライン13のAccept_Suppliesを含む。こうして、図2に一部が示されたXML文書は、図1に示された発注書動作についての特権の階層110を記述している。
図3は、一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法300の一実施例を示すフローチャートである。図3ではステップがある特定の順序で示されているが、他の実施例では、ステップは異
なる順序で、または時間が重複して実行されてもよい。たとえば、ステップ310および320は、時間が重複していてもよい。
ステップ310で、サーバは、データ項目の型に対してアプリケーション特有の動作を実行するための特権の階層を示すデータを受信する。特権の階層を受信するための任意の方法が使用されてもよい。たとえば、ステップ310の最中、アプリケーションアドミニストレータは、表2に示すラインを有するXML文書を形成し、その文書をファイルPOprivileges.xmlに記憶し、データベースサーバアクセス制御インターフェイスを採用して、アプリケーション特有のアクセス制御がデータベースサーバによって、ファイルPOprivileges.xml内の特権の階層を用いてサポートされるべきであることを示す。いくつかの実施例では、データベースサーバアクセス制御インターフェイスは、当該技術分野において周知のハイパーテキストマークアップ言語(HTML)ページなどのグラフィカルユーザインターフェイスであり、それは、アプリケーション特有のアクセス制御を特定する入力をユーザに促す。いくつかの実施例では、データベースサーバアクセス制御インターフェイスは、当該技術分野において周知のアプリケーションプログラムインターフェイス(API)であり、それは、データベースサーバアクセス制御機能を実行するために呼出されるルーチンおよびパラメータの名前および型を含んでいる。他の実施例では、サーバへの他のインターフェイスが採用される。
いくつかの実施例では、同じアプリケーションのために2つ以上の特権階層が受信される。たとえば、アプリケーションが企業システムである場合、アプリケーションは、発注書システムについての特権の階層だけでなく、他のシステム、たとえば人材システム、設備管理システム、製品製作追跡システム、および卸売販売システムなどについての特権の階層も含んでいてもよい。さまざまなシステムに当てはまる階層は往々にして、アプリケーションによってデータベースに記憶される異なる型のデータ項目に対するアプリケーション特有の動作を指す。たとえば、図1に示す特権の階層は、データベース内の発注書データベースオブジェクトに対して動作する表1に列挙された動作を指しており、一方、人材についての特権の階層は、データベース内の人事データベースオブジェクトに対する動作を指している。
2つ以上の特権階層を有するいくつかの実施例では、ステップ310の最中、各特権階層はデータ項目の型に関連付けられ、そのデータ項目の型も、特権の階層を示すデータとともに受信される。たとえば、表2のXMLラインによって示される階層は、アプリケーションのためにデータベースサーバ230によって管理されるデータベース内の発注書データベースオブジェクトと関連付けられる。実施例によっては、関連付けはXML文書内で行なわれ、実施例によっては、関連付けはデータベースサーバアクセス制御システムへのインターフェイスで行なわれる。実施例によっては、同じアプリケーションについての異なる階層が、階層名などの他の手段によって区別される。
ステップ320で、サーバは、各ユーザおよびデータ項目またはデータ項目の群についての特権を示すデータを受信する。そのようなデータを受信するための任意の方法が使用されてもよい。たとえば、ステップ320の最中、アプリケーションアドミニストレータは、ユーザ識別情報(ユーザID)を特権の階層100における1つ以上の特権と関連付ける第2のXML文書を形成し、データベースサーバアクセス制御インターフェイスを採用して、第2のXML文書がユーザを特権と関連付けることを示す。インターフェイスは、HTMLページ、API、またはデータをサーバに供給するための何か他のインターフェイス、といったグラフィカルユーザインターフェイスであってもよい。実施例によっては、XML文書は、マーシーの均一なアクセス制御システムのためのアクセス制御リスト(ACL)を、以下の表3に示すようなXMLラインを用いて特定する。表3では、制御されたアプリケーション特有の動作が要求されるようにする何かを行なうアプリケーショ
ンをクライアントに命令させるユーザは、「プリンシパル」と呼ばれる。あるプリンシパルはユーザID“SCOTT”を有し、別のプリンシパルはユーザID“PETER”を有している。表3では、各ACLは、1つ以上のアクセス制御要素(ACE)を含む。各ACEは、プリンシパルを名付ける1つのプリンシパル要素と、1つの特権要素とを含む。特権要素は、特権の階層における名前によって識別される1つ以上の特権のリストを含む。ライン1および19の省略記号は、ACLの前および後の他のXMLラインを示している。ライン17の省略記号は、他のACEを特定する他のXMLラインを示している。
Figure 0004787617
表3の例のACLに示すように、ユーザSCOTTは、POを作成して供給品の配送を受入れてもよく、一方、ユーザPETERは、任意の種類のPOを承認してベンダーへの支払を認可してもよい。
多数の階層を有する実施例では、階層の各々でのユーザの特権は、ステップ320の最中に特定される。たとえば、ACLが使用される場合、発注書データ項目に当てはまる発注書階層での特権を特定する1組のACLと、人材データ項目に当てはまる人材階層での特権を特定する別の1組のACLがある。
ステップ340で、サーバは、アプリケーションからアクセス制御要求を受信する。この要求は、ある特定のユーザ、ある特定のアプリケーション特有の動作、およびその動作が実行されるべきデータ項目を示すデータを含む。すべてのデータ項目に当てはまる階層がたった1つである実施例では、データ項目は省略されてもよい。1つのアプリケーションについて多数の階層を有する実施例では、使用されるべき特権階層は、データ項目の型に基づいて、データ項目から推論される。データ項目の型は、1つ以上のデータ項目またはデータベースオブジェクトを示す。実施例によっては、特定のアプリケーション特有の動作を示すデータは、アプリケーション特有の動作の1つ以上についてのある特定の特権を示すデータである。
例示のため、ユーザSCOTTがクライアント210aを介してアプリケーション220を動作させ、ユーザPETERがクライアント210bを介してアプリケーション220を動作させると仮定する。さらに、ユーザSCOTTが事務用品について作成したばかりの、以下「PO12345」と呼ばれるある特定の発注書を、ユーザSCOTTが承認しようとしたと仮定する。これは、ユーザSCOTTが発注書データ項目PO12345に対してApprove_Services特権を必要とするアプリケーション特有の動作を実行しようとしていることを示すデータを含むアクセス制御要求を、アプリケーション220に生成させる。データベースサーバは、ステップ340の最中に要求を受信する。
ステップ350で、サーバは、アプリケーションが特定のユーザのために特定の動作を実行してもよいかどうかを、特定のデータ項目について特定のユーザに関連付けられた特権に基づいて判断する。たとえば、データベースサーバ230は、アプリケーション220がSCOTTのためにApprove_Services特権を必要とする動作を実行してもよいかどうかを、発注書データ項目に関連する階層における発注書データ項目についてSCOTTに関連付けられた特権に基づいて判断する。
ステップ350の最中、サーバは適切な階層を判断する。たとえば、データベースサーバ230は、データベースサーバ230によって保持されたデータベースメタデータに基づいて、PO12345が発注書型のデータベースオブジェクトであることを判断する。データベースサーバ230は次に、表2に部分的に列挙されたXML文書のうち、ステップ310の最中に受信された特権の階層が適切な階層であると判断する。
ステップ350の最中、サーバは、ユーザが要求に示された特権を有するかどうかを判断する。たとえば、データベースサーバ230は、ユーザSCOTTが、発注書データ項目について表3に列挙されたACLの、ライン3〜9のACEに現われているものの、特権Approve_Servicesがライン5〜8に列挙された特権の中には列挙されていないと判断する。したがって、ユーザSCOTTは、このアプリケーション特有の動作を実行する特権を持っていない。
ステップ390で、サーバはアプリケーションに応答を返す。この応答は、アプリケーションが特定のユーザのために特定の動作を実行してもよいかどうかを示すデータを含んでいる。たとえば、データベースサーバ230はアプリケーション220に、アプリケーション220がクライアント210aに関連するユーザSCOTTのためにサービス承認動作を実行すべきではないことを示す応答を返す。この応答に基づき、アプリケーションは動作を実行しない。実施例によっては、アプリケーションは、この応答に基づいて、ユーザがアプリケーション特有の動作を実行するよう許可されてはいないというメッセージを、ユーザのクライアントに送信する。たとえば、この応答に基づいて、アプリケーション220は、ユーザSCOTTがサービスについての発注書を承認するよう許可されてはいないというメッセージを、クライアント210aに送信する。
ビットマップを用いたユーザ特権の表現
ステップ350の最中、上述のように、サーバは、ユーザが要求に示された特権を有しているかどうかを判断する。アプリケーションのアクティブなクライアントを動作させているユーザの特権を高速メモリのキャッシュに保持することは有利である。より多くのユーザ特権がキャッシュに記憶されるにつれ、サーバはより迅速に要求に応答して、アプリケーション特有の動作のアクセス制御をサポートすることができる。ユーザ特権がよりコンパクトに表現可能になるにつれ、よれ多くのユーザがキャッシュに記憶され得る。一実施例によれば、サーバは、各ユーザに関連する特権を、キャッシュにおいてビットマップを用いて表わす。たとえば、データベースサーバ230は、ユーザ特権をキャッシュ23
2にビットマップを用いて記憶する。
この実施例では、サーバは、階層における各リーフノードをビット位置に関連付ける。たとえば、階層100について表1に列挙された9つのリーフノードは、ビット位置1〜9に関連付けられる。ある特定のユーザに付与された特権を示すデータをサーバが受信すると(永続的ストレージからそのようなデータを読出すことも含む)、サーバは、付与された特権に対応しているビットを、「オン」値、たとえば「1」に設定し、付与されていない特権に対応しているビットを、「オフ」値、たとえば「0」に設定する。親ノードに対応している特権が付与される場合、その親ノードの子孫であるすべてのリーフノードに対応しているビットは、オン値にセットされる。たとえば、表3に列挙されたXMLラインにおいてユーザSCOTTおよびPETERに付与された特権は、表4に列挙されたビットマップによって表わされ、ここでは、ビット位置は右(最下位ビット)から左(最上位)へ数える。
Figure 0004787617
SCOTTには、第1のリーフノード110bである、POを作成する特権が付与されており、そのため、第1の(右端の)ビットにオン値「1」が設定される。SCOTTには、第8のリーフノード110lである、配送された供給品を受入れる特権も付与されており、そのため、右から8番目のビットにオン値「1」が設定される。PETERにはPOを承認する特権が付与されており、それは、サービスを承認するリーフノード110g、設備を承認するリーフノード110h、および供給品を承認するリーフノード110iにとっての親ノードである。したがって、これら3つのリーフノード110g、110h、110iに対応するビットは、オン値「1」に設定される。これらのビットは、ビットマップの右から2番目〜4番目の位置にある。PETERには、第9のリーフノード110fである、配送に対して支払う特権も付与されており、そのため、右から9番目のビット、つまり左端のビットにオン値「1」が設定される。
多数の階層を有するいくつかの実施例では、すべての階層のリーフノードは単一のビットマップにアセンブルされる。他の実施例では、異なる階層のリーフノードは異なるビットマップにアセンブルされる。いくつかの実施例では、ビット位置は、階層名および特権名に基づいてハッシュ関数を使用して判断されてもよい。
ビットマップを用いた例示的な一実施例では、ステップ350の最中、データベースサーバ230は、ある特定のデータ項目についてのある特定のユーザのビットマップが既にキャッシュ232内にあるかどうかを判断する。そうである場合、永続的ストレージ240に記憶されたデータからビットマップを検索する動作が回避可能である。そうではない場合、ユーザについてのビットマップが永続的ストレージ240から検索され、キャッシュ232に追加される。キャッシュ232に検索されたビットマップを置く十分なスペースがない場合、キャッシュ内のスペースは、当該技術分野において公知の任意の手法を用いて解放される。たとえば、最も以前に使用されたビットマップに割当てられたメモリが、特定のユーザのビットマップのために利用可能になる。
データベースサーバ230は次に、アプリケーション特有の動作についての特権、またはステップ340で受信されたアクセス制御要求に示された特権に関連するビット位置を判断する。たとえば、表2に表わされた階層を用いて、データベースサーバは、Approve_Services特権に関連するサービス承認動作が第2のリーフノードに、したがってビットマップの2番目のビットに関連付けられていると判断する。
ステップ350の最中、データベースサーバ230は次に、そのビット位置におけるビットがオン値に設定されているかどうかを判断する。たとえば、データベースサーバは、表4に列挙されたSCOTTについてのビットマップにおいて、2番目のビットがオン値に設定されていないと判断する。したがって、データベースサーバは、SCOTTがサービスを承認する特権を持っていないと判断する。
データベースサーバ230がPETERからPO12345を承認するよう求める要求を受信すると、ステップ350の最中、データベースサーバ230は、表4に列挙されたPETERについてのビットマップにおいて、2番目の値がオン値に設定されていると判断する。したがって、データベースサーバは、PETERがサービスを承認する特権を有すると判断する。
ここに記載されたような、ユーザの特権を判断するためにキャッシュ232およびビットマップを使用することは、非常に効率的である。アプリケーションの開発者は、広範なソフトウェア開発なしで、データベースまたは内容管理サーバといった別個のサーバによる特権のそのような効率的な判断を利用してもよい。アプリケーションアドミニストレータは、別個のサーバ用に既に構築されているインターフェイスをしばしば使用して、特権およびユーザ特権の階層を別個のサーバに1回供給するだけである。単にアクセス制御要求を別個のサーバに送るために、新しいアプリケーションが開発され、または既存のアプリケーションが修正される。特権がアプリケーション特有の動作にとって利用可能かどうかを効率よく判断するためにアプリケーションを開発する必要はない。たとえば、アプリケーションは、キャッシュ232を管理し、またはユーザ特権のビットマップを形成するために開発される必要はない。
ハードウェア概要
図4は、この発明の一実施例が実現され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を通信するためのバス402または他の通信メカニズムと、情報を処理するためにバス402と結合されたプロセッサ404とを含む。コンピュータシステム400はまた、プロセッサ404により実行されるべき命令および情報を記憶するためにバス402に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置といったメインメモリ406も含む。メインメモリ406は、プロセッサ404により実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム400はさらに、プロセッサ404用の命令およびスタティック情報を記憶するためにバス402に結合された読出専用メモリ(ROM)408または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置410が、情報および命令を記憶するために提供され、バス402に結合されている。
コンピュータシステム400は、情報をコンピュータユーザに表示するためのブラウン管(CRT)などのディスプレイ412に、バス402を介して結合されていてもよい。英数字キーおよび他のキーを含む入力装置414が、情報およびコマンド選択をプロセッサ404に通信するためにバス402に結合されている。ユーザ入力装置の別の種類は、方向情報およびコマンド選択をプロセッサ404に通信し、ディスプレイ412上のカー
ソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーといったカーソル制御416である。この入力装置は通常、2つの軸、つまり第1の軸(たとえばx)および第2の軸(たとえばy)において2つの自由度を有しており、それによりこの装置は平面における場所を特定することができる。
この発明は、ここに説明された手法を実現するためのコンピュータシステム400の使用に関する。この発明の一実施例によれば、それらの手法は、プロセッサ404がメインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応じて、コンピュータシステム400によって実行される。そのような命令は、記憶装置410などの別のコンピュータ読み取り可能な媒体からメインメモリ406に読込まれてもよい。メインメモリ406に含まれる命令のシーケンスの実行により、プロセッサ404は、ここに説明されたプロセスステップを実行するようになる。代替的な実施例では、この発明を実現するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて、ハードワイヤード回路が使用されてもよい。このため、この発明の実施例は、ハードウェア回路とソフトウェアとのどの特定の組合せにも限定されない。
ここで用いられるような用語「コンピュータ読み取り可能な媒体」とは、プロセッサ404に命令を実行用に提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および通信媒体を含むもののそれらに限定されない多くの形態を取り得る。不揮発性媒体はたとえば、記憶装置410などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。通信媒体は、バス402を構成する配線を含む、同軸ケーブル、銅線および光ファイバを含む。通信媒体はまた、無線周波数および赤外線データ通信中に発生するものといった音波または光波の形も取り得る。
コンピュータ読み取り可能な媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、以下に説明するような搬送波、または、コンピュータがそこから読み取り可能な任意の他の媒体を含む。
コンピュータ読み取り可能な媒体のさまざまな形態は、プロセッサ404への1つ以上の命令の1つ以上のシーケンスを実行用に保持することに関与していてもよい。たとえば、命令はまず、遠隔コンピュータの磁気ディスク上に保持されてもよい。遠隔コンピュータは命令をそのダイナミックメモリにロードし、電話回線を通してモデムを用いて命令を送信することができる。コンピュータシステム400にとってローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号で搬送されたデータを受信でき、適切な回路がデータをバス402上に配置することができる。バス402はデータをメインメモリ406に搬送し、そこからプロセッサ404が命令を検索して実行する。メインメモリ406によって受信された命令は、プロセッサ404による実行の前または後のいずれかで、記憶装置410上に随意に記憶されてもよい。
コンピュータシステム400はまた、バス402に結合された通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420に双方向データ通信結合を提供する。たとえば、通信インターフェイス418は、データ通信接続を対応する種類の電話回線に提供するデジタル相互サービス網(ISDN)カード、またはモデムであってもよい。別の例として、通信インターフェイス418は、データ通信接続を互換性があるLANに提供するローカルエリアネ
ットワーク(LAN)カードであってもよい。無線リンクも実現され得る。任意のそのような実現化例では、通信インターフェイス418は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。
ネットワークリンク420は通常、1つ以上のネットワークを介して、他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424に、またはインターネットサービスプロバイダ(ISP)426により運営されるデータ装置に、接続を提供してもよい。ISP426は次に、現在一般に「インターネット」428と呼ばれている全世界的パケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク422およびインターネット428は双方とも、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を使用する。コンピュータシステム400へ、またはコンピュータシステム400からデジタルデータを搬送する、さまざまなネットワークを通る信号、ネットワークリンク420上の信号、および通信インターフェイス418を通る信号は、情報を運ぶ搬送波の例示的な形態である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を介して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットの例では、サーバ430は、アプリケーションプログラム用の要求されたコードを、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェイス418を介して送信してもよい。
受信されたコードは、受信された際にプロセッサ404によって実行されてもよく、および/または、後での実行用に記憶装置410または他の不揮発性ストレージに記憶されてもよい。このように、コンピュータシステム400は、搬送波の形をしたアプリケーションコードを取得し得る。
前述の明細書において、この発明を、その特定の実施例を参照して説明してきた。しかしながら、この発明のより幅広い精神および範囲を逸脱することなく、様々な修正および変更がそれになされてもよいことは、明らかである。したがって、明細書および図面は、限定的な意味というよりもむしろ例示的な意味で考慮されるべきである。
アプリケーション特有の動作を実行する特権の例示的な階層を示すブロック図である。 一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のデータベースサーバを用いてサポートするためのシステムを示すブロック図である。 一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法の一実施例を示すフローチャートである。 この発明の一実施例が実現され得るコンピュータシステムを示すブロック図である。

Claims (16)

  1. アプリケーションによって実行されるアプリケーション特有の動作を制御するための方法であって、
    アプリケーションと通信可能な、アプリケーションとは別個のサーバが、アプリケーションから特権情報を受信するステップを含み、前記特権情報は、特権定義を含み、前記特権定義は、
    前記アプリケーション特有の動作と、
    各アプリケーション特有の動作に対する、前記アプリケーション特有の動作を許可する個々の特権とを定義し、
    前記アプリケーション特有の動作は、ある特定のアプリケーション特有の動作を含み、前記方法はさらに、
    特権情報を受信した後、特定のアプリケーション特有の動作を実行するためのアクセス制御要求をアプリケーションからサーバが受信するステップと、
    アクセス制御要求を受信することに応答して、特定のアプリケーション特有の動作がある特定の1組の条件の下で許可されているかどうかを、特権情報に基づいてサーバが判断するステップと、
    判断した後、特定のアプリケーション特有の動作が前記特定の1組の条件の下で許可されているかどうかを示す応答を、サーバがアプリケーションに送信するステップとを含む、方法。
  2. 特権情報を受信するステップは、アプリケーションのユーザを、特権情報における1つ以上の特権と関連付けるユーザ特権定義を、前記サーバが受信するステップを含み、サーバは、特定のアプリケーション特有の動作が特定の1組の条件の下で許可されているかどうかを、ユーザ特権定義に基づいて判断する、請求項1に記載の方法。
  3. アクセス制御要求を受信することに応答して、ある特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかを、特権情報に基づいてサーバが判断するステップをさらに含み、
    アクセス制御要求は、特定のユーザおよびある特定のアプリケーション特有の動作を示し、
    サーバに応答をアプリケーションへ送信させるステップは、特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかを示す応答を、アプリケーションへ送信するステップを含む、請求項1に記載の方法。
  4. 特権情報を受信する前記ステップは、第1の1組の特権を、複数のアプリケーション特有の動作が動作する第1の型のデータ項目と関連付ける第1のデータを受信するステップを含み、
    アクセス制御要求を受信する前記ステップは、ある特定のデータ項目も示す要求を受信するステップを含み、
    特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかをサーバが判断する前記ステップは、特定のデータ項目が第1の型のデータ項目の構成要素であるかどうかを判断するステップをさらに含む、請求項3に記載の方法。
  5. 前記第1の型のデータ項目とは異なる第2の型のデータ項目に対して第2の複数のアプリケーション特有の動作を実行するための第2の1組の特権を記述する第2のデータを、サーバがアプリケーションから受信するステップを含み、
    特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかをサーバが判断する前記ステップは、特定の型の特定のデータ項目に基づく、請求項4に記載の方法。
  6. 特定のユーザのためアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかをサーバが判断する前記ステップは、1人以上のユーザの各々を特権の1つ以上の組の各々における1つ以上の特権と関連付ける情報を高速メモリ内のキャッシュにサーバが記憶するステップを含む、請求項3に記載の方法。
  7. サーバが、各ユーザに関連するデータ項目の型を示すデータをキャッシュに記憶するステップを含む、請求項6に記載の方法。
  8. 特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかをサーバが判断する前記ステップは、1人以上のユーザの各々を特権の1つ以上の組の各々における1つ以上の特権と関連付ける、各ユーザについてのビットマップをサーバがキャッシュに記憶するステップをさらに含み、
    特権の各組は、1つ以上のレベルの特権の階層を形成し、
    ビットマップにおける異なる各ビット位置は、特権の1つ以上の組の各階層における1つの異なるリーフノードに対応しており、
    リーフノードは、子ノードを持たない階層のノードである、請求項6に記載の方法。
  9. アプリケーションによって実行されるアプリケーション特有の動作を制御するための方法であって、
    アプリケーションと通信可能な、アプリケーションとは別個のサーバへ、アプリケーション特有の動作と、ある特定のアプリケーション特有の動作を含む第1の複数のアプリケーション特有の動作を実行するための特権の第1の組を記述する第1のデータとを定義する特権定義を含む特権情報を送信するステップと、
    特権情報を送信した後、ある特定のアプリケーション特有の動作がある特定の1組の条件の下で許可されているかどうかを特権情報に基づいて判断するようサーバに求めるアクセス制御要求を、アプリケーションがサーバへ送信するステップと、
    アクセス制御要求をサーバへ送信した後、特定のアプリケーション特有の動作を、前記特定の1組の条件の下でアプリケーションが実行してもよいかを示す応答をサーバからアプリケーションが受信するステップと、
    応答を受信した後、アプリケーション特有の動作が前記特定の1組の条件の下で許可されていたとサーバが示した場合のみ、アプリケーションが特定のアプリケーション特有の動作を許可するステップとを含む、方法。
  10. アプリケーションがサーバへ特権情報を送信するステップは、
    アプリケーションの第1のユーザを第1の1組の特権におけるある特権と関連付ける第2のデータを、アプリケーションに接続され、アプリケーションとは別個のサーバに、アプリケーションが送信するステップを含む、請求項9に記載の方法。
  11. ある特定のユーザから、ある特定のアプリケーション特有の動作を実行するためのコマンドをアプリケーションが受信するステップを含み、
    アクセス制御要求をアプリケーションがサーバへ送信するステップは、コマンドを受信することに応答して、アプリケーションが、アクセス制御要求をサーバに送信するステップを含み、
    アクセス制御要求は、特定のユーザおよび特定のアプリケーション特有の動作を示し、
    特定のアプリケーション特有の動作を前記特定の1組の条件の下でアプリケーションが実行してもよいかどうかを示す応答をサーバから受信するステップは、第1のデータおよび第2のデータに基づいて、特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいかどうかを示す応答をサーバから受信するステップを含み、前記方法はさらに、
    特定のユーザのためにアプリケーションが特定のアプリケーション特有の動作を実行してもよいと応答が示す場合にのみ、特定のアプリケーション特有の動作をアプリケーションが実行するステップを含む、請求項10に記載の方法。
  12. 特権情報を送信する前記ステップは、第1の1組の特権を、複数のアプリケーション特有の動作が動作する第1の型のデータ項目とも関連付ける第1のデータを送信するステップを含み、
    アクセス制御要求を送信する前記ステップは、ある特定のデータ項目も示す要求を送信するステップを含み、
    応答を受信する前記ステップは、特定のデータ項目が第1の型のデータ項目の構成要素であるかどうかに基づいて応答を受信するステップをさらに含む、請求項10に記載の方法。
  13. 前記方法は、異なる第2の型のデータ項目に対して第2の複数のアプリケーション特有の動作を実行するための異なる第2の1組の特権を定義する第3のデータを含むサーバに、アプリケーションが特権情報を送信するステップを含み、
    第2のデータを送信する前記ステップは、アプリケーションの第2のユーザを特権の前記異なる第2の1組におけるある特権とも関連付ける第2のデータを送信するステップを含み、
    アクセス制御応答を受信する前記ステップは、ある特定の型の特定のデータ項目が、特定のアプリケーション特有の動作を含むある特定の複数のアプリケーション特有の動作についてのある特定の1組の特権と関連しているかどうかに基づいて、応答を受信するステップを含む、請求項12に記載の方法。
  14. アプリケーションは、1人以上のユーザの各々を、第1の組の特権を含む特権の1つ以上の組の各々における1つ以上の特権と関連付ける情報を、高速メモリ内のキャッシュに記憶していない、請求項10に記載の方法。
  15. 1つ以上のプロセッサにより実行される場合、1つ以上のプロセッサに請求項1〜14のいずれかに記載された方法を実行させる命令の1つ以上のシーケンスを記憶した、コンピュータ読み取り可能な不揮発性媒体。
  16. 1つ以上のプロセッサにより実行されると、1つ以上のプロセッサに請求項1〜14のいずれかに記載された方法を実行させるプログラム。
JP2005507103A 2002-11-06 2003-11-06 アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法 Expired - Lifetime JP4787617B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US42454302P 2002-11-06 2002-11-06
US60/424,543 2002-11-06
US10/364,610 US7020653B2 (en) 2002-11-06 2003-02-10 Techniques for supporting application-specific access controls with a separate server
US10/364,610 2003-02-10
PCT/US2003/035494 WO2004044738A2 (en) 2002-11-06 2003-11-06 Techniques for supporting application-specific access controls with a separate server

Publications (2)

Publication Number Publication Date
JP2006505877A JP2006505877A (ja) 2006-02-16
JP4787617B2 true JP4787617B2 (ja) 2011-10-05

Family

ID=32179549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005507103A Expired - Lifetime JP4787617B2 (ja) 2002-11-06 2003-11-06 アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法

Country Status (6)

Country Link
US (1) US7020653B2 (ja)
EP (1) EP1559006B1 (ja)
JP (1) JP4787617B2 (ja)
AU (1) AU2003287565C1 (ja)
CA (1) CA2505156C (ja)
WO (1) WO2004044738A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020653B2 (en) 2002-11-06 2006-03-28 Oracle International Corporation Techniques for supporting application-specific access controls with a separate server
US20050063524A1 (en) * 2002-12-11 2005-03-24 Leader Technologies, Inc. Communication system and method
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
US20070127400A1 (en) * 2002-12-11 2007-06-07 Leader Technologies, Inc. Professional Services Communications Architecture
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US8775468B2 (en) * 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US7546640B2 (en) * 2003-12-10 2009-06-09 International Business Machines Corporation Fine-grained authorization by authorization table associated with a resource
US20050132054A1 (en) * 2003-12-10 2005-06-16 International Business Machines Corporation Fine-grained authorization by traversing generational relationships
US7346617B2 (en) * 2004-01-23 2008-03-18 Oracle International Corporation Multi-table access control
US20050203850A1 (en) * 2004-01-29 2005-09-15 Peter Heussi-Pfleger Output data management
US8074288B2 (en) * 2005-07-15 2011-12-06 Microsoft Corporation Isolation of application-specific data within a user account
US7996367B2 (en) 2006-01-18 2011-08-09 Echosign, Inc. Automatic document exchange with document searching capability
US7895166B2 (en) * 2006-01-18 2011-02-22 Echosign, Inc. Automatic document exchange with archiving capability
US7996439B2 (en) * 2006-01-18 2011-08-09 Echosign, Inc. Automatic document exchange and execution management
US8423612B2 (en) * 2007-01-08 2013-04-16 Cisco Technology, Inc. Methods and apparatuses for selectively accessing an application
US20090157686A1 (en) * 2007-12-13 2009-06-18 Oracle International Corporation Method and apparatus for efficiently caching a system-wide access control list
US20100223320A1 (en) * 2009-02-27 2010-09-02 He Huang Data distribution efficiency for online collaborative computing sessions
US8538990B2 (en) * 2011-03-04 2013-09-17 International Business Machines Corporation Scalable mechanism for resolving cell-level access from sets of dimensional access rules
US20150134719A1 (en) * 2013-11-13 2015-05-14 Kaseya International Limited Third party application delivery via an agent portal
US9535610B2 (en) * 2014-02-21 2017-01-03 International Business Machines Corporation Optimizing peer-to-peer remote copy (PPRC) transfers for partial write operations using a modified sectors bitmap
US9507527B2 (en) 2014-02-21 2016-11-29 International Business Machines Corporation Efficient cache management of multi-target peer-to-peer remote copy (PPRC) modified sectors bitmap
US9600277B2 (en) * 2014-02-21 2017-03-21 International Business Machines Corporation Asynchronous cleanup after a peer-to-peer remote copy (PPRC) terminate relationship operation
US20150295852A1 (en) * 2014-04-15 2015-10-15 Ntt Innovation Institute, Inc. Protecting and tracking network state updates in software-defined networks from side-channel access
US9628555B2 (en) * 2015-06-18 2017-04-18 Live Nation Entertainment, Inc Enhanced load processing using linked hierarchical data structures

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225057A (ja) * 1992-02-14 1993-09-03 Casio Comput Co Ltd キャッシュメモリ制御装置
JPH10232811A (ja) * 1997-02-20 1998-09-02 Hitachi Ltd データベースのセキュリティ管理方法
JPH11161536A (ja) * 1997-11-26 1999-06-18 Nec Inf Service Ltd 利用者制限装置およびその方法
JP2000250872A (ja) * 1999-03-02 2000-09-14 Mitsubishi Electric Corp 業務処理システムの統合管理方式
JP2002520727A (ja) * 1998-07-17 2002-07-09 イレクトラニク、デイタ、システィムズ、コーパレイシャン アプリケーション機能に対するアクセスを選択的に規定するためのシステムおよび方法
JP2002259215A (ja) * 2001-03-06 2002-09-13 Kyocera Communication Systems Co Ltd アクセス制御システム
JP2002324053A (ja) * 2001-04-24 2002-11-08 Nec Corp 利用権限管理システム、利用権限管理方法および利用権限管理プログラム

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990014626A1 (en) * 1989-05-15 1990-11-29 Dallas Semiconductor Corporation Systems with data-token/one-wire-bus
US5226137A (en) * 1989-05-15 1993-07-06 Dallas Semiconductor Corp. Electronic key with multiple password protected sub-keys using address and translation to implement a block data move between public and protected sub-keys
US4993025A (en) * 1989-11-21 1991-02-12 Picker International, Inc. High efficiency image data transfer network
US5257365A (en) 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US5577209A (en) * 1991-07-11 1996-11-19 Itt Corporation Apparatus and method for providing multi-level security for communication among computers and terminals on a network
JPH0667951A (ja) 1992-05-20 1994-03-11 Nec Corp データベース管理システム
US5463772A (en) 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
US5893109A (en) 1996-03-15 1999-04-06 Inso Providence Corporation Generation of chunks of a long document for an electronic book system
US5893104A (en) 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US6208993B1 (en) 1996-07-26 2001-03-27 Ori Software Development Ltd. Method for organizing directories
US6023765A (en) * 1996-12-06 2000-02-08 The United States Of America As Represented By The Secretary Of Commerce Implementation of role-based access control in multi-level secure systems
GB2329044B (en) 1997-09-05 2002-10-09 Ibm Data retrieval system
US6141655A (en) 1997-09-23 2000-10-31 At&T Corp Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US5974407A (en) 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6192476B1 (en) 1997-12-11 2001-02-20 Sun Microsystems, Inc. Controlling access to a resource
US6487546B1 (en) 1998-08-27 2002-11-26 Oracle Corporation Apparatus and method for aggregate indexes
US6279007B1 (en) 1998-11-30 2001-08-21 Microsoft Corporation Architecture for managing query friendly hierarchical values
US6704739B2 (en) 1999-01-04 2004-03-09 Adobe Systems Incorporated Tagging data assets
US6449652B1 (en) 1999-01-04 2002-09-10 Emc Corporation Method and apparatus for providing secure access to a computer system resource
US6370537B1 (en) 1999-01-14 2002-04-09 Altoweb, Inc. System and method for the manipulation and display of structured data
US6427123B1 (en) 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
HK1020419A2 (en) 1999-03-16 2000-03-17 Shi Piu Joseph Fong Frame model for universal database in database reengineering and integration
US6542898B1 (en) * 1999-05-12 2003-04-01 Motive Communications, Inc. Technical support chain automation with guided self-help capability using active content developed for specific audiences
US6496842B1 (en) 1999-05-28 2002-12-17 Survol Interactive Technologies Navigating heirarchically organized information
US6470344B1 (en) 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US6721727B2 (en) 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
AU2001236998A1 (en) 2000-02-11 2001-08-20 Acta Technologies, Inc. Nested relational data model
US7072896B2 (en) 2000-02-16 2006-07-04 Verizon Laboratories Inc. System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor
US20020056025A1 (en) 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6785718B2 (en) 2000-10-23 2004-08-31 Schneider Logistics, Inc. Method and system for interfacing with a shipping service
US6542911B2 (en) 2001-03-01 2003-04-01 Sun Microsystems, Inc. Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache
US6968334B2 (en) 2001-05-15 2005-11-22 Nokia Corporation Method and business process to maintain privacy in distributed recommendation systems
US6725212B2 (en) 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US7487168B2 (en) 2001-11-01 2009-02-03 Microsoft Corporation System and method for loading hierarchical data into relational database systems
US9374451B2 (en) 2002-02-04 2016-06-21 Nokia Technologies Oy System and method for multimodal short-cuts to digital services
US7570943B2 (en) 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
US7308474B2 (en) 2002-11-06 2007-12-11 Oracle International Corporation Techniques for scalably accessing data in an arbitrarily large document by a device with limited resources
US7020653B2 (en) 2002-11-06 2006-03-28 Oracle International Corporation Techniques for supporting application-specific access controls with a separate server
US7634480B2 (en) 2003-05-08 2009-12-15 Microsoft Corporation Declarative rules for metadirectory
US20040230893A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225057A (ja) * 1992-02-14 1993-09-03 Casio Comput Co Ltd キャッシュメモリ制御装置
JPH10232811A (ja) * 1997-02-20 1998-09-02 Hitachi Ltd データベースのセキュリティ管理方法
JPH11161536A (ja) * 1997-11-26 1999-06-18 Nec Inf Service Ltd 利用者制限装置およびその方法
JP2002520727A (ja) * 1998-07-17 2002-07-09 イレクトラニク、デイタ、システィムズ、コーパレイシャン アプリケーション機能に対するアクセスを選択的に規定するためのシステムおよび方法
JP2000250872A (ja) * 1999-03-02 2000-09-14 Mitsubishi Electric Corp 業務処理システムの統合管理方式
JP2002259215A (ja) * 2001-03-06 2002-09-13 Kyocera Communication Systems Co Ltd アクセス制御システム
JP2002324053A (ja) * 2001-04-24 2002-11-08 Nec Corp 利用権限管理システム、利用権限管理方法および利用権限管理プログラム

Also Published As

Publication number Publication date
AU2003287565A1 (en) 2004-06-03
AU2003287565A2 (en) 2005-07-07
WO2004044738A2 (en) 2004-05-27
US20040088340A1 (en) 2004-05-06
EP1559006B1 (en) 2015-08-05
WO2004044738A3 (en) 2005-02-24
CA2505156C (en) 2011-07-05
US7020653B2 (en) 2006-03-28
CA2505156A1 (en) 2004-05-27
EP1559006A2 (en) 2005-08-03
AU2003287565B2 (en) 2006-11-09
AU2003287565C1 (en) 2008-07-31
JP2006505877A (ja) 2006-02-16

Similar Documents

Publication Publication Date Title
JP4787617B2 (ja) アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法
US6895586B1 (en) Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
CN102378975B (zh) 将协作功能扩展到外部数据
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
US8887271B2 (en) Method and system for managing object level security using an object definition hierarchy
US7124354B1 (en) Enterprise application transactions as shared active documents
US7934211B2 (en) Multi-level patching operation
US7533157B2 (en) Method for delegation of administrative operations in user enrollment tasks
US20050114479A1 (en) System and method for hierarchically representing configuration items
JP2006190279A (ja) メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置
CN101611422A (zh) web数据使用平台
US20080201333A1 (en) State transition controlled attributes
US9229920B1 (en) Compound undo/redo manager for mixed model edits
CN112632919B (zh) 一种文档编辑方法、装置、计算机设备和存储介质
US10721305B2 (en) Presenting content using decoupled presentation resources
US20240061825A1 (en) Method and system for using external content type object types
US6922729B1 (en) Multi-connection control system
US7917467B2 (en) Processing of data sets in a computer network
US7707504B2 (en) Offline configuration tool for secure store administration
US7698176B2 (en) Method, system, and computer-readable medium for updating inventory data in an inventory management system
JPH0727487B2 (ja) 探索項構築の制御テーブルの導入方法
CN107911443A (zh) 一种会话信息处理方法、装置、服务器和可读存储介质
US7039649B2 (en) Method and apparatus for maintaining data integrity
WO2005055491A2 (en) System and method for hierarchically representing configuration items
US11556316B2 (en) Distributed extensible dynamic graph

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4787617

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term