JP2004258743A - Database access control method, database access control system, and program - Google Patents

Database access control method, database access control system, and program Download PDF

Info

Publication number
JP2004258743A
JP2004258743A JP2003045921A JP2003045921A JP2004258743A JP 2004258743 A JP2004258743 A JP 2004258743A JP 2003045921 A JP2003045921 A JP 2003045921A JP 2003045921 A JP2003045921 A JP 2003045921A JP 2004258743 A JP2004258743 A JP 2004258743A
Authority
JP
Japan
Prior art keywords
access
database
agent
user
proxy
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.)
Granted
Application number
JP2003045921A
Other languages
Japanese (ja)
Other versions
JP4183072B2 (en
Inventor
Takayoshi Endo
公誉 遠藤
Tetsuya Yamamoto
哲也 山本
Hisafumi Imaeda
尚史 今枝
Joji Nakayama
丈二 中山
Kenichiro Shimokura
健一朗 下倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003045921A priority Critical patent/JP4183072B2/en
Publication of JP2004258743A publication Critical patent/JP2004258743A/en
Application granted granted Critical
Publication of JP4183072B2 publication Critical patent/JP4183072B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent access with a malicious intention when a proxy agent accesses a database by a simple means. <P>SOLUTION: A database access request from a user is received by an intermediary agent. The intermediary agent creates an access object, transfers the access request from a user to the proxy agent and at the same time, transfers the created access object to the proxy agent. The proxy agent performs access to the database by using the access object received from the intermediary agent. A result of database access is stored in an access object. The proxy agent acquires the access object, transfers the access object or the access result stored in the access object to the intermediary agent, and the intermediary agent provides the access result to the user. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、データベースのアクセス制御技術に関し、詳しくは、ユーザの代理として代理エージェントがデータベースへアクセスを行う際のデータベースアクセス制御方法及び装置、並びにそのプログラムに関する。
【0002】
【従来の技術】
一般にデータベースには、複数のユーザがデータを保存しているため、どのユーザがどのデータを登録、参照、更新、削除できるかはデータベースのアクセス制御機構によって制御されている。以下、データベースへのデータの登録、参照、更新、削除をまとめてデータベースへのアクセスと呼ぶことにする。例えば、データベースのアクセス制御機構では、ユーザAのデータにはユーザBはアクセスできず、またユーザBのデータにはユーザAはアクセスできないようにアクセス制御が行われる。
【0003】
このデータベースのアクセス制御方法としては、従来から、ユーザがデータベースに対して渡すユーザIDとパスワードの組等の認証情報を、データベースのアクセス制御機構にあらかじめ登録してある認証情報と比較することによりアクセスしようとしているユーザを特定し、次に特定されたユーザに対してどのデータにアクセスして良いかが設定されているアクセス制御リスト(Access Control List)に基づいて各データのアクセスに対しての許可、不許可を決定するという方式がある。これは既存の多くのデータベースに用いられている方法であり、データベースをアクセスするための言語の規格であるSQL92ではgrant文、revoke文によってアクセス制御リストにアクセス権限の情報を追加、削除することにより、ユーザに対するデータへのアクセス権限の付与、取り消しを行うよう規定されている。
【0004】
上記のアクセス制御方式はデータベースへのアクセスがデータベースにデータを格納しているユーザのみの場合のものである。一方、それとは異なる形態として、データベースへのアクセスをデータを格納しているユーザではなく、ユーザの代わりにデータベースへのアクセスを行う代理エージェントが行う場合がある。これはユーザが代理エージェントにデータベースへのアクセスを依頼するという方法で行われる。これは、例えばデータを加工処理する機能を代理エージェントが提供しており、ユーザはデータベースに保存してあるデータを代理エージェントに加工処理してもらい、ユーザはその処理結果を受け取るような場合である。
【0005】
ユーザの代理として代理エージェントがデータベースへアクセスを行う場合に考慮すべきことは、代理エージェントが依頼主のユーザのアクセス権限に基づいてデータベースへのアクセスを行うようにしなければならないという点がある。例えば、あるユーザAが代理エージェントに対してデータベースへのアクセスを依頼するときに、代理エージェントはユーザAに対してアクセスが許可されているデータしかアクセスできないようにアクセス制御されなければならない。すなわちユーザAの依頼にもかかわらず、代理エージェントがユーザAに許可されていないユーザBのデータにアクセスし、その情報をユーザAに返すようなことはあってはならない。代理エージェントが依頼主のユーザのアクセス権限に基づいてデータベースにアクセスすることをユーザから代理エージェントへのアクセス権限の委譲と呼ぶ。
【0006】
上記のような条件を満たすアクセス制御方法のもっとも単純なものとしては、ユーザが代理エージェントに対しデータベースにアクセスするための自分のユーザIDやパスワード等の認証情報を渡し、代理エージェントがその認証情報を利用してデータベースにアクセスしてそのユーザのデータを取得するという方法がある。
【0007】
また、別の方法としては、デジタル署名技術や暗号通信技術を利用して、ユーザによる代理エージェントへのアクセス権限の委譲が正しいものかどうかをデジタル証明書やデジタル署名、暗号化や一方向関数を用いて確認するものがある(例えば、特許文献1、特許文献2参照)。
【0008】
【特許文献1】
特開2001−101054号公報
【特許文献2】
特開2002−163235号公報
【0009】
【発明が解決しようとする課題】
しかし、ユーザが代理エージェントへ自分の認証情報を渡し、代理エージェントがその認証情報を利用してデータベースへアクセスする方法は、一般に代理エージェントはユーザとは異なる第三者の実体であり、ユーザは代理エージェントを必ずしも信頼することができない。そのため、例えばユーザAが代理エージェントにユーザIDとパスワード等の認証情報を渡してしまうと、代理エージェントはその認証情報を内部に保持しておき、他ユーザであるユーザBがアクセスしたときにその保持しておいた認証情報を使ってユーザAになりすまし、ユーザBには許可されていないはずのユーザAのデータにアクセスを許してしまうというような悪意を持った処理を代理エージェントが行わないと否定できず、ユーザは代理エージェントに処理を依頼することができない。
【0010】
また、デジタル署名技術や暗号通信技術を利用してアクセス権限の委譲等を確認する方法では、デジタル証明書やデジタル署名、暗号化、一方向関数など複雑な処理を行わなければならず、またユーザ、代理エージェント、データベース間で鍵情報や認証情報などのやりとりを何ステップも行わなければならない。またこれらの方法はアクセス権限を委譲するための方式に関してのみであり、委譲されたアクセス権限に基づいてデータベースにアクセスした結果が委譲もとのユーザに確実に返されることは保証されておらず、ユーザがデータベースのアクセスを依頼する代理エージェントへの適用には適切でない。
【0011】
そこで、本発明は、ユーザの代理として代理エージェントがデータベースアクセスを行う際に、代理エージェントが悪意を持ってデータベースにアクセスすることが不可能な仕組みを簡易な手法で提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、ユーザの代理として代理エージェントがデータベースへアクセスを行うデータベースアクセス制御装置に、代理エージェント機能の他に仲介エージェント機能を用意する。仲介エージェントは、データベースのアクセス制御の管理主体と同一とし、ユーザは仲介エージェントを信頼できるものとする。
【0013】
ユーザからの代理エージェントへのデータベースアクセス要求を仲介エージェントが受け取る。仲介エージェントは、データベースにアクセスするためのアクセスオブジェクトを生成し、ユーザからのアクセス依頼を代理エージェントに渡すと同時に生成したアクセスオブジェクトを代理エージェントに渡す。代理エージェントは、仲介エージェントから受け取ったアクセスオブジェクトを用いてデータベースにアクセスを行う。データベースをアクセスした結果はアクセスオブジェクトに格納される。代理エージェントがそのアクセスオブジェクトを取得し、該アクセスオブジェクトあるいはアクセスオブジェクトに格納されたアクセス結果を仲介エージェントに渡し、仲介エージェントがそのアクセス結果をユーザに渡す。
【0014】
仲介エージェントは、ユーザから仲介エージェントに渡されたユーザIDやパスワード等の認証情報を仲介エージェントが生成するアクセスオブジェクトに埋め込む。この認証情報は代理エージェントから参照できないように隠蔽しておくことにより、代理エージェントはユーザの認証情報にアクセスできないため、ユーザの認証情報を盗むことはできず、また認証情報をかいざんして違うユーザからのアクセスと偽ってデータベースにアクセスすることも不可能になる。
【0015】
また、データベースへアクセスした結果はアクセスオブジェクトに格納され、代理エージェントはユーザに直接アクセスオブジェクト内に格納されているアクセス結果を返すことはできず、仲介エージェントにそのアクセス結果を返却し、仲介エージェントがそのアクセス結果をユーザに返却するので、代理エージェントが依頼したユーザ以外の他ユーザにアクセス結果を返すということも不可能になる。
【0016】
これにより、代理エージェントは依頼を受けたユーザのアクセス権限でデータベースにアクセスし、また依頼を受けたユーザにしか処理結果を返すことができないため、悪意を持った処理を行うことが不可能になり、ユーザは安心して代理エージェントに自分のデータをアクセスさせる処理を依頼することが可能になる。
【0017】
【発明の実施の形態】
以下、本発明の一実施の形態を図面により詳しく説明する。
図1に本発明が適用されるシステム全体の構成図を示す。図1において、100は各ユーザの利用者端末装置、200はインターネット等のネットワーク、300は本発明にかかるデータベースアクセス制御装置、400は複数のユーザで共用されるデータベースである。データベース400は、ユーザのデータ、あらかじめ登録されたユーザの認証情報等を保持する。さらに、データベース400はアクセス制御機構を内蔵するが、図1では省略する。このデータベースアクセス制御装置300とデータベース400との間は直接接続あるいはネットワークを介しての接続のいずれでもよい。
【0018】
データベースアクセス制御装置300は、後述するように、代理エージェント機能としての代理処理部310、仲介エージェント機能としての仲介処理部320、及び、アクセスオブジェクト機能としてのアクセス処理部330から構成される。
【0019】
データベースアクセス制御装置300の実体はコンピュータであり、CPUやメモリ等のハードウエア資源の環境下で、ソフトウエアとしてのプログラムが動作して所望の処理を実行する。ここでは、ユーザの代理としてデータベース400へアクセスし、該当ユーザの利用者端末100へアクセス結果を渡す処理を実行する。
【0020】
以下では、データベースアクセス制御装置300の代理処理部310、仲介処理部320、アクセス処理部330をそれぞれ代理エージェント、仲介エージェント、アクセスオブジェクトと呼び、オブジェクト指向のプログラミング言語によるプログラムとして実施した例を説明する。代理エージェント310は仲介エージェント320を拡張したクラスとして実現する。
【0021】
図2に本実施例の全体処理シーケンス例を示す。また、図3に代理エージェント310の処理フロー例、図4に仲介エージェント320の処理フロー例を示す。
【0022】
ユーザは利用者端末装置100から代理エージェント310に対してアクセス依頼メソッドまたは関数(以下、メソッドと省略)を呼び出すことにより、データベース400へのアクセスの依頼を行う。ただし、代理エージェント310は仲介エージェント320を拡張したクラスであり、ユーザが呼び出すメソッドはスーパークラスの仲介エージェントクラスにあるメソッドとしておくことにより、結果的に代理エージェント310ではなく仲介エージェント320のメソッドが呼び出される(図2の手続き1)。また、その際、拡張したクラスである代理エージェント310でそのメソッドをオーバーライドできないようにしておく。例えばJava言語であればアクセス依頼メソッドにfinalize修飾子をつける。これにより代理エージェント310が、ユーザからアクセスの依頼を受ける仲介エージェント320のアクセス依頼メソッドをオーバーライドする偽のメソッドを作成して処理を横取りすることを防ぐようにする。また、ユーザが仲介エージェント320のメソッドを呼び出すときに、その引数などで検索条件及びユーザIDとパスワードなどのユーザの認証情報を渡す。
【0023】
仲介エージェント320は、ユーザからアクセス依頼を受け取ると(図4の2001)、アクセスを依頼したユーザを認証、特定し、その認証情報を保持しておく(図4の2002)。このユーザを認証、特定する方法としては、WWWアプリケーションで用いられているセッションIDを用いて行う方法がある。次に、仲介エージェント320は、ユーザからのアクセス依頼を代理エージェント310に渡す(図2の手続き2、図4の2003)。この時、仲介エージェント320、は、ユーザからの検索条件は代理エージェント320へ渡すが、認証情報を渡すことはしない。
【0024】
ユーザからのアクセス依頼を仲介エージェント320から代理エージェント310に渡すことにより、代理エージェント310の処理が開始する。代理エージェント310は、アクセス依頼を受け取ると(図3の1001)、ユーザの検索条件を保持し(図3の1002)、仲介エージェント320に対してデータベース400を検索するためのアクセスオブジェクトの生成を依頼する(図2の手続き3、図3の1003)。アクセスオブジェクトの生成を依頼された仲介エージェント320は、アクセスオブジェクト330を生成し(図4の2004、2005)、先に保持したデータベースへのアクセスを行うためのユーザID,パスワード等の認証情報(データベース認証情報)をアクセスオブジェクト330内に設定する(図4の2006)。図5にアクセスオブジェクトの構成例を示す。最初はデータベース認証情報、アクセス結果情報はNULLである。このアクセスオブジエクト内のデータベース認証情報は代理エージェント310からは参照できないようにしておく。例えばJava言語であれば、認証情報を格納した変数のスコープを可視性修飾子をつけないデフォルトスコープに設定し、代理エージェントクラスを異なるパッケージとすれば、代理エージェントクラスから認証情報を格納した変数にアクセスすることを防ぐことができる。仲介エージェント320は、生成したアクセスオブジェクト330を代理エージェント310に渡す(図2の手続き4、図4の2007)。
【0025】
次に、仲介エージェント320からアクセスオブジェクト330を受け取った代理エージェント310は、該アクセスオブジェクト330を用いて、次のようにしてデータベース400のアクセスを実行する。代理エージェント310は、仲介エージェント320からアクセスオブジェクト330を受け取ると(図3の1004)、アクセスオブジェクト330に検索条件などを設定して(図3の1005)、データベースの検索や更新等のアクセスを依頼する(図2の手続き5、図3の1006)。どのようなアクセスを依頼するかの指定方式としては、SQL文を渡す方式、アクセスオブジェクト330が用意したデータベースアクセスメソッドを利用する方式がある。例えば、図5の場合では、データベースアクセスメソッドの引数として検索条件などを設定してアクセスを依頼する。
【0026】
代理エージェント310からデータベース400のアクセス依頼(起動)を受けたアクセスオブジェクト330は、内部に保持されたデータベース認証情報を用いて、データベース400に接続し、データベース400へのアクセスを行う(図2の手続き6)。データベース400のアクセス制御機構は、アクセスオブジェクト330から渡されるデータベース認証情報を、あらかじめ登録してある認証情報と比較することにより、アクセスを行おうとしているユーザを特定し、そのユーザに許可されているデータの範囲のみを対象として、依頼されたアクセス処理を行い、アクセス結果をアクセスオブジェクト330に返す(図2の手続き7)。データベース400からアクセス結果を受け取ったアクセスオブジェクト330は、そのアクセス結果を内部に格納し、代理エージェント310へ返す(図2の手続き8)。
【0027】
代理エージェント310は、データベース3400へのアクセス処理を終えたアクセスオブジェクト330を受け取ると(図3の1007)、そのアクセスオブジェクトを仲介エージェント320に返す(手続き9、図3の1008、1010)。また、代理エージェント310は、受け取ったアクセスオブジェクト330をそのまま仲介エージェント320に返すのではなく、アクセスオブジェクト内に格納されたアクセス結果を取り出し、加工、編集、計算などの処理を行い、その処理結果を再びアクセスオブジェクト330に格納し、それを仲介エージェント320に返すということもありうる(図3の1008、1009、1010)。また、代理エージェント310は、仲介エージェント320にアクセスオブジェクト330をそのまま返すのではなく、アクセスオブジェクト330から取り出したアクセス結果またはそれに対する処理結果を返すということもありうる。この時点で、代理エージェント310の処理は終了となる。
【0028】
仲介エージェント320は、代理エージェント310からアクセスオブジェクト330を受け取ると(図4の2008)、依頼主のユーザの利用者端末100へ、この受け取ったアクセスオブジェクト、またはそのアクセスオブジェクトから取り出したデータを返す(図2の手続き10図4の2009)。これにより、ユーザは代理エージェント310に依頼したデータベース400へアクセスした結果を得ることができる。
【0029】
上記した代理エージェント310と仲介エージェント320はデザインパターンのテンプレートメソッドを用いて実現することができる(テンプレートメソッドに関しては、例えば、結城浩著「Java言語で学ぶデザインパターン入門」ソフトバンク社 pp.31「第3章Template Method」に詳しい)。すなわち、仲介エージェント320がスーパークラスとなり、ユーザを認証する処理、アクセスオブジェクト330を生成する処理、代理エージェント310からアクセス結果を受け取りユーザに返却する処理などの共通のテンプレートとなる処理を記述し、一方、代理エージェント310がサブクラスとなり、データベース400への具体的な検索処理やアクセス結果に所望処理を行う処理などのそれぞれの代理エージェント固有の具体的な処理を記述する。
【0030】
なお、アクセスオブジェクトは、例えばメモリ内に記述して、代理エージェント310及び仲介エージェント320が該メモリをアクセスして所定の処理を行うことも可能である。この場合、代理エージェント310からは認証情報の格納領域をアクセスできないようにする。また、アクセス処理部330がアクセスオブジェクトの処理機能の実体として、該アクセス処理部330がアクセスオブジェクトのデータベースアクセスメソッドに基づいてデータベース400を実際にアクセスする。
【0031】
上述したように、図1で示したデータベースアクセス制御装置における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2、図3、図4で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【0032】
【発明の効果】
本発明により、代理エージェントは依頼主のユーザ以外のアクセス権限でデータベースにアクセスできず、またアクセス結果も依頼主のユーザにしか返すことができないため、ユーザは悪意を持った行為を行われることを心配することなく、データベースを検索する処理、またその検索結果を加工処理する代理エージェントを利用することが可能になる。それにより、ユーザは第三者が用意する様々な有用な処理を行う代理エージェントを利用することが可能になる。
【図面の簡単な説明】
【図1】本発明が適用されるシステム全体の構成図である。
【図2】本発明による処理シーケンス例である。
【図3】代理エージェントの処理フロー例である。
【図4】仲介エージェントの処理フロー例である。
【図5】アクセスオブジェクトの構成例である。
【符号の説明】
100 利用者端末
200 ネットワーク
300 データベースアクセス制御装置
310 代理処理部(代理エージェント)
320 仲介処理部(仲介エージェント)
330 アクセス処理部(アクセスオブジェクト)
400 データベース
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a database access control technique, and more particularly, to a database access control method and apparatus when a proxy agent accesses a database on behalf of a user, and a program thereof.
[0002]
[Prior art]
Generally, since a plurality of users store data in a database, an access control mechanism of the database controls which user can register, refer to, update, and delete which data. Hereinafter, registration, reference, update, and deletion of data in the database will be collectively referred to as access to the database. For example, in the access control mechanism of the database, the access control is performed so that the user B cannot access the data of the user A and the user A cannot access the data of the user B.
[0003]
Conventionally, as a method for controlling access to the database, authentication is performed by comparing authentication information such as a set of a user ID and a password that a user passes to the database with authentication information registered in advance in an access control mechanism of the database. The user who is going to be specified is specified, and permission for access to each data is set based on an access control list (Access Control List) in which which data can be accessed for the next specified user is set. , There is a method of determining non-permission. This is a method used for many existing databases. In SQL92 which is a language standard for accessing a database, information of access authority is added to or deleted from an access control list by a grant statement and a revoke statement. It is stipulated that a user is given or revoked access authority to data.
[0004]
The above access control method is for the case where access to the database is limited to the user who stores data in the database. On the other hand, as a different form, there is a case where access to the database is performed not by the user storing the data but by a proxy agent that accesses the database on behalf of the user. This is done in such a way that the user requests a proxy agent to access the database. This is the case, for example, in which a proxy agent provides a function of processing data, and the user has the proxy agent process data stored in the database, and the user receives the processing result. .
[0005]
One thing to consider when the proxy agent accesses the database on behalf of the user is that the proxy agent must access the database based on the access authority of the requester user. For example, when a certain user A requests the proxy agent to access the database, the proxy agent must be access-controlled so that only the data to which the user A is permitted access can be accessed. That is, despite the request of the user A, the proxy agent must not access the data of the user B who is not permitted to the user A and return the information to the user A. Accessing the proxy agent to the database based on the access authority of the requester's user is referred to as transfer of access authority from the user to the proxy agent.
[0006]
The simplest access control method that satisfies the above conditions is that a user passes his / her user ID and password, etc., to the proxy agent to access the database, and the proxy agent sends the authentication information to the proxy agent. There is a method in which a user accesses a database to acquire data of the user.
[0007]
Another method is to use digital signature technology or cryptographic communication technology to check whether the user's delegation of access authority to the proxy agent is correct, using digital certificates, digital signatures, encryption, and one-way functions. There is one that confirms the use (for example, see Patent Documents 1 and 2).
[0008]
[Patent Document 1]
JP 2001-101054 A [Patent Document 2]
Japanese Patent Application Laid-Open No. 2002-163235
[Problems to be solved by the invention]
However, in a method in which a user passes his / her authentication information to a proxy agent, and the proxy agent uses the authentication information to access a database, generally, the proxy agent is an entity of a third party different from the user, and the user Agents cannot always be trusted. Therefore, for example, if the user A passes authentication information such as a user ID and a password to the proxy agent, the proxy agent holds the authentication information internally, and holds the authentication information when another user, User B, accesses it. Denies that the proxy agent does not perform malicious processing such as impersonating the user A using the authentication information that has been set and permitting the user B to access the data of the user A, which should not be permitted to the user B. No, the user cannot request processing from the proxy agent.
[0010]
In the method of confirming the delegation of access authority using digital signature technology or encryption communication technology, complicated processing such as digital certificate, digital signature, encryption, and one-way function must be performed. The exchange of key information and authentication information between the proxy agent and the database must be performed in many steps. Also, these methods are only related to a method for delegating access rights, and there is no guarantee that the result of accessing the database based on the delegated access rights is reliably returned to the delegating user, It is not appropriate for application to a proxy agent where a user requests access to a database.
[0011]
Accordingly, an object of the present invention is to provide a mechanism by which a proxy agent cannot access a database maliciously when a proxy agent accesses a database on behalf of a user by a simple method.
[0012]
[Means for Solving the Problems]
According to the present invention, a mediation agent function is provided in addition to a proxy agent function in a database access control device in which a proxy agent accesses a database on behalf of a user. The mediation agent is assumed to be the same as the management entity of the access control of the database, and the user can trust the mediation agent.
[0013]
The mediation agent receives a database access request from the user to the proxy agent. The mediation agent generates an access object for accessing the database, passes an access request from the user to the proxy agent, and simultaneously passes the generated access object to the proxy agent. The proxy agent accesses the database using the access object received from the mediation agent. The result of accessing the database is stored in the access object. The proxy agent acquires the access object, passes the access object or the access result stored in the access object to the mediation agent, and the mediation agent passes the access result to the user.
[0014]
The mediation agent embeds authentication information such as a user ID and a password passed from the user to the mediation agent in an access object generated by the mediation agent. By hiding the authentication information so that it cannot be referred to by the proxy agent, the proxy agent cannot access the user's authentication information, so that the user's authentication information cannot be stolen, and the authentication information cannot be stolen by another user. It would also be impossible to access the database as if it had been accessed from.
[0015]
Also, the result of accessing the database is stored in the access object, and the proxy agent cannot return the access result stored in the access object directly to the user, but returns the access result to the mediation agent, and the mediation agent Since the access result is returned to the user, it is impossible to return the access result to a user other than the user requested by the proxy agent.
[0016]
As a result, the proxy agent can access the database with the access authority of the requested user and can return the processing result only to the requested user, making it impossible to perform malicious processing. Thus, the user can request the proxy agent to perform a process for accessing his / her data with confidence.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 1 shows a configuration diagram of an entire system to which the present invention is applied. In FIG. 1, 100 is a user terminal device of each user, 200 is a network such as the Internet, 300 is a database access control device according to the present invention, and 400 is a database shared by a plurality of users. The database 400 holds user data, user authentication information registered in advance, and the like. Further, although the database 400 has a built-in access control mechanism, it is omitted in FIG. The connection between the database access control device 300 and the database 400 may be either a direct connection or a connection via a network.
[0018]
As described later, the database access control device 300 includes a proxy processing unit 310 as a proxy agent function, a mediation processing unit 320 as a mediation agent function, and an access processing unit 330 as an access object function.
[0019]
The substance of the database access control device 300 is a computer, and a program as software operates under a hardware resource environment such as a CPU and a memory to execute a desired process. Here, a process of accessing the database 400 on behalf of the user and passing the access result to the user terminal 100 of the user is executed.
[0020]
Hereinafter, an example in which the proxy processing unit 310, the mediation processing unit 320, and the access processing unit 330 of the database access control device 300 are referred to as a proxy agent, a mediation agent, and an access object, respectively, and are implemented as programs in an object-oriented programming language will be described. . The proxy agent 310 realizes the mediation agent 320 as an extended class.
[0021]
FIG. 2 shows an example of the entire processing sequence of this embodiment. FIG. 3 shows an example of the processing flow of the proxy agent 310, and FIG. 4 shows an example of the processing flow of the mediation agent 320.
[0022]
The user requests access to the database 400 by calling an access request method or function (hereinafter abbreviated as a method) from the user terminal device 100 to the proxy agent 310. However, the proxy agent 310 is a class that is an extension of the mediation agent 320, and the method called by the user is a method in the superclass mediation agent class, so that the method of the mediation agent 320 is called instead of the proxy agent 310. (Procedure 1 in FIG. 2). At this time, the method is not allowed to be overridden by the proxy agent 310 which is an extended class. For example, in the case of the Java language, a finalize qualifier is added to the access request method. This prevents the proxy agent 310 from creating a fake method that overrides the access request method of the mediation agent 320 that receives a request for access from the user to intercept the processing. Further, when the user calls the method of the mediation agent 320, the search condition and the user authentication information such as the user ID and the password are passed by the argument or the like.
[0023]
Upon receiving the access request from the user (2001 in FIG. 4), the mediation agent 320 authenticates and specifies the user who has requested the access, and holds the authentication information (2002 in FIG. 4). As a method of authenticating and specifying the user, there is a method of using a session ID used in a WWW application. Next, the mediation agent 320 passes the access request from the user to the proxy agent 310 (procedure 2 in FIG. 2, and 2003 in FIG. 4). At this time, the mediation agent 320 passes the search condition from the user to the proxy agent 320, but does not pass the authentication information.
[0024]
By passing the access request from the user from the mediation agent 320 to the proxy agent 310, the processing of the proxy agent 310 starts. Upon receiving the access request (1001 in FIG. 3), the proxy agent 310 holds the search conditions of the user (1002 in FIG. 3), and requests the mediation agent 320 to generate an access object for searching the database 400. (Procedure 3 in FIG. 2 and 1003 in FIG. 3). The mediation agent 320 requested to generate the access object generates the access object 330 (2004 and 2005 in FIG. 4), and authenticates information (database such as a user ID and a password for accessing the previously held database). Authentication information) is set in the access object 330 (2006 in FIG. 4). FIG. 5 shows a configuration example of the access object. Initially, the database authentication information and the access result information are NULL. The database authentication information in this access object cannot be referenced from the proxy agent 310. For example, in the case of the Java language, if the scope of a variable storing authentication information is set to a default scope without a visibility qualifier and the proxy agent class is a different package, the variable storing the authentication information from the proxy agent class becomes Access can be prevented. The mediation agent 320 passes the generated access object 330 to the proxy agent 310 (procedure 4 in FIG. 2 and 2007 in FIG. 4).
[0025]
Next, the proxy agent 310 receiving the access object 330 from the mediation agent 320 uses the access object 330 to access the database 400 as follows. Upon receiving the access object 330 from the mediation agent 320 (1004 in FIG. 3), the proxy agent 310 sets search conditions and the like in the access object 330 (1005 in FIG. 3) and requests access to search or update the database. (Procedure 5 in FIG. 2 and 1006 in FIG. 3). As a method of designating what kind of access is requested, there are a method of passing an SQL statement and a method of using a database access method prepared by the access object 330. For example, in the case of FIG. 5, an access is requested by setting a search condition or the like as an argument of the database access method.
[0026]
The access object 330 that has received the access request (activation) of the database 400 from the proxy agent 310 connects to the database 400 and accesses the database 400 using the database authentication information stored therein (procedure in FIG. 2). 6). The access control mechanism of the database 400 compares the database authentication information passed from the access object 330 with the authentication information registered in advance to identify the user who is going to access, and is authorized by the user. The requested access processing is performed only for the data range, and the access result is returned to the access object 330 (procedure 7 in FIG. 2). The access object 330 receiving the access result from the database 400 stores the access result internally and returns it to the proxy agent 310 (procedure 8 in FIG. 2).
[0027]
Upon receiving the access object 330 that has completed the access processing to the database 3400 (1007 in FIG. 3), the proxy agent 310 returns the access object to the mediation agent 320 (procedure 9, 1008 and 1010 in FIG. 3). Also, the proxy agent 310 does not return the received access object 330 to the mediation agent 320 as it is, but extracts the access result stored in the access object, performs processing such as processing, editing, calculation, and the like. It may be stored in the access object 330 again and returned to the mediation agent 320 (1008, 1009, 1010 in FIG. 3). Further, instead of returning the access object 330 to the mediation agent 320 as it is, the proxy agent 310 may return an access result extracted from the access object 330 or a processing result corresponding thereto. At this point, the processing of the proxy agent 310 ends.
[0028]
Upon receiving the access object 330 from the proxy agent 310 (2008 in FIG. 4), the mediation agent 320 returns the received access object or data extracted from the access object to the user terminal 100 of the requester user (2008). Procedure 10 in FIG. 2 and 2009 in FIG. 4). Thus, the user can obtain the result of accessing the database 400 requested by the proxy agent 310.
[0029]
The proxy agent 310 and the mediation agent 320 described above can be realized using a template method of a design pattern. (For the template method, for example, Hiroshi Yuki, “Introduction to Design Patterns Learned in the Java Language,” Softbank pp. 31 “No. See Chapter 3, Template Method.) That is, the mediation agent 320 becomes a super class, and describes a process serving as a common template such as a process of authenticating a user, a process of generating an access object 330, and a process of receiving an access result from the proxy agent 310 and returning it to the user. The proxy agent 310 becomes a subclass, and describes specific processes specific to each proxy agent, such as a specific search process for the database 400 and a process for performing a desired process on an access result.
[0030]
The access object can be described in, for example, a memory, and the proxy agent 310 and the mediation agent 320 can access the memory and perform a predetermined process. In this case, the proxy agent 310 is prevented from accessing the authentication information storage area. In addition, the access processing unit 330 actually accesses the database 400 based on the database access method of the access object as an entity of the processing function of the access object.
[0031]
As described above, part or all of the processing functions of each unit in the database access control device shown in FIG. 1 can be configured by a computer program, and the program can be executed using a computer to realize the present invention. Alternatively, it goes without saying that the processing procedures shown in FIGS. 2, 3, and 4 can be configured by a computer program, and the computer can execute the program. Further, a program for realizing the processing function by the computer or a program for causing the computer to execute the processing procedure is stored in a computer-readable recording medium such as an FD, an MO, a ROM, a memory card, and a CD. , A DVD, a removable disk, or the like, and can be stored or provided, and the program can be distributed through a network such as the Internet.
[0032]
【The invention's effect】
According to the present invention, since the proxy agent cannot access the database with an access authority other than the requester's user, and can return the access result only to the requester's user, the user can perform malicious acts. Without worry, it becomes possible to use a database search process and a proxy agent that processes the search results. This allows the user to use a proxy agent that performs various useful processes prepared by a third party.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an entire system to which the present invention is applied.
FIG. 2 is an example of a processing sequence according to the present invention.
FIG. 3 is an example of a processing flow of a proxy agent.
FIG. 4 is an example of a processing flow of a mediation agent.
FIG. 5 is a configuration example of an access object.
[Explanation of symbols]
100 User terminal 200 Network 300 Database access control device 310 Proxy processing unit (proxy agent)
320 Mediation Processing Unit (Mediation Agent)
330 Access Processing Unit (Access Object)
400 database

Claims (3)

データベースアクセス制御装置がユーザの代理としてデータベースへアクセスを行う際のデータベースアクセス制御方法において、
ユーザからの代理エージェントへのデータベースアクセス要求を仲介エージェントに依頼するステップと、
前記仲介エージェントがデータベースにアクセスするためのアクセスオブジェクトを生成するステップと、
前記仲介エージェントがユーザからのアクセス依頼を前記代理エージェントに渡すと共に前記生成したアクセスオブジェクトを代理エージェントに渡すステップと、
前記代理エージェントが、前記仲介エージェントから受け取ったアクセスオブジェクトを用いてデータベースにアクセスを行い、データベースをアクセスした結果が格納されたアクセスオブジェクトを取得するステップと、
前記代理エージェントがアクセスオブジェクトに格納されたアクセス結果あるいは当該アクセスオブジェクトを仲介エージェントに渡すステップと、
前記仲介エージェントが、前記アクセス結果をユーザに渡すステップと、
からなることを特徴とするデータベースアクセス制御方法。
In a database access control method when a database access control device accesses a database on behalf of a user,
Requesting the mediation agent for a database access request from the user to the proxy agent;
Generating an access object for the mediation agent to access a database;
The mediation agent passes an access request from a user to the proxy agent and passes the generated access object to the proxy agent;
A step in which the proxy agent accesses the database using the access object received from the mediation agent, and obtains an access object in which a result of accessing the database is stored;
The proxy agent passing the access result stored in the access object or the access object to the mediation agent;
The mediation agent passing the access result to a user;
A database access control method, comprising:
ユーザの代理としてデータベースへアクセスを行う代理処理部と、前記代理処理部の仲介を行う仲介処理部を備えたデータベースアクセス制御装置であって、
前記仲介処理部は、利用者端末からのデータベースアクセス要求を受け取り、データベースにアクセスするためのアクセスオブジェクトを生成して、前記代理処理部へデータベースのアクセスを依頼し、前記代理処理部から受け取ったアクセス結果を前記利用者端末へ返却する機能を備え、
前記代理処理部は、前記アクセスオブジェクトを用いてデータベースにアクセスを行い、アクセス結果が格納されたアクセスオブジェクトを取得し、該アクセスオブジェクトあるいは該アクセスオブジェクトに格納されたアクセス結果を前記仲介処理部へ返却する機能を備える、
ことを特徴とするデータベースアクセス制御装置。
A proxy processing unit that accesses a database on behalf of a user, and a database access control device including a mediation processing unit that mediates the proxy processing unit,
The mediation processing unit receives a database access request from a user terminal, generates an access object for accessing the database, requests the proxy processing unit to access the database, and receives the access received from the proxy processing unit. A function of returning a result to the user terminal,
The proxy processing unit accesses the database using the access object, acquires an access object storing the access result, and returns the access object or the access result stored in the access object to the mediation processing unit With the ability to
A database access control device, characterized in that:
データベースアクセス制御装置がユーザの代理としてデータベースへアクセスを行うためのコンピュータで実行可能なプログラムであって、
ユーザからの代理エージェントへのデータベースアクセス要求を仲介エージェントに依頼するステップと、
前記仲介エージェントがデータベースにアクセスするためのアクセスオブジェクトを生成するステップと、
前記仲介エージェントがユーザからのアクセス依頼を前記代理エージェントに渡すと共に前記生成したアクセスオブジェクトを代理エージェントに渡すステップと、
前記代理エージェントが、前記仲介エージェントから受け取ったアクセスオブジェクトを用いてデータベースにアクセスを行うステップと、
前記データベースをアクセスした結果を前記アクセスオブジェクト内に格納するステップと、
前記代理エージェントが前記アクセス結果の格納されたアクセスオブジェクトを取得し、該アクセスオブジェクトあるいは該アクセスオブジェクトに格納されたアクセス結果を仲介エージェントに渡すステップと、
前記仲介エージェントが、前記アクセス結果をユーザに渡すステップと、
を含むことを特徴とするプログラム。
A computer-executable program for a database access control device to access a database on behalf of a user,
Requesting the mediation agent for a database access request from the user to the proxy agent;
Generating an access object for the mediation agent to access a database;
The mediation agent passes an access request from a user to the proxy agent and passes the generated access object to the proxy agent;
The proxy agent accessing a database using an access object received from the mediation agent;
Storing the result of accessing the database in the access object;
A step in which the proxy agent acquires an access object in which the access result is stored, and passes the access object or the access result stored in the access object to a mediation agent;
The mediation agent passing the access result to a user;
A program characterized by including:
JP2003045921A 2003-02-24 2003-02-24 Database access control method and program Expired - Lifetime JP4183072B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003045921A JP4183072B2 (en) 2003-02-24 2003-02-24 Database access control method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003045921A JP4183072B2 (en) 2003-02-24 2003-02-24 Database access control method and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008129713A Division JP4391568B2 (en) 2008-05-16 2008-05-16 Database access control method

Publications (2)

Publication Number Publication Date
JP2004258743A true JP2004258743A (en) 2004-09-16
JP4183072B2 JP4183072B2 (en) 2008-11-19

Family

ID=33112604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003045921A Expired - Lifetime JP4183072B2 (en) 2003-02-24 2003-02-24 Database access control method and program

Country Status (1)

Country Link
JP (1) JP4183072B2 (en)

Also Published As

Publication number Publication date
JP4183072B2 (en) 2008-11-19

Similar Documents

Publication Publication Date Title
JP4390911B2 (en) Permission to control access to services in a protected memory system
US6754829B1 (en) Certificate-based authentication system for heterogeneous environments
EP1645971B1 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
US9985969B1 (en) Controlling use of computing-related resources by multiple independent parties
JP6066647B2 (en) Device apparatus, control method thereof, and program thereof
RU2348070C2 (en) Methods and systems of user identification in subareas of network area
KR101278786B1 (en) Resource based dynamic security authorization
US7823189B2 (en) System and method for dynamic role association
CA2923740C (en) Software code signing system and method
JP5620374B2 (en) Allow protected content for application sets
US8756429B2 (en) Tunable encryption system
US20020078365A1 (en) Method for securely enabling an application to impersonate another user in an external authorization manager
US20050177724A1 (en) Authentication system and method
US8468359B2 (en) Credentials for blinded intended audiences
JP2004533046A (en) Server support method and system for pluggable authorization system
Jaeger et al. Building systems that flexibly control downloaded executable content
EP2212822A2 (en) Multi-factor content protection
JP2001077858A (en) Communication network managing method, mobile agent movement managing method, and communication network
WO2016190949A1 (en) Authorization in a distributed system using access control lists and groups
Fernandez et al. More Patterns for Operating System Access Control.
Nagaratnam et al. Resource access control for an internet user agent
JP4183072B2 (en) Database access control method and program
JP4391568B2 (en) Database access control method
Molva et al. A distributed access control model for Java
Siriwardena et al. UMA Evolution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080516

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: 20080827

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: 20080827

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

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4183072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term