JP6004454B2 - データベースへのアクセスを制御する装置及び方法 - Google Patents

データベースへのアクセスを制御する装置及び方法 Download PDF

Info

Publication number
JP6004454B2
JP6004454B2 JP2014195746A JP2014195746A JP6004454B2 JP 6004454 B2 JP6004454 B2 JP 6004454B2 JP 2014195746 A JP2014195746 A JP 2014195746A JP 2014195746 A JP2014195746 A JP 2014195746A JP 6004454 B2 JP6004454 B2 JP 6004454B2
Authority
JP
Japan
Prior art keywords
user
login
database
data
access
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.)
Active
Application number
JP2014195746A
Other languages
English (en)
Other versions
JP2016066307A (ja
Inventor
敦史 野口
敦史 野口
加奈子 内海
加奈子 内海
尚子 西浦
尚子 西浦
智宏 岩橋
智宏 岩橋
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014195746A priority Critical patent/JP6004454B2/ja
Priority to US14/827,491 priority patent/US10339329B2/en
Publication of JP2016066307A publication Critical patent/JP2016066307A/ja
Application granted granted Critical
Publication of JP6004454B2 publication Critical patent/JP6004454B2/ja
Priority to US16/402,323 priority patent/US11036878B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データベースへのアクセスを制御する装置及び方法に関する。特に、本発明は、ユーザによるデータベースへのアクセスを制御する装置及び方法に関する。
既存のウェブシステムは、1つのウェブブラウザから1人のユーザがログインすることを想定している。ところが、近年、プロジェクタや液晶モニタの大型化や画面の共有ツール等の進歩により、1つのウェブ画面を複数のユーザが共有して参照及び操作を行う利用形態も考えられている。例えば、プロジェクタに接続したノートPCに外付けUSBキーボード又はマウスを接続した環境で、このような利用形態は実現される。尚、ウェブシステム以外の一般的なコンピュータシステムにおいても、同様である。
ここで、複数のユーザが共同でデータにアクセスする技術は、公報記載の技術としても知られている(例えば、特許文献1、2参照)。
特許文献1は、複数のクライアント装置が接続するサーバ装置上に、複数ユーザが同時に編集するファイルを配置し、アクセス要求があった場合には参照・編集用にファイルをコピーして編集用のファイルを作成し、サーバ装置はクライアント装置に対して、編集用ファイルの参照・編集に必要な箇所を画面表示するための情報を、画面表示に変更が発生するタイミング毎に転送し、クライアント装置は、サーバ装置に対して画面上で行なわれた編集操作に関する情報を転送することにより、常にファイルの最新状態を複数のクライアント装置間で共有可能とするファイル共有管理システムを開示する。
特許文献2は、記憶装置に格納されたファイルを展開するファイル展開メモリと、ファイル展開メモリに展開されたファイルにアクセスしているユーザのユーザ情報を格納するユーザ管理テーブルと、ファイル展開メモリに展開されたファイルを書き換える書換情報を受け付ける通信手段と、この書換情報に基づいてファイル展開メモリに展開されたファイルを書き換えるファイル書換手段と、書き換えられたファイルをユーザ管理テーブルに格納されているユーザ情報のユーザに対して通知する通知手段とを備えるファイルアクセスシステムを開示する。
特開2011−141814号公報 特開2000−132445号公報
上述したように、1つのウェブ画面を複数ユーザで共有する場合、認証(ログイン)が必要なウェブシステムでは、従来、複数ユーザのうち何れか1人のユーザIDによりログインせざるを得なかった。このため、ウェブ画面上に表示されるデータは、ログイン中のユーザがアクセス可能なデータに留まっていた。仮に、他のユーザがアクセス可能なデータをウェブ画面上に表示したければ、ログイン中のユーザは一旦ログオフし、改めて他のユーザIDでログインする必要があった。従って、ログイン中のユーザはログインしたままの状態で他のユーザがアクセス可能なデータをウェブ画面に表示することはできないという課題があった。特に、ログイン中のユーザがアクセス可能なデータと他のユーザがアクセス可能なデータとの和集合、積集合等をウェブ画面上に表示することはできなかった。尚、ウェブシステム以外の一般的なコンピュータシステムにおいても、同様の課題は指摘できる。
ここで、特許文献1、2に記載されたように、複数のユーザが共同でデータにアクセスする技術は公知であったが、何れの技術も、上記課題を解決する手段を提示するものではない。
本発明の目的は、複数ユーザによるログインを可能にし、ログイン中のユーザが他のユーザがアクセス可能なデータベースの部分にもアクセスできるようにすることにある。
かかる目的のもと、本発明は、ユーザによるデータベースへのアクセスを制御する装置であって、第1のユーザによる第1のログインと、第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、第1のログインと第2のログインとを受け付けた後に、第1のユーザ又は第2のユーザの名義でデータベースの参照が要求されると、第1のユーザがアクセス可能なデータベースの第1のデータと、第2のユーザがアクセス可能なデータベースの第2のデータとに基づく第3のデータを参照するアクセスを行うアクセス部とを含む、装置を提供する。
ここで、この装置は、第1のログインと第2のログインとを受け付けると、第1のユーザと第2のユーザとの組み合わせを示す一時的なユーザがログインしていることを示すログイン情報を記憶する記憶部を更に備え、アクセス部は、ログイン情報に基づいて、第1のログインと第2のログインとを受け付けた後であることを認識する、ものであってよい。
また、この装置は、第1のログインと第2のログインとを受け付けると、第1のユーザと第2のユーザとの組み合わせを示す一時的なユーザのデータベースへのアクセス権限を示すアクセス権限情報を記憶する記憶部を更に備え、アクセス部は、アクセス権限情報に基づいて、第3のデータを特定する、ものであってよい。
また、アクセス部は、第1のデータ及び第2のデータの和集合又は積集合である第3のデータを参照するアクセスを行う、ものであってもよい。
また、第1のデータと第2のデータとに共通の項目に対応する第1のデータの部分と第2のデータの部分とに所定の計算を行って得られた第3のデータを出力する出力部を更に含む、ものであってよい。
また、アクセス部は、第1のログインと第2のログインとを受け付けた後に、第1のユーザ及び第2のユーザのうちの一のユーザの名義でデータベースの更新が要求されると、一のユーザがアクセス可能なデータベースのデータを更新するアクセスを、第1のユーザ及び第2のユーザがログインした状態で行う、ものであってよい。その場合、受付部は、データベースを参照する参照モードからデータベースを更新する更新モードへ切り替える切替指示を受け付け、切替指示に対する問い合わせに応答して入力された一のユーザの情報を受け付ける、ものであってよい。
また、本発明は、項目及び項目に対応する数値を含むデータベースのレコードへのユーザによるアクセスを制御する装置であって、第1のユーザによる第1のログインと、第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、第1のログインと第2のログインとを受け付けた後に、第1のユーザ又は第2のユーザの名義でデータベースのレコードの出力が要求されると、第1のユーザがアクセス可能な第1のレコード及び第2のユーザがアクセス可能な第2のレコードが同じ項目を含んでいれば、第1のレコード及び第2のレコードを一のレコードとし、第1のレコードに含まれる項目に対応する数値及び第2のレコードに含まれる項目に対応する数値の合算値を一のレコードに含めることにより、生成されたレコードを出力する出力部とを含む、装置も提供する。
更に、本発明は、ユーザによるデータベースへのアクセスを制御する方法であって、第1のユーザによる第1のログインと、第1のユーザによる第2のユーザ名義での第2のログインとを受け付けるステップと、第1のログインと第2のログインとを受け付けた後に、第1のユーザ又は第2のユーザの名義でデータベースの参照が要求されると、第1のユーザがアクセス可能なデータベースの第1のデータと、第2のユーザがアクセス可能なデータベースの第2のデータとに基づく第3のデータを参照するステップとを含む、方法も提供する。
更にまた、本発明は、ユーザによるデータベースへのアクセスを制御する装置として、コンピュータを機能させるプログラムであって、コンピュータを、第1のユーザによる第1のログインと、第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、第1のログインと第2のログインとを受け付けた後に、第1のユーザ又は第2のユーザの名義でデータベースの参照が要求されると、第1のユーザがアクセス可能なデータベースの第1のデータと、第2のユーザがアクセス可能なデータベースの第2のデータとに基づく第3のデータを参照するアクセスを行うアクセス部として機能させる、プログラムも提供する。
本発明によれば、複数ユーザによるログインが可能になり、ログイン中のユーザが他のユーザがアクセス可能なデータベースの部分にもアクセスできるようになる。
ログインページの例を示した図である。 単独ログイン時の検索結果ページの例を示した図である。 追加ログインページの例を示した図である。 追加ログイン時の検索結果ページの例を示した図である。 追加ログイン時の検索結果ページの例を示した図である。 本発明の実施の形態が適用されるウェブシステムの全体構成例を示した図である。 (a)はユーザ権限管理情報の例を示した図であり、(b)は権限内容管理情報の例を示した図であり、(c)はユーザ状態管理情報の例を示した図である。 ユーザAが単独でログインした状態で情報を検索する際のウェブシステムの動作例を示したシーケンス図である。 ユーザBが追加でログインした状態で情報を検索する際のウェブシステムの動作例を示したシーケンス図である。 ユーザA,Bがログインした状態で情報を更新する際のウェブシステムの動作例を示したシーケンス図である。 (a)はユーザ権限管理情報の他の例を示した図であり、(b)は権限内容管理情報の他の例を示した図であり、(c)はユーザ状態管理情報の他の例を示した図である。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成例を示した図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
[本実施の形態の概要]
従来、複数のユーザが1つのウェブ画面を共同で利用可能なウェブシステムは存在していなかった。換言すれば、複数のユーザが1つのセッションで共同で利用可能なウェブシステムは存在していなかった。ウェブブラウザからDB(データベース)までの間で1つのセッション内の複数のユーザのログイン状態を保持する仕組みがなかったからである。
そこで、本実施の形態では、複数ユーザが1つのセッションで共同でウェブシステムを利用可能とする。まず、その場合のユースケースシナリオ及び表示されるウェブページ(以下、単に「ページ」という)のイメージについて説明する。
ここでは、ユースケースシナリオとして、最近結婚したTomとMaryが証券会社のウェブアプリケーションを利用する場合を想定する。TomとMaryは、結婚前からこの証券会社のウェブアプリケーションを利用しているため、別々のユーザIDを持っているものとする。また、結婚後も自分の口座は自分で管理するため、そのまま別々のユーザIDを持ち続けることを考えている。しかしながら、TomとMaryは、家計としてのポートフォリオ(各株式保有数)も参照したいと考えているものとする。
図1は、ログインページの例を示した図である。ここでは、Tomが単独でログインする時の状態を示している。
図2は、Tomが単独でログインした場合の検索結果ページの例を示した図である。ここでは、Tomのポートフォリオのみが表示されている。また、このページには、ファミリーログインボタン12も表示されている。ファミリーログインボタン12は、ページ上に記述している通り、家族のポートフォリオを合わせて表示する場合に押下するボタンである。
図3は、追加ログインページの例を示した図である。図2でファミリーログインボタン12を押下すると、この追加ログインページが表示される。ここでは、Maryが追加でログインする時の状態を示している。
図4及び図5は、Maryが追加でログインした場合の検索結果ページの例を示した図である。この場合、Tom及びMaryが同時にログインしていることになるので、この2人分のポートフォリオが表示されている。このうち、図4では、個別ポートフォリオタブ13を選択することにより、TomのポートフォリオとMaryのポートフォリオとが別々に表示されている。しかしながら、これでは、ポートフォリオを家計としても管理したいと考える場合に若干不便である。そこで、図5では、ファミリー合算タブ14を選択することにより、2人が共に持っている銘柄の評価額が合算して表示されている。具体的には、行15に示すように、B社の評価額は、Tomの510000とMaryの255000とを合算して765000となっている。また、行16に示すように、C社の評価額は、Tomの1800とMaryの18000とを合算して19800となっている。本実施の形態では、項目の一例として、B社及びC社を用いており、項目に対応する数値の一例として、B社の評価額及びC社の評価額を用いている。
尚、このユースケースシナリオでは、DBを参照する場合についてのみ述べたが、DBを更新する場合も考えられる。例えば、保有している株を売買するような場合である。このようなDBの更新は、参照モードから更新モードへ移行することにより実現できるが、ここでは、更新モードにおけるシナリオについては省略する。
[ウェブシステムの全体構成]
図6は、このような概略動作を実現するためのウェブシステムの全体構成例を示した図である。図示するように、このウェブシステムは、クライアント10と、アプリケーションサーバ20と、DBサーバ30と、ユーザ情報サーバ40とを含む。そして、クライアント10とアプリケーションサーバ20とは、インターネット等の通信回線(図示せず)で接続されており、アプリケーションサーバ20とDBサーバ30とユーザ情報サーバ40とは、LAN(Local Area Network)等の通信回線(図示せず)で接続されているものとする。尚、図には、1台のクライアント10しか示していないが、2台以上のクライアント10を設けてもよい。
クライアント10は、ユーザがアプリケーションサーバ20によるサービスを利用する際に用いるコンピュータ装置である。クライアント10には、ウェブブラウザ11がインストールされている。ウェブブラウザ11は、ユーザの操作に応じてHTTPリクエストをアプリケーションサーバ20に送信し、これに対する応答であるHTTPレスポンスをアプリケーションサーバ20から受信する。ここで、クライアント10としては、デスクトップPC(Personal Computer)、ノートPC、タブレットPC、ウェアラブルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、携帯電話等を用いるとよい。
アプリケーションサーバ20は、DBサーバ30と連携して、クライアント10にサービスを提供するコンピュータ装置である。ここで、アプリケーションサーバ20としては、デスクトップPC(Personal Computer)等を用いるとよい。アプリケーションサーバ20は、ウェブアプリケーション21と、ウェブコンテナ22と、DBアクセス部23とを含む。
ウェブアプリケーション21は、複数のユーザがログインするためのユーザインターフェースを保持している。そして、ウェブコンテナ22により呼び出されてユーザインターフェースを要求されると、ユーザインターフェースを含むアプリケーション実行結果をウェブコンテナ22に返す。また、ウェブアプリケーション21は、ウェブコンテナ22により呼び出されてDBアクセスを要求されると、DBアクセス部23にDBアクセスを依頼する。これに応答して、DBアクセス結果をDBアクセス部23から受け取ると、DBアクセス結果に基づくアプリケーション実行結果をウェブコンテナ22に返す。本実施の形態では、データを出力する出力部の一例として、ウェブアプリケーション21を設けている。
ウェブコンテナ22は、ウェブブラウザ11からHTTPリクエストを受信すると、HTTPリクエストに基づく要求をウェブアプリケーション21に対して行う。特に、HTTPリクエストがユーザID及びパスワードを含むログインを要求するものであれば、そのユーザID及びパスワードが正当であるかをユーザ情報サーバ40に照会する。ユーザ情報サーバ40からの照会結果が、ユーザID及びパスワードが正当であることを示していれば、このユーザIDとその他の値とを用いてハッシュ関数等で新たなクッキー値を生成し、新たなクッキー値とユーザIDとを関連付ける。具体的には、クッキー値とユーザIDとの対応を含むクッキー値ユーザID対応情報(以下、単に「対応情報」という)に新たなクッキー値とユーザIDとの対応を含める。その際、HTTPリクエストに既に認証済みのクッキーが含まれていれば、この認証済みのクッキーのクッキー値に対応情報で対応付けられたユーザIDを特定し、新たなクッキー値を生成するときにはこのユーザIDも用い、新たなクッキー値とこのユーザIDとの対応も対応情報に含める。また、ウェブコンテナ22は、アプリケーション実行結果をウェブアプリケーション21から受け取ると、その実行結果を含むHTTPレスポンスをウェブブラウザ11に送信する。本実施の形態では、ユーザによるログインを受け付ける受付部の一例として、ウェブコンテナ22を設けている。
DBアクセス部23は、ウェブアプリケーション21からDBアクセスを依頼されると、このDBアクセスに応じたSQLコマンドをDBサーバ30に送信する。特に、複数のユーザが同時にログインした状態でDBにアクセスするためのSQL拡張コマンドをDBサーバ30に送信する。また、SQLコマンドの実行結果であるSQL実行結果をDBサーバ30から受信すると、SQL実行結果に基づくDBアクセス結果をウェブアプリケーション21に返す。
DBサーバ30は、DBを含み、アプリケーションサーバ20がサービスを提供する際に用いるデータをDBから読み出して提供するコンピュータ装置である。ここで、DBサーバ30としては、デスクトップPC等を用いるとよい。DBサーバ30は、SQL解釈部31と、SQL実行部32と、ユーザ状態管理部33と、ユーザ権限管理部34と、管理情報記憶部35とを含む。
SQL解釈部31は、アプリケーションサーバ20からSQLコマンドを受信すると、このSQLコマンドの実行をSQL実行部32に指示する。特に、複数のユーザが同時にログインした状態でDBにアクセスするためのSQL拡張コマンドをアプリケーションサーバ20から受信すると、このSQL拡張コマンドの実行をユーザ状態管理部33及びユーザ権限管理部34に指示する。また、SQLコマンドの実行結果であるSQL実行結果をSQL実行部32から受け取ると、SQL実行結果をアプリケーションサーバ20に送信する。
SQL実行部32は、SQL解釈部31が受信したSQLコマンドを実行することにより、DBの参照又は更新を行う。その際、管理情報記憶部35に記憶されたユーザ状態管理情報に基づいてログイン中のユーザを特定し、管理情報記憶部35に記憶されたユーザ権限管理情報及び権限内容管理情報に基づいてそのユーザのアクセス権限を特定し、そのアクセス権限に基づいてSQLコマンドを実行する。本実施の形態では、データを参照するアクセス又はデータを更新するアクセスを行うアクセス部の一例として、SQL実行部32を設けている。
ユーザ状態管理部33は、SQL解釈部31が受信したSQL拡張コマンドに基づいて、管理情報記憶部35に記憶されたユーザ状態管理情報でユーザの状態遷移を管理する。具体的には、複数のユーザが同時にログインしている場合に仮想的にログインしているとされる一時的なユーザ(以下、「一時ユーザ」という)のログイン状態を管理する。また、DBアクセス時の参照モード及び更新モードの切り替えを行う。更に、更新モードにおける操作ユーザを特定し、操作ユーザ以外のユーザのログイン状態を保持する。
ユーザ権限管理部34は、一時ユーザのアクセス権限を、管理情報記憶部35に記憶されたユーザ権限管理情報及び権限内容管理情報で管理されるログイン中の複数のユーザのアクセス権限に基づいて特定し、管理情報記憶部35に記憶されたユーザ権限管理情報及び権限内容管理情報で管理する。
管理情報記憶部35は、上述したユーザ権限管理情報、権限内容管理情報及びユーザ状態管理情報を記憶する。各管理情報については後述する。本実施の形態では、アクセス権限情報の一例として、ユーザ権限管理情報及び権限内容管理情報を用いており、ログイン情報の一例として、ユーザ状態管理情報を用いている。また、アクセス権限情報又はログイン情報を記憶する記憶部の一例として、管理情報記憶部35を設けている。
ユーザ情報サーバ40は、アプリケーションサーバ20又はDBサーバ30にユーザ情報(ユーザID及びパスワード)を提供するコンピュータ装置である。具体的には、アプリケーションサーバ20からユーザID及びパスワードが正当であるかを照会されると、このユーザID及びパスワードを保持していれば、ユーザID及びパスワードが正当であることを示す照会結果を返す。また、DBサーバ30からユーザID及びパスワードが正当であるかを照会されると、このユーザID及びパスワードを保持していれば、ユーザID及びパスワードが正当であることを示す照会結果を返す。その際、ユーザID及びパスワードが正当であるかの照会は、LDAP(Lightweight Directory Access Protocol)等のプロトコルを用いて行えばよい。ここで、ユーザ情報サーバ40としては、デスクトップPC等を用いるとよい。
図7(a)〜(c)は、DBサーバ30の管理情報記憶部35に記憶された各管理情報の例を示した図である。ここで、各管理情報は、図1〜図5のユースケースシナリオに対応したものとなっている。例えば、ユーザAはTomに対応し、ユーザBはMaryに対応している。
図7(a)は、ユーザ権限管理情報の例を示す。図示するように、ユーザ権限管理情報は、テーブルIDと、ユーザIDと、権限IDと、参照可否と、更新可否とを含む。
テーブルIDは、DBがRDB(Relational DataBase)である場合におけるテーブルの識別情報である。厳密には、図1〜図5のユースケースシナリオでTomのポートフォリオ及びMaryのポートフォリオが1つのテーブルで管理されることは殆どあり得ないが、ここでは便宜上全てのテーブルIDを「T1」としている。
ユーザIDは、ユーザの識別情報である。ここでは、ユーザAのユーザID「a」及びユーザBのユーザID「b」に加え、一時ユーザのユーザ「ab」が記憶されている。本実施の形態では、第1のユーザの一例として、ユーザAを用いており、第2のユーザの一例として、ユーザBを用いており、第1のユーザと第2のユーザとの組み合わせを示す一時的なユーザの一例として、一時ユーザを用いている。
権限IDは、アクセス権限の識別情報である。ここでは権限IDのみが記憶されているが、権限の内容としては、図7(b)で権限IDに対応付けられたアクセス可能範囲が参照される。
参照可否は、対応するユーザIDのユーザが、対応するテーブルIDのテーブルの権限IDで示されるアクセス可能範囲を参照できるかどうかを示す情報である。「Y」が参照できることを示し、「N」が参照できないことを示す。
更新可否は、対応するユーザIDのユーザが、対応するテーブルIDのテーブルの権限IDで示されるアクセス可能範囲を更新できるかどうかを示す情報である。「Y」が参照できることを示し、「N」が参照できないことを示す。
図7(b)は、権限内容管理情報の例を示す。図示するように、権限内容管理情報は、権限IDと、アクセス可能範囲とを含む。
権限IDは、上述したように、アクセス権限の識別情報である。
アクセス可能範囲は、対応する権限IDに図7(a)で対応付けられたテーブルIDのテーブルのアクセス可能な範囲を行番号で示した情報である。厳密には、図1〜図5のユースケースシナリオでTomのポートフォリオ及びMaryのポートフォリオが隣り合う行で管理されることは殆どあり得ないが、ここでは便宜上、row#1,#2,#3,#4をTomのA社、B社、C社、D社の情報、row#5,#6,#7をMaryのB社、C社、E社の情報としている。また、権限ID「P12」に対するアクセス可能範囲も、図1〜図5のユースケースシナリオに合わせて、権限ID「P1」に対するアクセス可能範囲と、権限ID「P2」に対するアクセス可能範囲との和集合であるrow#1−7としている。但し、想定するアプリケーションによっては、これ以外のアクセス可能範囲も考えられる。例えば、公開範囲に制限がかけられた社内の掲示板等のアプリケーションにおいては、権限ID「P12」に対するアクセス可能範囲を、権限ID「P1」に対するアクセス可能範囲と、権限ID「P2」に対するアクセス可能範囲との積集合としてもよい。或いは、より一般化して、権限ID「P12」に対するアクセス可能範囲を、権限ID「P1」に対するアクセス可能範囲と、権限ID「P2」に対するアクセス可能範囲とに所定の計算を行って得られた範囲としてもよい。また、更に一般化して、権限ID「P12」に対するアクセス可能範囲を、権限ID「P1」に対するアクセス可能範囲と、権限ID「P2」に対するアクセス可能範囲とに基づく範囲としてもよい。本実施の形態では、第1のデータの一例として、row#1−4を用いており、第2のデータの一例として、row#5−7を用いており、第1のデータと第2のデータとに基づく第3のデータの一例として、row#1−7を用いている。
図7(c)は、ユーザ状態管理情報の例を示す。図示するように、ユーザ状態管理情報は、ユーザIDと、接続中フラグと、全員フラグとを含む。
ユーザIDは、上述したように、ユーザの識別情報である。
接続中フラグは、対応するユーザIDのユーザが、DBに接続中であるかどうかを示すフラグである。このフラグは、DBに接続中であるときに「1」となり、DBに接続中ではないときに「0」となる。
全員フラグは、対応するユーザIDのユーザが、現在ログイン中の複数のユーザの全員から構成されるかどうかを示すフラグである。このフラグは、現在ログイン中の複数のユーザの全員から構成されるときに「1」となり、現在ログイン中の複数のユーザの全員から構成されるわけではないときに「0」となる。
[本実施の形態におけるウェブシステムの動作]
図8は、ユーザAが単独でログインした状態で情報を検索する際のウェブシステムの動作例を示したシーケンス図である。ここで、この動作例も、図1〜図5のユースケースシナリオに対応したものとなっており、ユーザAはTomに対応している。
まず、ユーザAがログインページを要求する操作を行ったとすると、クライアント10は、ログインページを要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出してログインページを要求する(ステップ101)。すると、ウェブアプリケーション21は、ログインページをウェブコンテナ22に送り、ウェブコンテナ22は、ログインページを示すHTTPレスポンスをクライアント10に送信する(ステップ102)。これにより、図1のログインページがクライアント10に表示される。但し、この時点では、ユーザID及びパスワードは入力されていない。
次に、ユーザAがログインページ上でユーザID「a」及びパスワード「x」を用いてログインを行ったとすると、クライアント10は、その旨を示すHTTPリクエストをウェブコンテナ22に送信する(ステップ111)。すると、ウェブコンテナ22は、ユーザ情報サーバ40に対して、ユーザID「a」及びパスワード「x」の認証チェックを要求する(ステップ112)。そして、ユーザ情報サーバ40が認証チェックに成功した旨をウェブコンテナ22に返すと、ウェブコンテナ22は、その旨を受け取り(ステップ113)、ウェブアプリケーション21にログイン成功を伝える(ステップ114)。すると、ウェブアプリケーション21は、トップページをウェブコンテナ22に送り、ウェブコンテナ22は、トップページを示すHTTPレスポンスをクライアント10に送信する(ステップ115)。その際、ウェブコンテナ22は、クッキー値とユーザID「a」との対応を含む対応情報を記憶し、このクッキー値を有するクッキーをクライアント10に送信する。
次いで、ユーザAがデータ検索を要求する操作を行ったとすると、クライアント10は、データ検索を要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出してデータ検索を要求する(ステップ121)。その際、クライアント10は、ステップ115で送られたクッキーをウェブコンテナ22に送信し、ウェブコンテナ22は、このクッキーのクッキー値に対応情報で対応付けられたユーザID「a」を保持しておく。
これにより、ウェブアプリケーション21は、DBサーバ30に接続する。但し、本実施の形態において、ウェブアプリケーション21は、DBサーバ30にアプリケーションとして接続する際のユーザである代表ユーザでDBサーバ30に接続した後、ウェブアプリケーション21にログインしたユーザでDBサーバ30に接続するようにユーザを切り替えるものとする。
即ち、ウェブアプリケーション21は、代表ユーザのユーザID「p」及びこれに対応するパスワード「q」を用いてDBサーバ30に接続するようにDBアクセス部23に依頼する(ステップ122)。すると、DBアクセス部23は、ユーザID「p」及びパスワード「q」を用いて接続するSQLコマンドをDBサーバ30に送信する(ステップ123)。これにより、DBサーバ30は、代表ユーザを接続する。その際、DBサーバ30は、ユーザ情報サーバ40に対して、ユーザID「p」及びパスワード「q」の認証チェックを要求する(ステップ124)。そして、ユーザ情報サーバ40が認証チェックに成功した旨をDBサーバ30に返すと、DBサーバ30は、その旨を受け取る(ステップ125)。DBサーバ30は、代表ユーザの接続が正常に終了すると、接続が成功した旨をDBアクセス部23に送信し、DBアクセス部23は、その旨をウェブアプリケーション21に伝える(ステップ126)。
また、ウェブアプリケーション21は、ユーザID「a」及びパスワード「x」を用いてDBサーバ30に接続するようにDBアクセス部23に依頼する(ステップ131)。ここで、ユーザID「a」としては、ステップ121でウェブコンテナ22が保持しておいたものを受け取って用いればよい。また、パスワード「x」としては、ステップ113でウェブコンテナ22がクッキー値に関連付け、ステップ121でウェブコンテナ22が受信したクッキーのクッキー値に基づいて取得したものを受け取って用いればよい。或いは、ウェブコンテナ22がユーザ情報サーバ40に改めて問い合わせることにより取得したものを受け取って用いてもよい。すると、DBアクセス部23は、ユーザID「a」及びパスワード「x」を用いて接続ユーザをユーザAに切り替えるSQLコマンドをDBサーバ30に送信する(ステップ132)。これにより、DBサーバ30は、接続ユーザをユーザAに切り替える。その際、DBサーバ30は、ユーザ情報サーバ40に対して、ユーザID「a」及びパスワード「x」の認証チェックを要求する(ステップ133)。そして、ユーザ情報サーバ40が認証チェックに成功した旨をDBサーバ30に返すと、DBサーバ30は、その旨を受け取る(ステップ134)。DBサーバ30は、接続ユーザのユーザAへの切り替えが正常に終了すると、切り替えが成功した旨をDBアクセス部23に送信し、DBアクセス部23は、その旨をウェブアプリケーション21に伝える(ステップ135)。
その後、ウェブアプリケーション21は、テーブルT1を検索するクエリーの実行をDBアクセス部23に依頼する(ステップ141)。すると、DBアクセス部23は、テーブルT1を検索するSQLコマンドをDBサーバ30に送信する(ステップ142)。そして、DBサーバ30が、検索結果をDBアクセス部23に返すと、DBアクセス部23は、検索結果をウェブアプリケーション21に返す(ステップ143)。また、ウェブアプリケーション21は、検索結果ページをウェブコンテナ22に伝え、ウェブコンテナ22は、検索結果ページを示すHTTPレスポンスをクライアント10に送信する(ステップ144)。これにより、図2の検索結果ページがクライアント10に表示される。
図9は、ユーザBが追加でログインした状態で情報を検索する際のウェブシステムの動作例を示したシーケンス図である。ここで、この動作例も、図1〜図5のユースケースシナリオに対応したものとなっており、ユーザAはTomに、ユーザBはMaryにそれぞれ対応している。ユーザBは、第2のユーザの一例である。
まず、ユーザAが追加ログインページを要求する操作を行ったとすると、クライアント10は、追加ログインページを要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出して追加ログインページを要求する(ステップ201)。すると、ウェブアプリケーション21は、追加ログインページをウェブコンテナ22に送り、ウェブコンテナ22は、追加ログインページを示すHTTPレスポンスをクライアント10に送信する(ステップ202)。これにより、図3の追加ログインページがクライアント10に表示される。但し、この時点では、ユーザID及びパスワードは入力されていない。
次に、ユーザAが追加ログインページ上でユーザID「b」及びパスワード「y」を用いてユーザBの追加ログインを行ったとすると、クライアント10は、その旨を示すHTTPリクエストをウェブコンテナ22に送信する(ステップ211)。その際、クライアント10は、図8のステップ115で送られたクッキーをウェブコンテナ22に送信し、ウェブコンテナ22は、このクッキーのクッキー値を保持しておく。すると、ウェブコンテナ22は、ユーザ情報サーバ40に対して、ユーザID「b」及びパスワード「y」の認証チェックを要求する(ステップ212)。そして、ユーザ情報サーバ40が認証チェックに成功した旨をウェブコンテナ22に返すと、ウェブコンテナ22は、その旨を受け取り(ステップ213)、クライアント10にログイン成功を伝える(ステップ214)。その際、ウェブコンテナ22は、ステップ211で保持しておいたクッキー値に対応情報で対応付けられたユーザID「a」と、ステップ213で認証チェックに成功したユーザID「b」とから、新たにクッキー値を生成する。そして、この新たなクッキー値と、ユーザID「a」、「b」との対応を対応情報に含める。その後、ウェブコンテナ22は、このクッキー値を有するクッキーをクライアント10に送信する。
次いで、ユーザAがデータ検索を要求する操作を行ったとすると、クライアント10は、データ検索を要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出してデータ検索を要求する(ステップ221)。その際、クライアント10は、ステップ214で送られたクッキーをウェブコンテナ22に送信し、ウェブコンテナ22は、このクッキーのクッキー値に対応情報で対応付けられたユーザID「a」、「b」を保持しておく。これにより、ウェブアプリケーション21は、ユーザID「b」及びパスワード「y」を用いてユーザBを追加で接続するようにDBアクセス部23に依頼する(ステップ222)。ここで、ユーザBを追加で接続すべきことは、ステップ221でウェブコンテナ22が保持しておいたユーザID「a」、「b」を受け取り、これと既に自身がログイン状態を保持しているユーザのユーザID「a」とを比較することにより分かる。また、パスワード「y」としては、ステップ213でウェブコンテナ22がクッキー値に関連付け、ステップ221でウェブコンテナ22が受信したクッキーのクッキー値に基づいて取得したものを受け取って用いればよい。或いは、ウェブコンテナ22がユーザ情報サーバ40に改めて問い合わせることにより取得したものを受け取って用いてもよい。すると、DBアクセス部23は、ユーザID「b」及びパスワード「y」を用いてユーザを追加するSQLコマンド「addUser(b,y)」をDBサーバ30に送信する(ステップ223)。これにより、DBサーバ30は、ユーザBを追加で接続する。その際、DBサーバ30は、ユーザ情報サーバ40に対して、ユーザID「b」及びパスワード「y」の認証チェックを要求する(ステップ224)。そして、ユーザ情報サーバ40が認証チェックに成功した旨をDBサーバ30に返すと、DBサーバ30は、その旨を受け取る(ステップ225)。DBサーバ30は、ユーザBの追加の接続が正常に終了すると、ユーザの追加が成功した旨をDBアクセス部23に送信し、DBアクセス部23は、その旨をウェブアプリケーション21に伝える(ステップ226)。
ところで、DBサーバ30は、ステップ223でSQLコマンドを受信してからステップ226でユーザの追加が成功した旨を送信するまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、SQLコマンド「addUser(b,y)」を受信する。すると、ユーザ状態管理部33及びユーザ権限管理部34が、その時点で接続中のユーザAと追加が指示されたユーザBとから構成されるユーザID「ab」の一時ユーザに関する情報を管理情報記憶部35に記憶する。具体的には、管理情報記憶部35に記憶されたユーザ権限管理情報は、最初、図7(a)の1行目及び2行目のみを含むものであるが、ユーザ権限管理部34が、これに図7(a)の3行目を追加する。また、管理情報記憶部35に記憶された権限内容管理情報は、最初、図7(b)の1行目及び2行目のみを含むものであるが、ユーザ権限管理部34が、これに図7(b)の3行目を追加する。その際、ユーザ権限管理部34は、3行目のアクセス可能範囲を1行目及び2行目のアクセス可能範囲の和集合とするか積集合とするかをパラメータで指定してもよい。更に、管理情報記憶部35に記憶されたユーザ状態管理情報は、最初、図7(c)の1行目及び2行目のみを含むものであるが、ユーザ状態管理部33が、これに図7(c)の3行目を追加する。尚、このような動作の中で、ステップ224でのユーザID「b」及びパスワード「y」の認証チェックの要求、及び、ステップ225での認証チェックに成功した旨の受信は、SQL解釈部31がSQLコマンド「addUser(b,y)」を受信した直後に行うのが望ましい。
その後、ウェブアプリケーション21は、テーブルT1を検索するクエリーの実行をDBアクセス部23に依頼する(ステップ231)。すると、DBアクセス部23は、テーブルT1を検索するSQLコマンドをDBサーバ30に送信する(ステップ232)。そして、DBサーバ30が、検索結果をDBアクセス部23に返すと、DBアクセス部23は、検索結果をウェブアプリケーション21に返す(ステップ233)。
ところで、DBサーバ30は、ステップ232でSQLコマンドを受信してからステップ233で検索結果を返すまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、テーブルT1を検索するSQLコマンドを受信する。次に、SQL実行部32が、管理情報記憶部35に記憶されたユーザ状態管理情報で接続中フラグ「1」に対応付けられたユーザID「ab」を特定する。そして、管理情報記憶部35に記憶されたユーザ権限管理情報でユーザID「ab」に対応付けられた権限ID「P12」を特定し、管理情報記憶部35に記憶された権限内容管理情報で権限ID「P12」に対応付けられたアクセス可能範囲「row#1−7」を特定する。次いで、SQL解釈部31が、テーブルT1のrow#1−7を検索結果としてDBアクセス部23に返す。
その後、ウェブアプリケーション21は、検索結果ページをウェブコンテナ22に伝え、ウェブコンテナ22は、検索結果ページを示すHTTPレスポンスをクライアント10に送信する(ステップ234)。これにより、図4又は図5の検索結果ページがクライアント10に表示される。
尚、この動作例では、先にログインしたユーザAが、ユーザBの追加ログインを行った後、ユーザBの名義でデータ検索を要求するようにしたが、これには限らない。ユーザAが、ユーザBの追加ログインを行った後、自身の名義でデータ検索を要求するようにしてもよい。
図10は、ユーザA,Bがログインした状態で情報を更新する際のウェブシステムの動作例を示したシーケンス図である。ここで、この動作例も、図1〜図5のユースケースシナリオに対応したものとなっており、ユーザAはTomに、ユーザBはMaryにそれぞれ対応している。また、この動作例では、ユーザA,Bがログインした状態であっても、参照モードを更新モードに変更し、何れかのユーザを更新モードにおける操作ユーザとして、その操作ユーザのみが更新操作を行えるものとする。ここでは、ユーザAを更新モードにおける操作ユーザであるものとして説明する。尚、クライアント10は保持しているクッキーを全てのHTTPリクエストに付加して送信するが、この動作例ではアプリケーションサーバ20側でクッキーを使用しないので、シーケンス図においてクッキーは省略している。
まず、ユーザAが更新モードにおける操作ユーザのユーザIDを入力するためのユーザID入力ページを要求する操作を行ったとすると、クライアント10は、ユーザID入力ページを要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出してユーザID入力ページを要求する(ステップ301)。すると、ウェブアプリケーション21は、ユーザID入力ページをウェブコンテナ22に送り、ウェブコンテナ22は、ユーザID入力ページを示すHTTPレスポンスをクライアント10に送信する(ステップ302)。
次に、ユーザAがユーザID入力ページにユーザID「a」を入力することにより更新モードへの変更を要求する操作を行ったとすると、クライアント10は、更新モードへの変更を要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出して更新モードへの変更を要求する(ステップ311)。その際、ウェブアプリケーション21は、ユーザID入力ページに入力されたユーザID「a」を保持しておく。すると、ウェブアプリケーション21は、更新モードへの変更が成功した旨をウェブコンテナ22に送り、ウェブコンテナ22は、その旨を示すHTTPレスポンスをクライアント10に送信する(ステップ312)。
次いで、ユーザAがデータ更新を要求する操作を行ったとすると、クライアント10は、データ更新を要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出してデータ更新を要求する(ステップ321)。これにより、ウェブアプリケーション21は、ユーザID「a」を用いて操作ユーザを特定するようにDBアクセス部23に依頼する(ステップ322)。ここで、ユーザID「a」としては、ステップ311で保持しておいたものを用いればよい。すると、DBアクセス部23は、ユーザID「a」を用いて操作ユーザを特定するSQLコマンド「specifyUser(a)」をDBサーバ30に送信する(ステップ323)。これにより、DBサーバ30は、操作ユーザを特定する。DBサーバ30は、操作ユーザの特定が正常に終了すると、操作ユーザの特定が成功した旨をDBアクセス部23に送信し、DBアクセス部23は、その旨をウェブアプリケーション21に伝える(ステップ324)。
ところで、DBサーバ30は、ステップ323でSQLコマンドを受信してからステップ324で操作ユーザの特定が成功した旨を送信するまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、SQLコマンド「specifyUser(a)」を受信する。すると、ユーザ状態管理部33が、接続中のユーザをユーザA,BからユーザAに変更する。具体的には、管理情報記憶部35に記憶されたユーザ状態管理情報は、最初、図7(c)に示したものであるが、ユーザID「a」に対して接続中フラグ「1」が記憶されたものとする。
その後、ウェブアプリケーション21は、テーブルT1を更新するクエリーの実行をDBアクセス部23に依頼する(ステップ331)。すると、DBアクセス部23は、テーブルT1を更新するSQLコマンドをDBサーバ30に送信する(ステップ332)。そして、DBサーバ30が、更新結果をDBアクセス部23に返すと、DBアクセス部23は、更新結果をウェブアプリケーション21に返す(ステップ333)。
ところで、DBサーバ30は、ステップ332でSQLコマンドを受信してからステップ333で更新結果を返すまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、テーブルT1を更新するSQLコマンドを受信する。次に、SQL実行部32が、管理情報記憶部35に記憶されたユーザ状態管理情報で接続中フラグ「1」に対応付けられたユーザID「a」を特定する。そして、管理情報記憶部35に記憶されたユーザ権限管理情報でユーザID「a」に対応付けられた権限ID「P1」を特定し、管理情報記憶部35に記憶された権限内容管理情報で権限ID「P1」に対応付けられたアクセス可能範囲「row#1−5」を特定し、このアクセス可能範囲を更新する。次いで、SQL解釈部31が、テーブルT1のrow#1−5の更新結果をDBアクセス部23に返す。
その後、ウェブアプリケーション21は、更新結果ページをウェブコンテナ22に伝え、ウェブコンテナ22は、更新結果ページを示すHTTPレスポンスをクライアント10に送信する(ステップ334)。
このように更新が行われた後、ユーザAは再び、ユーザA,Bがログインした状態に戻すとする。その場合、ユーザAが参照モードへの変更を要求する操作を行ったとすると、クライアント10は、参照モードへの変更を要求するHTTPリクエストをウェブコンテナ22に送信し、ウェブコンテナ22は、ウェブアプリケーション21を呼び出して参照モードへの変更を要求する(ステップ341)。これにより、ウェブアプリケーション21は、当初ログインしていた全員をログイン状態に復帰するようにDBアクセス部23に依頼する(ステップ342)。すると、DBアクセス部23は、当初ログインしていた全員をログイン状態に復帰するSQLコマンド「returntoAll()」をDBサーバ30に送信する(ステップ343)。これにより、DBサーバ30は、当初ログインしていた全員をログイン状態に復帰する。DBサーバ30は、当初ログインしていた全員のログイン状態への復帰が正常に終了すると、復帰が成功した旨をDBアクセス部23に送信し、DBアクセス部23は、その旨をウェブアプリケーション21に伝える(ステップ344)。
ところで、DBサーバ30は、ステップ343でSQLコマンドを受信してからステップ343で復帰が成功した旨を送信するまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、SQLコマンド「returntoAll()」を受信する。すると、ユーザ状態管理部33が、接続中のユーザをユーザAからユーザA,Bに変更する。具体的には、管理情報記憶部35に記憶されたユーザ状態管理情報は、最初、図7(c)でユーザID「a」に対して接続中フラグ「1」が記憶されたものであるが、全員フラグ「1」が記憶されたユーザID「ab」に対して接続中フラグ「1」が記憶されたものとする。つまり、図7(c)の状態に戻す。
その後、ウェブアプリケーション21は、テーブルT1を検索するクエリーの実行をDBアクセス部23に依頼する(ステップ351)。すると、DBアクセス部23は、テーブルT1を検索するSQLコマンドをDBサーバ30に送信する(ステップ352)。そして、DBサーバ30が、検索結果をDBアクセス部23に返すと、DBアクセス部23は、検索結果をウェブアプリケーション21に返す(ステップ353)。
ところで、DBサーバ30は、ステップ352でSQLコマンドを受信してからステップ353で検索結果を返すまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、テーブルT1を検索するSQLコマンドを受信する。次に、SQL実行部32が、管理情報記憶部35に記憶されたユーザ状態管理情報で接続中フラグ「1」に対応付けられたユーザID「ab」を特定する。そして、管理情報記憶部35に記憶されたユーザ権限管理情報でユーザID「ab」に対応付けられた権限ID「P12」を特定し、管理情報記憶部35に記憶された権限内容管理情報で権限ID「P12」に対応付けられたアクセス可能範囲「row#1−7」を特定する。次いで、SQL解釈部31が、テーブルT1のrow#1−7を検索結果としてDBアクセス部23に返す。
その後、ウェブアプリケーション21は、検索結果ページをウェブコンテナ22に伝え、ウェブコンテナ22は、検索結果ページを示すHTTPレスポンスをクライアント10に送信する(ステップ354)。
このように情報の参照及び更新が行われた後、ユーザAは、ウェブシステムへの接続を切断する操作を行うとする。図5の検索結果ページの例で言えば、ログアウトボタン17を押下する操作が該当する。このような操作が行われると、ユーザAに加えて、追加でログインしていたユーザBもログアウトすることになる。すると、図示しないが、クライアント10は、アプリケーションサーバ20に切断を要求し、アプリケーションサーバ20は、DBサーバ30に対して、DBへの接続の切断を要求するSQLコマンド「disconnect」を送信する。
これにより、DBサーバ30は、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、SQLコマンド「disconnect」を受信する。すると、ユーザ状態管理部33及びユーザ権限管理部34が、ユーザID「ab」の一時ユーザに関する情報を管理情報記憶部35から削除する。具体的には、管理情報記憶部35に記憶されたユーザ権限管理情報は、最初、図7(a)に示したものであるが、ユーザ権限管理部34が、これから図7(a)の3行目を削除する。また、管理情報記憶部35に記憶された権限内容管理情報は、最初、図7(b)に示したものであるが、ユーザ権限管理部34が、これから図7(b)の3行目を削除する。更に、管理情報記憶部35に記憶されたユーザ状態管理情報は、最初、図7(c)に示したものであるが、ユーザ状態管理部33が、この全体を削除する。
[本実施の形態の変形例]
図11(a)〜(c)は、DBサーバ30の管理情報記憶部35に記憶された各管理情報の他の例を示した図である。
図11(a)は、ユーザ権限管理情報の例を示す。ユーザ権限管理情報は、図7(a)と同様に、テーブルIDと、ユーザIDと、権限IDと、参照可否と、更新可否とを含むが、その内容は、図7(a)に、ユーザID「c」のユーザ及びユーザID「abc」の一時ユーザに対する情報を追加したものになっている。
図11(b)は、権限内容管理情報の例を示す。権限内容管理情報は、図7(b)と同様に、権限IDと、アクセス可能範囲とを含むが、その内容は、図7(b)に、ユーザID「c」のユーザ及びユーザID「abc」の一時ユーザに対する情報を追加したものになっている。
図11(c)は、ユーザ状態管理情報の例を示す。ユーザ状態管理情報は、図7(c)と同様に、ユーザIDと、接続中フラグと、全員フラグとを含むが、その内容は、図7(c)に、ユーザID「c」のユーザ及びユーザID「abc」の一時ユーザに対する情報を追加したものになっている。
例えば、図9に示した動作の開始時に、ユーザA,Bが既にログイン状態にあり、図11(a)〜(c)の各管理情報の1行目〜4行目が管理情報記憶部35に記憶されているとする。そして、ユーザAが追加ログインページ上でユーザID「c」及びパスワード「z」を用いてユーザCの追加ログインを行ったとすると、DBサーバ30は、ステップ223でSQLコマンドを受信してからステップ226でユーザの追加が成功した旨を送信するまでの間に、詳しくは、次のような動作を行う。即ち、まず、SQL解釈部31が、SQLコマンド「addUser(c,z)」を受信する。すると、ユーザ状態管理部33及びユーザ権限管理部34が、その時点で接続中のユーザA,Bと追加が指示されたユーザCとから構成されるユーザID「abc」の一時ユーザに関する情報を管理情報記憶部35に記憶する。具体的には、ユーザ権限管理部34が、ユーザ権限管理情報に図11(a)の5行目を追加し、権限内容管理情報に図11(b)の5行目を追加する。また、ユーザ状態管理部33が、ユーザ状態管理情報に図11(c)の5行目を追加する。
また、本実施の形態では、DBに対して如何なる操作が可能かという観点から、参照モード及び更新モードという2つのモードを用意した。一方で、これらのモードは、ログイン中の複数のユーザのうち、何人のユーザがDBに対して操作可能か、つまり、有効になっているかという観点から、それぞれ共有モード及び単独モードとして捉えることもできる。
共有モードは、複数のユーザが同時に有効となっているモードである。この共有モードにおいて、DBに対するアクセス可能範囲は、集合演算子に基づく範囲となる。複数のユーザのアクセス可能範囲が集合演算子により各ユーザのアクセス可能範囲の和集合となる場合は、共有モードにおけるアクセス可能範囲は単独モードにおけるアクセス可能範囲よりも広くなる。これに対し、複数のユーザのアクセス可能範囲が集合演算子により各ユーザのアクセス可能範囲の積集合となる場合は、共有モードにおけるアクセス可能範囲は単独モードにおけるアクセス可能範囲よりも狭くなる。
単独モードは、複数のユーザのうちの指定されたユーザのみがDBに対して操作可能な操作ユーザとなるモードである。この単独モードにおいて、DBに対するアクセス可能範囲は、操作ユーザのアクセス可能範囲に限定される。但し、他のユーザがログオフされているわけではない。このため、「returnToAll」を実行するときに、ユーザID及びパスワードの指定は不要である。
ここで、アプリケーションサーバ20からDBサーバ30へ送信される従来のSQLコマンドは、以下のように変更すればよい。即ち、「select」は、共有モード及び単独モードの何れでも実行可能とするとよい。一方、「insert」、「update」、「delete」は、単独モードのみで実行可能とし、それ以外の場合はエラーとするとよい。
尚、本実施の形態では、ユーザA,Bがログイン状態にある共有モードを、ユーザAのみがDBに対して操作可能な単独モードに変更する場合について説明したが、この限りではない。ユーザA,Bがログイン状態にある共有モードを、ユーザBのみがDBに対して操作可能な単独モードに変更してもよい。或いは、ユーザAのみがDBに対して操作可能な単独モードを、ユーザBのみがDBに対して操作可能な単独モードに変更したり、その逆の変更を行ったりしてもよい。
また、ユーザA,B,Cがログイン状態にある共有モードを起点とする場合においても同様である。即ち、このような共有モードを、ユーザAのみがDBに対して操作可能な単独モード、ユーザBのみがDBに対して操作可能な単独モード、ユーザCのみがDBに対して操作可能な単独モードの何れに変更してもよい。或いは、ユーザAのみがDBに対して操作可能な単独モード、ユーザBのみがDBに対して操作可能な単独モード、ユーザCのみがDBに対して操作可能な単独モードの相互間で変更を行ってもよい。
更に、本実施の形態では、SQL拡張コマンドとして、「addUser(user,pwd)」、「specify(user)」及び「returnToAll()」を示したが、次のようなSQL拡張コマンドも考えられる。
第一に、「addUser(user,pwd,operator)」が考えられる。これは、複数のユーザが既にログインしている状態で追加のユーザもログイン状態にするSQL拡張コマンド「addUser(user,pwd)」に変更を加えたSQL拡張コマンドである。即ち、SQL拡張コマンド「addUser(user,pwd)」に、オプションで、追加ユーザのアクセス可能範囲を決定する集合演算子を「operator」により指定可能としたものである。
第二に、「delUser(user)」が考えられる。これは、複数のユーザがログインしている状態から、指定されたユーザを切断するSQL拡張コマンドである。
第三に、「queryUser(user)」が考えられる。これは、現在ログイン中のユーザを返すSQL拡張コマンドである。
第四に、「connect(user1,pwd1,user2,pwd2,user3,pwd3,…)」が考えられる。これは、複数のユーザを一度に指定して接続するSQL拡張コマンドである。
[本実施の形態の効果]
本実施の形態では、複数のユーザが1つのセッションで共同で利用可能なウェブシステムを、ウェブシステム全体として実装した。これにより、このようなウェブシステムをウェブアプリケーション21のみにより実装する場合に比べて、SQLコマンドの送受信回数が減ったので、効率が良くなった。
また、本実施の形態では、DBサーバ30において一時ユーザを作成するようにした。これにより、無駄なデータを読み込む必要がなくなったので、効率が良くなった。
更に、本実施の形態では、複数のユーザが同時ログイン中であっても、DB更新を実行したいという状況があり得るため、DBに対する参照モード及び更新モードの切り替えを、ユーザのログイン及びログオフをすることなく実現している。これにより、ユーザの認証を行う回数が減ったので、効率が良くなった。
更にまた、本実施の形態では、複数のユーザによるアクセス可能範囲を決定する際に、和集合及び積集合の両方を提供可能としている。これにより、様々な利用目的に応じて柔軟に対応できるようになった。例えば、和集合を提供する場合には、複数のユーザがアクセス可能なデータの全体を参照できるようになる。また、積集合を提供する場合には、複数のユーザがアクセス可能なデータのうち、全員が参照可能なデータのみを参照できるようになるので、情報セキュリティの確保が可能となる。
[本実施の形態を適用可能なコンピュータのハードウェア構成]
図12は、本実施の形態を適用可能なコンピュータ90のハードウェア構成例を示した図である。図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、光学ドライブ90jとが接続されている。
尚、図12において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、光学ドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…クライアント、11…ウェブブラウザ、20…アプリケーションサーバ、21…ウェブアプリケーション、22…ウェブコンテナ、23…DBアクセス部、30…DBサーバ、31…SQL解釈部、32…SQL実行部、33…ユーザ状態管理部、34…ユーザ権限管理部、35…管理情報記憶部、40…ユーザ情報サーバ

Claims (8)

  1. ユーザによるデータベースへのアクセスを制御する装置であって、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータと参照するアクセスを行うアクセス部と
    前記第1のデータと前記第2のデータとに共通の項目に対応する当該第1のデータの部分と当該第2のデータの部分とに所定の計算を行って得られた部分を含むデータを出力する出力部と
    を含む、装置。
  2. ユーザによるデータベースへのアクセスを制御する装置であって、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータとに基づく第3のデータを参照するアクセスを行うアクセス部と
    を含み、
    前記アクセス部は、前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ及び前記第2のユーザのうちの一のユーザの名義で前記データベースの更新が要求されると、当該一のユーザがアクセス可能な当該データベースのデータを更新するアクセスを、当該第1のユーザ及び当該第2のユーザがログインした状態で行う、装置。
  3. 前記受付部は、前記データベースを参照する参照モードから前記データベースを更新する更新モードへ切り替える切替指示を受け付け、当該切替指示に対する問い合わせに応答して入力された前記一のユーザの情報を受け付ける、請求項2の装置。
  4. 項目及び当該項目に対応する数値を含むデータベースのレコードへのユーザによるアクセスを制御する装置であって、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースのレコードの出力が要求されると、当該第1のユーザがアクセス可能な第1のレコード及び当該第2のユーザがアクセス可能な第2のレコードが同じ項目を含んでいれば、当該第1のレコード及び当該第2のレコードを一のレコードとし、当該第1のレコードに含まれる当該項目に対応する数値及び当該第2のレコードに含まれる当該項目に対応する数値の合算値を当該一のレコードに含めることにより、生成されたレコードを出力する出力部と
    を含む、装置。
  5. ユーザによるデータベースへのアクセスを制御する方法であって、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付けるステップと、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータと参照するステップと
    前記第1のデータと前記第2のデータとに共通の項目に対応する当該第1のデータの部分と当該第2のデータの部分とに所定の計算を行って得られた部分を含むデータを出力するステップと
    を含む、方法。
  6. ユーザによるデータベースへのアクセスを制御する方法であって、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付けるステップと、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータとに基づく第3のデータを参照するステップと、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ及び前記第2のユーザのうちの一のユーザの名義で前記データベースの更新が要求されると、当該一のユーザがアクセス可能な当該データベースのデータを更新するアクセスを、当該第1のユーザ及び当該第2のユーザがログインした状態で行うステップと
    を含む、方法。
  7. ユーザによるデータベースへのアクセスを制御する装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータと参照するアクセスを行うアクセス部と
    前記第1のデータと前記第2のデータとに共通の項目に対応する当該第1のデータの部分と当該第2のデータの部分とに所定の計算を行って得られた部分を含むデータを出力する出力部と
    して機能させる、プログラム。
  8. ユーザによるデータベースへのアクセスを制御する装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    第1のユーザによる第1のログインと、当該第1のユーザによる第2のユーザ名義での第2のログインとを受け付ける受付部と、
    前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ又は前記第2のユーザの名義で前記データベースの参照が要求されると、当該第1のユーザがアクセス可能な当該データベースの第1のデータと、当該第2のユーザがアクセス可能な当該データベースの第2のデータとに基づく第3のデータを参照するアクセスを行うアクセス部と
    して機能させ、
    前記アクセス部は、前記第1のログインと前記第2のログインとを受け付けた後に、前記第1のユーザ及び前記第2のユーザのうちの一のユーザの名義で前記データベースの更新が要求されると、当該一のユーザがアクセス可能な当該データベースのデータを更新するアクセスを、当該第1のユーザ及び当該第2のユーザがログインした状態で行う、プログラム。
JP2014195746A 2014-09-25 2014-09-25 データベースへのアクセスを制御する装置及び方法 Active JP6004454B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014195746A JP6004454B2 (ja) 2014-09-25 2014-09-25 データベースへのアクセスを制御する装置及び方法
US14/827,491 US10339329B2 (en) 2014-09-25 2015-08-17 Controlling access to data in a database
US16/402,323 US11036878B2 (en) 2014-09-25 2019-05-03 Controlling access to data in a database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014195746A JP6004454B2 (ja) 2014-09-25 2014-09-25 データベースへのアクセスを制御する装置及び方法

Publications (2)

Publication Number Publication Date
JP2016066307A JP2016066307A (ja) 2016-04-28
JP6004454B2 true JP6004454B2 (ja) 2016-10-05

Family

ID=55584769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014195746A Active JP6004454B2 (ja) 2014-09-25 2014-09-25 データベースへのアクセスを制御する装置及び方法

Country Status (2)

Country Link
US (2) US10339329B2 (ja)
JP (1) JP6004454B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6004454B2 (ja) * 2014-09-25 2016-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースへのアクセスを制御する装置及び方法
CN109460647B (zh) * 2018-11-12 2022-04-05 商客通尚景信息技术江苏有限公司 一种多设备安全登录的方法
JP2020140431A (ja) * 2019-02-28 2020-09-03 富士ゼロックス株式会社 情報処理装置、情報処理システム、及び情報処理プログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749936A (ja) 1993-08-05 1995-02-21 Mitsubishi Electric Corp 共有画面システム
JPH07253894A (ja) 1994-03-15 1995-10-03 Toshiba Corp 共有記憶装置
JPH09219750A (ja) 1996-02-13 1997-08-19 Toshiba Corp 通信会議システム
JP2996197B2 (ja) 1997-02-14 1999-12-27 日本電気株式会社 文書共有管理方法
JP2000132445A (ja) 1998-10-27 2000-05-12 Fujitsu Ltd ファイルアクセスシステム
JP2001022749A (ja) 1999-07-09 2001-01-26 Hitachi Ltd オンライン文書への個人付加情報を共有する方法
US8489669B2 (en) * 2000-06-07 2013-07-16 Apple Inc. Mobile data processing system moving interest radius
US7130885B2 (en) * 2000-09-05 2006-10-31 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
JP2003006194A (ja) * 2001-06-22 2003-01-10 Mitsubishi Electric Corp データベースアクセス制御システム
US20050091595A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Group shared spaces
JP2005157894A (ja) * 2003-11-27 2005-06-16 Sony Corp 情報処理装置、利用環境提供方法及び利用環境提供プログラム
WO2006002234A2 (en) * 2004-06-22 2006-01-05 Coras, Inc. Systems and methods for software based on business concepts
US7725501B1 (en) * 2004-11-12 2010-05-25 Northrop Grumman Corporation System and method for rapid database application deployment and use
JP4948848B2 (ja) 2005-02-21 2012-06-06 株式会社ソニー・コンピュータエンタテインメント ネットワークシステム及びその構成品、コンテキストの管理方法
US7730478B2 (en) * 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
WO2008122825A1 (en) * 2007-04-06 2008-10-16 Gaiasoft Ip Limited Content delivery system and method of delivering content
US8862979B2 (en) 2008-01-15 2014-10-14 Microsoft Corporation Multi-client collaboration to access and update structured data elements
US8935266B2 (en) * 2009-04-08 2015-01-13 Jianqing Wu Investigative identity data search algorithm
JP2011141814A (ja) 2010-01-08 2011-07-21 Hitachi Ltd ファイル共有管理システム
US11244745B2 (en) * 2010-01-22 2022-02-08 Deka Products Limited Partnership Computer-implemented method, system, and apparatus for electronic patient care
JP2013030022A (ja) * 2011-07-28 2013-02-07 Ricoh Co Ltd 情報処理システム、管理装置およびプログラム
JP5810779B2 (ja) 2011-09-16 2015-11-11 株式会社リコー 画面共有システム、画面共有端末、電子黒板システムおよびプログラム
US10585969B2 (en) * 2012-07-07 2020-03-10 Jianqing Wu System and method for extending database functions by a web application and computer readable media
US20160048936A1 (en) * 2013-03-15 2016-02-18 Search For Yeti, LLC Computer-Implemented Methods of and Systems for Analyzing Patent Claims
JP6004454B2 (ja) * 2014-09-25 2016-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースへのアクセスを制御する装置及び方法
US10134067B2 (en) * 2015-07-27 2018-11-20 Ariba, Inc. Autocomplete of searches for data stored in multi-tenant architecture
US10324908B2 (en) * 2016-09-01 2019-06-18 Sap Se Exposing database artifacts

Also Published As

Publication number Publication date
US20190318116A1 (en) 2019-10-17
JP2016066307A (ja) 2016-04-28
US10339329B2 (en) 2019-07-02
US11036878B2 (en) 2021-06-15
US20160092692A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
JP7093393B2 (ja) サービス処理方法、装置、及びサーバ
US11159626B2 (en) Session transfer between resources
JP6633913B2 (ja) 企業データシステム内のテナントのためのセキュリティおよびデータの隔離
JP6298197B2 (ja) 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス
US20140123240A1 (en) System and service providing apparatus
US20120221603A1 (en) Distributed mobile services
US10462008B2 (en) Cart mode provisioning of shared computing devices
WO2012081404A1 (ja) 認証システム、認証サーバ、サービス提供サーバ、認証方法、及びコンピュータ読み取り可能な記録媒体
KR20130037434A (ko) 클라우딩 네트워크에서 디바이스들 간에 멀티미디어 콘텐츠를 공유하기 위한 시스템 및 방법
KR102073535B1 (ko) 생산성 애플리케이션 내의 서비스 피처 인에이블링 기법
US11036878B2 (en) Controlling access to data in a database
JP5703352B2 (ja) アプリケーションシステム、携帯端末、サーバコンピュータおよびコンピュータプログラム
WO2014101208A1 (zh) 一种获取文件的方法和装置
JP2008197919A (ja) 処理形態切替装置
JP2015201181A (ja) 情報処理システム及び情報保存方法
KR102294143B1 (ko) 서비스 제공 장치 및 그것의 계정 관리 방법
US20140317310A1 (en) Image processing system, image processing method, and storage medium
JP6136393B2 (ja) 検索支援システム、情報共有システム、方法およびプログラム
JP6024450B2 (ja) メール処理プログラム、メール処理装置及びメール処理方法
WO2015029176A1 (ja) 情報処理端末システム
JP2015130132A (ja) 情報処理装置、プログラム、認証制御方法及び情報処理システム
JP2007034838A (ja) 文書管理装置、方法、プログラム及び記録媒体
JP2015005146A (ja) 文書生成システム
JP2016062215A (ja) 情報処理システム及び認証方法
JP2014232388A (ja) データ共有サーバー、データ共有システム、及びデータ共有サーバープログラム

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160128

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160525

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160831

R150 Certificate of patent or registration of utility model

Ref document number: 6004454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250