説明

検索装置及びコンピュータプログラム及び検索方法

【課題】検索速度を向上するとともに、アクセス権限の変化に柔軟に対応する。
【解決手段】利用者属性判定部141は、検索条件を指定した利用者が有する属性を判定する。利用者役割判定部142は、利用者属性判定部141が判定した属性に基づいて、その利用者が有する役割を判定する。利用者権限判定部143は、利用者役割判定部142が判定した役割に基づいて、その利用者が有するアクセス権限を判定する。検索対象抽出部144は、利用者権限判定部143が判定したアクセス権限に基づいて、検索対象記憶部122が記憶した検索対象データのなかから、その利用者にアクセス権限がある検索対象データを抽出する。データ検索部152は、検索対象抽出部144が抽出した検索対象データのなかから、検索条件を満たす検索対象データを検索する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、検索の対象となるデータのなかから、利用者にアクセス権限があり、かつ、検索条件に合致するデータを検索する検索装置に関する。
【背景技術】
【0002】
業務のIT化に伴い、文書の電子化が進み、電子文書管理システムが管理する電子文書ファイルなどのデータは、膨大な量に達している。このような膨大な数のデータのなかから、検索条件に合致するデータを検索する場合、検索に時間がかかる。
また、セキュリティの観点から、データにアクセスできる利用者を制限する場合がある。その場合、検索した利用者にアクセス権限がないデータは、検索結果に含めないようにしなければならないので、更に、そのデータに対するアクセス権限をチェックする処理を追加する必要がある。
このような課題を解決するための技術として、例えば、特許文献1に記載の技術がある。
【特許文献1】特開2004−164555号公報
【特許文献2】特開2005−85113号公報
【特許文献3】特開2006−99736号公報
【特許文献4】特開2001−167113号公報
【特許文献5】特開2003−67250号公報
【特許文献6】特開2006−268700号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
利用者と、その利用者にアクセス権限があるデータとの関係は、様々な要因により変化する場合がある。
例えば、人事異動により、ある利用者があるプロジェクトから外された場合、その利用者は、それまで閲覧可能だったデータに対するアクセス権限を失い、閲覧できなくなる。
また、あるプロジェクトの特定の利用者しか閲覧できなかったデータが、そのプロジェクトが一般公開された時点で、一般の利用者に閲覧可能となる場合がある。その他、データの機密保持期間が終了したために、一般利用者が閲覧可能となる場合もある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、大量のデータのなかから検索条件に合致するデータを検索する速度を向上するとともに、利用者と、その利用者にアクセス権限があるデータとの関係が変化した場合であっても、柔軟に対応することができるようにすることを目的とする。
【課題を解決するための手段】
【0004】
この発明にかかる検索装置は、データを記憶する記憶装置と、データを処理する処理装置と、検索対象記憶部と、利用者属性判定部と、利用者役割判定部と、利用者権限判定部と、検索対象抽出部と、検索条件入力部と、データ検索部と、検索結果出力部とを有し、
上記検索対象記憶部は、上記記憶装置を用いて、検索の対象となる検索対象データを記憶し、
上記検索条件入力部は、上記処理装置を用いて、利用者が指定した検索条件を入力し、
上記利用者属性判定部は、上記処理装置を用いて、上記検索条件を指定した利用者が有する属性を判定し、
上記利用者役割判定部は、上記処理装置を用いて、上記利用者属性判定部が判定した属性に基づいて、上記検索条件を指定した利用者が有する役割を判定し、
上記利用者権限判定部は、上記処理装置を用いて、上記利用者役割判定部が判定した役割に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定し、
上記検索対象抽出部は、上記処理装置を用いて、上記利用者権限判定部が判定したアクセス権限に基づいて、上記検索対象記憶部が記憶した検索対象データのなかから、上記検索条件を指定した利用者にアクセス権限がある検索対象データを抽出し、
上記データ検索部は、上記処理装置を用いて、上記検索対象抽出部が抽出した検索対象データのなかから、上記検索条件入力部が入力した検索条件を満たす検索対象データを検索し、
上記検索結果出力部は、上記処理装置を用いて、上記データ検索部が検索した検索結果を出力することを特徴とする。
【発明の効果】
【0005】
この発明にかかる検索装置によれば、データ検索部が検索条件に合う検索対象データを検索する範囲を、検索条件を指定した利用者にアクセス権限がある検索対象データに限定するので、検索にかかる時間を短縮することができる。また、利用者属性判定部が利用者の属性を判定し、利用者役割判定部が利用者の属性から役割を判定し、利用者権限判定部が利用者の役割からアクセス権限を判定するので、様々な要因で利用者にアクセス権限がある検索対象データの範囲が変わった場合に、柔軟に対応することができる。
【発明を実施するための最良の形態】
【0006】
実施の形態1.
実施の形態1について、図1〜図14を用いて説明する。
【0007】
図1は、この実施の形態における検索システム800の全体構成の一例を示すシステム構成図である。
検索システム800は、検索装置100、管理者端末装置810、利用者端末装置820を有する。
検索装置100は、管理情報データと、検索対象データとを記憶している。管理情報データは、検索対象データに対してアクセスする権限が利用者にあるか否かを判定するために用いられる管理情報を表わすデータである。
管理者は、管理者端末装置810を操作して、管理情報を指定する。管理者端末装置810は、管理者の操作にしたがって、管理者が指定した管理情報を入力する。管理者端末装置810は、入力した管理情報を表わす管理情報データを検索装置100に対して送信する。
検索装置100は、管理者端末装置810が送信した管理情報データを受信し、受信した管理情報データに基づいて、記憶した管理情報データを更新する。
利用者は、利用者端末装置820を操作して、検索条件を指定する。利用者端末装置820は、利用者の操作にしたがって、利用者が指定した検索条件を入力する。利用者端末装置820は、入力した検索条件を表わすデータ(以下「検索条件データ」と呼ぶ。)を検索装置100に対して送信する。
検索装置100は、利用者端末装置820が送信した検索条件データを受信し、受信した検索条件データが表わす検索条件に基づいて、記憶した検索対象データのなかから、検索条件を満たす検索対象データを検索する。このとき、検索装置100は、記憶した管理情報データが表わす管理情報に基づいて、それぞれの検索対象データに対するアクセス権限が利用者にあるか否かを判定し、その利用者にアクセス権限のある検索対象データのみを検索し、その利用者にアクセス権限がない検索対象データは検索しない。検索装置100は、検索した結果を表わすデータ(以下「検索結果データ」と呼ぶ。)を利用者端末装置820に対して送信する。
利用者端末装置820は、検索装置100が送信した検索結果データを受信し、受信した検索結果データが表わす検索結果を、表示するなどして利用者に提示する。
【0008】
図2は、この実施の形態における検索装置100、管理者端末装置810、利用者端末装置820の外観の一例を示す図である。
検索装置100、管理者端末装置810、利用者端末装置820は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
【0009】
図3は、この実施の形態における検索装置100、管理者端末装置810、利用者端末装置820のハードウェア資源の一例を示す図である。
検索装置100、管理者端末装置810、利用者端末装置820は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0010】
通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0011】
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0012】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【0013】
図4は、この実施の形態における検索装置100の機能ブロックの構成の一例を示すブロック構成図である。
検索装置100は、管理情報入力部111、管理情報更新部112、利用者属性記憶部113、役割条件記憶部114、役割権限記憶部115、グループ条件記憶部116、検索対象更新部121、検索対象記憶部122、所属抽出部123、所属更新部124、グループ所属記憶部125、複製記憶部126、認証記憶部131、認証入力部132、認証判定部133、利用者識別記憶部134、利用者属性判定部141、利用者役割判定部142、利用者権限判定部143、検索対象抽出部144、検索条件入力部151、データ検索部152、検索結果出力部153を有する。
【0014】
管理情報入力部111は、通信装置915を用いて、管理者端末装置810が送信した管理情報データを受信する。管理情報入力部111は、CPU911を用いて、受信した管理情報データを出力する。
【0015】
管理情報更新部112は、CPU911を用いて、管理情報入力部111が出力した管理情報データを入力する。管理情報更新部112は、CPU911を用いて、入力した管理情報データに基づいて、検索装置100が記憶した管理情報データを更新する。
検索装置100が記憶した管理情報データには、利用者属性データ、役割条件データ、役割権限データ、グループ条件データなどがある。
【0016】
利用者属性記憶部113は、磁気ディスク装置920を用いて、管理情報データのうち、利用者属性データを記憶する。利用者属性データとは、利用者と、その利用者が有する属性との組み合わせを表わすデータである。
【0017】
図5は、この実施の形態における利用者属性記憶部113が記憶する利用者属性データ510の一例を示す図である。
利用者属性データ510(ユーザ情報)は、例えば、利用者識別データ511、所属組織データ512、役職データ513、社員区分データ514、配属区分データ515、その他属性データ516を一組のデータ(以下「ユーザ情報データ」と呼ぶ。)として、1つ以上のユーザ情報データを含む。
【0018】
利用者識別データ511は、ユーザIDなど、利用者を一意に識別する文字列を表わす文字列データである。
所属組織データ512は、その利用者が所属する組織を表わす文字列データである。
役職データ513は、その利用者の役職を表わす文字列データである。
社員区分データ514は、その利用者の社員区分を表わす文字列データである。
配属区分データ515は、その利用者の配属区分を表わす文字列データある。
その他属性データ516は、その利用者が有する上記以外の属性を表わす文字列データである。
利用者の所属組織、役職、社員区分、配属区分などは、利用者が有する属性の一例である。
【0019】
この例における利用者属性データ510は、例えば、利用者識別データ511が「satou」である利用者が、A部A1課の担当であり、正社員であることを表わしている。
また、利用者識別データ511が「tanaka」である利用者は、B部の部長であるとともに、A部A1課の課長を兼務し、プロジェクトAに参加していることを表わしている。
【0020】
図4に戻り、検索装置100の機能ブロックについての説明を続ける。
【0021】
役割条件記憶部114は、磁気ディスク装置920を用いて、管理情報データのうち、役割条件データを記憶する。役割条件データとは、利用者の属性についての条件(以下「属性条件」と呼ぶ。)と、その属性条件を満たす利用者が有する役割(ロール)との組み合わせを表わすデータである。
【0022】
図6は、この実施の形態における役割条件記憶部114が記憶する役割条件データ520の一例を示す図である。
役割条件データ520(ロール情報)は、役割識別データ521、役割名称データ522、属性条件データ523を一組のデータ(以下「ロール情報データ」と呼ぶ。)として、1つ以上のロール情報データを含む。
【0023】
役割識別データ521(ロールID)は、役割を一意に識別する文字列を表わす文字列データである。
役割名称データ522は、その役割の名称を表わす文字列データである。
属性条件データ523は、利用者がその役割を有するための属性条件を表わす文字列データである。すなわち、属性条件データ523が表わす属性条件を利用者が満たしている場合に、その利用者がその役割を有していることになる。
【0024】
この例における役割条件データ520は、例えば、役割識別データ521が「ROL001」である役割を利用者が有するためには、利用者属性データ510の役職データ513が表わす「役職」属性が「担当」であることが条件となることを表わしている。これを、図5に示した利用者属性データ510に当てはめると、役割識別データ521が「ROL001」である役割を有する利用者は、利用者識別データ511が「satou」である利用者、利用者識別データ511が「suzuki」である利用者、利用者識別データ511が「takahashi」である利用者であることがわかる。
また、複数の属性についての条件を組み合わせてもよく、例えば、役割識別データ521が「ROL006」である役割を利用者が有するためには、利用者属性データ510の社員区分データ514が表わす「社員区分」属性が「社員」であり、かつ、その他属性データ516が表わす「その他」属性が「休職中」でないことが条件となることを表わしている。これを、図5に示した利用者属性データ510に当てはめると、役割識別データ521が「ROL006」である役割を有する利用者は、利用者識別データ511が「satou」「saitou」「yamada」「tanaka」のいずれかである利用者であることがわかる。
【0025】
図4に戻り、検索装置100の機能ブロックについての説明を続ける。
【0026】
役割権限記憶部115は、磁気ディスク装置920を用いて、管理情報データのうち、役割権限データを記憶する。役割権限データとは、利用者が有する役割と、その役割を有する利用者が有するアクセス権限との組み合わせを表わすデータである。
【0027】
図7は、この実施の形態における役割権限記憶部115が記憶する役割権限データ530の一例を示す図である。
役割権限データ530(アクセス制御情報)は、権限識別データ531、権限役割データ532、権限グループデータ533を一組のデータ(以下「アクセス制御情報データ」と呼ぶ。)として、1つ以上のアクセス制御情報データを含む。
【0028】
権限識別データ531(アクセス制御ID)は、アクセス権限を一意に識別する文字列を表わす文字列データである。
権限役割データ532(ロールID)は、そのアクセス権限を有する利用者が有する役割を示す役割識別データのリストを表わす文字列データである。
権限グループデータ533(グループID)は、そのアクセス権限を有する利用者がアクセスすることができる検索対象データが属するグループを示すグループ識別データのリストを表わす文字列データである。
【0029】
この例における役割権限データ530は、例えば、権限識別データ531が「ACL001」であるアクセス権限は、役割識別データが「ROL001」である役割を有する利用者が有し、その利用者は、グループ識別データが「GRP001」であるグループに属する検索対象データにアクセスしてよいことを表わしている。
また、一つのアクセス権限に複数の役割が対応してもよく、例えば、権限識別データ531が「ACL002」であるアクセス権限は、役割識別データが「ROL002」「ROL003」のいずれかである役割を有する利用者が有することを表わしている。
逆に、一つのアクセス権限に複数のグループが対応してもよく、例えば、権限識別データ531が「ACL003」であるアクセス権限を有する利用者は、グループ識別データが「GRP003」「GRP005」のいずれかであるグループに属する検索対象データにアクセスすることが許可されていることを表わしている。
【0030】
図4に戻り、検索装置100の機能ブロックについての説明を続ける。
【0031】
グループ条件記憶部116は、磁気ディスク装置920を用いて、管理情報データのうち、グループ条件データを記憶する。グループ条件データとは、検索対象データが属するグループと、そのグループに属する検索対象データが満たすべき条件(以下「所属条件」と呼ぶ。)との組み合わせを表わすデータである。
【0032】
図8は、この実施の形態におけるグループ条件記憶部116が記憶するグループ条件データ540の一例を示す図である。
グループ条件データ540(グループ情報)は、グループ識別データ541、グループ名称データ542、所属条件データ543、グループインデックスデータ544を一組のデータ(以下「グループ情報データ」と呼ぶ。)として、1つ以上のグループ情報データを含む。
【0033】
グループ識別データ541(グループID)は、グループを一意に識別する文字列を表わす文字列データである。
グループ名称データ542は、そのグループの名称を表わす文字列データである。
所属条件データ543は、検索対象データがそのグループに属するための所属条件を表わす文字列データである。すなわち、所属条件データ543が表わす所属条件を検索対象データが満たしている場合に、その検索対象データがそのグループに属していることになる。
グループインデックスデータ544(インデックスID)は、そのグループに属すると判定した検索対象データの在り処を示すインデックス(例えばパス名+ファイル名)を記録するインデックスファイルのファイル名を表わす文字列データである。
【0034】
この例におけるグループ条件データ540は、例えば、グループ識別データ541が「GRP001」であるグループには、検索対象データが有する属性のうち「対象者」属性が「担当」である検索対象データが属することを表わしている。
また、グループ識別データ541が「GRP002」であるグループには、検索対象データのパスが「//file/saiyou/」である検索対象データが属することを表わしている。
【0035】
図4に戻り、検索装置100の機能ブロックについての説明を続ける。
【0036】
検索対象記憶部122は、磁気ディスク装置920を用いて、1つ以上の検索対象データを記憶する。
【0037】
グループ所属記憶部125は、磁気ディスク装置920を用いて、検索対象記憶部122が記憶した検索対象データと、その検索対象データが属するグループとの組み合わせを表わすデータ(以下「グループ所属データ」と呼ぶ。)を記憶する。
【0038】
図9は、この実施の形態におけるグループ所属記憶部125が記憶するグループ所属データ550の一例を示す図である。
グループ所属データ550は、1つ以上のインデックスファイル551からなる。インデックスファイル551は、所属インデックスデータ552を記録したファイルである。
【0039】
所属インデックスデータ552は、グループ条件記憶部116が記憶したグループ条件データ540においてそのインデックスファイル551のファイル名が対応づけられたグループに属する検索対象データの在り処を示すインデックスのリストを表わす文字列データである。
【0040】
この例におけるグループ所属データ550は、例えば、ファイル名が「grp001.idx」であるインデックスファイル551に対応づけられたグループに、インデックスが「//file/position/tantou/file34.doc」である検索対象データと、インデックスが「//file/general/file82.pdf」である検索対象データとが属することを表わしている。
図8に示したグループ条件データ540によれば、ファイル名が「grp001.idx」であるインデックスファイル551には、グループ識別データが「GRP001」であるグループが対応づけられている。
したがって、この例におけるグループ所属データ550は、グループ識別データが「GRP001」であるグループに、インデックスが「//file/position/tantou/file34.doc」である検索対象データと、インデックスが「//file/general/file82.pdf」である検索対象データとが属することを表わしている。
【0041】
図4に戻り、検索装置100の機能ブロックについての説明を続ける。
【0042】
複製記憶部126は、磁気ディスク装置920を用いて、グループ所属記憶部125が記憶したグループ所属データ550と実質的に同一のデータ(以下「複製グループ所属データ」と呼ぶ。)を記憶する。例えば、複製記憶部126は、磁気ディスク装置920を用いて、グループ所属データ550と同一のデータ、あるいは、グループ所属データ550とデータ形式は異なるが、表わす内容が同一であるデータを複製グループ所属データとして記憶する。例えば、複製記憶部126は、磁気ディスク装置920を用いて、グループ所属データ550に含まれるインデックスファイル551をすべて結合し、インデックスファイル551のファイル名もしくは対応するグループ識別データから、そのインデックスファイル551に記録された所属インデックスデータ552を取得できるよう構成された複製グループ所属データを記憶する。
【0043】
検索対象更新部121は、CPU911を用いて、検索対象記憶部122に新たな検索対象データを追加し、検索対象記憶部122が記憶した検索対象データを更新し、検索対象記憶部122が記憶した検索対象データを削除する。検索対象更新部121は、CPU911を用いて、追加・更新・削除した検索対象データを示すデータ(以下「更新通知データ」と呼ぶ。)を出力する。
【0044】
所属抽出部123は、CPU911を用いて、検索対象更新部121が出力した更新通知データを入力する。所属抽出部123は、CPU911を用いて、入力した更新通知データを解析し、検索対象更新部121が追加・更新・削除した検索対象データを特定する。
所属抽出部123は、CPU911を用いて、グループ条件記憶部116が記憶したグループ条件データ540を入力する。所属抽出部123は、CPU911を用いて、検索対象記憶部122が記憶した検索対象データのなかから、特定した検索対象データを入力する。所属抽出部123は、CPU911を用いて、入力したグループ条件データ540に基づいて、入力した検索対象データが属するグループを判定する。所属抽出部123は、CPU911を用いて、入力した検索対象データが属すると判定したグループのリストを生成する。所属抽出部123は、CPU911を用いて、生成したリストを表わすデータ(以下「所属グループリストデータ」と呼ぶ。)を出力する。所属グループリストデータは、例えば、0個以上のグループ識別データ(またはインデックスファイルのファイル名を表わす文字列データ)を含む。
【0045】
所属更新部124は、CPU911を用いて、所属抽出部123が出力した所属グループリストデータと、複製記憶部126が記憶した複製グループ所属データとを入力する。所属更新部124は、CPU911を用いて、入力した複製グループ所属データに基づいて、所属抽出部123が特定した検索対象データが属するグループのリストを生成する。所属更新部124は、CPU911を用いて、生成したグループのリストと、入力した所属グループリストデータが表わすグループのリストとを比較して、更新すべきインデックスファイル551を特定する。
例えば、検索対象データの追加や更新により、その検索対象データが新たに所属条件を満たすようになったグループがある場合、そのグループは、所属グループリストデータが表わすリストに含まれるが、複製グループ所属データから生成したリストには含まれない。逆に、検索対象データの更新や削除により、その検索対象データが所属条件を満たさなくなったグループがある場合、そのグループは、所属グループリストデータが表わすリストには含まれないが、複製グループ所属データから生成したリストには含まれる。いずれの場合であっても、そのグループについてのインデックスファイル551を最新の状態に更新する必要がある。このように、所属更新部124は、CPU911を用いて、二つのリストを比較することにより、更新すべきインデックスファイル551を特定する。
所属更新部124は、CPU911を用いて、入力した複製グループ所属データと、所属グループリストデータとに基づいて、特定したインデックスファイル551に記録すべき所属インデックスデータを生成する。所属更新部124は、CPU911を用いて、グループ所属記憶部125が記憶したグループ所属データ550のうち、特定したインデックスファイル551を更新して、生成した所属インデックスデータ552を記憶させる。所属更新部124は、CPU911を用いて、更新したグループ所属データ550と同一の内容を表わすよう、複製記憶部126が記憶した複製グループ所属データを更新する。
【0046】
また、グループ条件記憶部116が記憶したグループ条件データを管理情報更新部112が更新した場合、所属抽出部123は、CPU911を用いて、検索対象記憶部122が記憶したすべての検索対象データのなかから、更新された所属条件を満たす検索対象データを抽出する。所属抽出部123は、CPU911を用いて、抽出した検索対象データのリストを生成する。所属抽出部123は、CPU911を用いて、生成したリストを表わすデータ(以下「所属データリストデータ」と呼ぶ。)を出力する。
【0047】
所属更新部124は、CPU911を用いて、所属抽出部123が出力した所属データリストデータと、複製記憶部126が記憶した複製グループ所属データとを入力する。所属更新部124は、CPU911を用いて、入力した複製グループ所属データに基づいて、所属条件が更新されたグループに属する検索対象データのリストを生成する。所属更新部124は、CPU911を用いて、生成したリストと、入力した所属データリストデータが表わすリストとを比較して、グループ所属記憶部125が記憶したそのグループについてのインデックスファイル551を更新すべきか否かを判定する。二つのリストがまったく等しければ更新の必要はないが、二つのリストに相違する点がある場合、所属更新部124は、CPU911を用いて、更新すべきであると判定する。
更新すべきであると判定した場合、所属更新部124は、CPU911を用いて、入力した所属データリストデータに基づいて、更新後のインデックスファイル551に記録すべき所属インデックスデータを生成する。所属更新部124は、CPU911を用いて、グループ所属記憶部125が記憶したグループ所属データ550のうち、所属条件が更新されたグループについてのインデックスファイル551を更新して、生成した所属インデックスデータを記憶させる。所属更新部124は、CPU911を用いて、更新したグループ所属データ550と同一の内容を表わすよう、複製記憶部126が記憶した複製グループ所属データを更新する。
【0048】
このように、検索対象記憶部122が記憶した検索対象データや、グループ条件記憶部116が記憶したグループ条件データが更新された場合に、グループ所属記憶部125が記憶したグループ所属データを、所属更新部124が更新し、常に最新の状態に保つ。
なお、検索対象記憶部122が記憶した検索対象データや、グループ条件記憶部116が記憶したグループ条件データが更新されたか否かに関わらず、すべてのグループについて、そのグループに属する検索対象データを、所属抽出部123が定期的に抽出し、グループ所属記憶部125が記憶したグループ所属データを、所属更新部124が更新する構成としてもよい。
【0049】
認証記憶部131は、磁気ディスク装置920を用いて、認証データを記憶する。認証データとは、利用者と、その利用者を認証するための情報(例えばパスワード)との組み合わせを表わすデータである。認証データは、例えば、利用者を示す利用者識別データと、その利用者のパスワードを表わす文字列データとを一組とし、1つ以上の組からなるデータである。
【0050】
利用者が検索システム800にログインしようとする際、利用者端末装置820は、キーボード902などを用いて、利用者識別データと、パスワードとを入力する。利用者端末装置820は、通信装置915を用いて、入力した利用者識別データとパスワードとを、検索装置100に対して送信する。
【0051】
認証入力部132は、通信装置915を用いて、利用者端末装置820が送信した利用者識別データとパスワードとを受信する。認証入力部132は、CPU911を用いて、受信した利用者識別データとパスワードとを出力する。
【0052】
認証判定部133は、CPU911を用いて、認証入力部132が出力した利用者識別データとパスワードとを入力する。認証判定部133は、CPU911を用いて、認証記憶部131が記憶した認証データに基づいて、入力した利用者識別データとパスワードとの組み合わせが正しいか否かを判定する。認証判定部133は、CPU911を用いて、入力した利用者識別データとパスワードとの組み合わせが正しければ、認証成功と判定し、組み合わせが正しくなければ、認証失敗と判定する。認証判定部133は、CPU911を用いて、判定した結果を表わすデータ(以下「認証結果データ」と呼ぶ。)を出力する。また、認証成功と判定した場合、認証判定部133は、CPU911を用いて、入力した利用者識別データを出力する。
【0053】
利用者識別記憶部134は、CPU911を用いて、認証判定部133が出力した利用者識別データを入力する。利用者識別記憶部134は、磁気ディスク装置920を用いて、入力した利用者識別データを記憶する。
【0054】
利用者属性判定部141は、CPU911を用いて、利用者識別記憶部134が記憶した利用者識別データを入力する。利用者属性判定部141は、CPU911を用いて、利用者属性記憶部113が記憶した利用者属性データ510に基づいて、入力した利用者識別データによって識別される利用者が有する属性を判定する。利用者属性判定部141は、CPU911を用いて、判定した属性を表わすデータ(以下「検索利用者属性データ」と呼ぶ。)を出力する。
【0055】
利用者役割判定部142は、CPU911を用いて、利用者属性判定部141が出力した検索利用者属性データを入力する。利用者役割判定部142は、CPU911を用いて、役割条件記憶部114が記憶した役割条件データに基づいて、入力した検索利用者属性データが表わす属性を有する利用者が有する役割を判定する。利用者役割判定部142は、CPU911を用いて、判定した役割を表わすデータ(以下「検索利用者役割データ」と呼ぶ。)を出力する。
【0056】
利用者権限判定部143は、CPU911を用いて、利用者役割判定部142が出力した検索利用者役割データを入力する。利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データに基づいて、入力した検索利用者役割データが表わす役割を有する利用者が有するアクセス権限を判定し、その利用者がアクセスしてもよいグループを判定する。利用者権限判定部143は、CPU911を用いて、判定したグループを表わすデータ(以下「検索利用者グループデータ」と呼ぶ。)を出力する。
【0057】
検索対象抽出部144は、CPU911を用いて、利用者権限判定部143が出力した検索利用者グループデータを入力する。検索対象抽出部144は、CPU911を用いて、グループ条件記憶部116が記憶したグループ条件データ540に基づいて、入力した検索利用者グループデータが表わすグループを識別するグループ識別データ541に対応づけられたグループインデックスデータ544を取得する。検索対象抽出部144は、CPU911を用いて、グループ所属記憶部125が記憶したグループ所属データのなかから、取得したグループインデックスデータ544が表わすファイル名を有するインデックスファイル551を選択する。検索対象抽出部144は、CPU911を用いて、選択したインデックスファイル551に記録された所属インデックスデータ552に基づいて、入力した検索利用者グループデータが表わすグループに属する検索対象データを、検索対象記憶部122が記憶した検索対象データのなかから抽出する。検索対象抽出部144は、CPU911を用いて、抽出した検索対象データのリストを表わすデータ(以下「検索対象リストデータ」と呼ぶ。)を出力する。
検索対象抽出部144が出力する検索対象リストデータは、その利用者にアクセス権限がある検索対象データのリストを表わす。
【0058】
認証に成功した場合、利用者端末装置820は、キーボード902などを用いて、利用者が指定した検索条件を入力する。利用者端末装置820は、通信装置915を用いて、入力した検索条件を表わす検索条件データを、検索装置100に対して送信する。
【0059】
検索条件入力部151は、CPU911を用いて、認証判定部133が出力した認証結果データを入力する。検索条件入力部151は、入力した認証結果データを解析して、認証判定部133による認証結果を判定し、認証成功であれば、通信装置915を用いて、利用者端末装置820が送信した検索条件データを受信する。検索条件入力部151は、CPU911を用いて、受信した検索条件データを出力する。
【0060】
データ検索部152は、CPU911を用いて、検索条件入力部151が出力した検索条件データと、検索対象抽出部144が出力した検索対象リストデータとを入力する。データ検索部152は、CPU911を用いて、検索対象記憶部122が記憶した検索対象データのなかから、入力した検索対象リストデータが表わすリストに含まれる検索対象データを取得する。データ検索部152は、CPU911を用いて、取得した検索対象データのなかから、入力した検索条件データが表わす検索条件を満たす検索対象データを検索する。データ検索部152は、CPU911を用いて、検索した結果を表わす検索結果データを出力する。検索結果データは、例えば、検索された検索対象データそのものであってもよいし、検索された検索対象データの在り処を示すインデックスであってもよい。
【0061】
検索結果出力部153は、CPU911を用いて、データ検索部152が出力した検索結果データを入力する。検索結果出力部153は、通信装置915を用いて、入力した検索結果データを、利用者端末装置820に対して送信する。
【0062】
このように、検索条件を満たす検索対象データを検索するに際して、その利用者にアクセス権限がある検索対象データだけを対象にして検索をするので、検索対象データの数が膨大である場合や、検索対象データの大きさが大きい場合であっても、素早く検索をすることができる。
【0063】
アクセス権限がない利用者に対して、そのデータの内容を開示しないことはもちろん、そのデータの存在自体を開示しないほうが、データの機密性を高めることができる。
データ検索部152が検索した結果には、その利用者にアクセス権限がある検索対象データしか含まれないので、その利用者にアクセス権限があるか否かを改めてチェックする必要がなく、データ検索部152が検索した結果を検索装置100がそのまま出力しても、その利用者にアクセス権限がないデータの存在がその利用者に開示されるのを防ぐことができる。
【0064】
次に、検索装置100の動作について説明する。
【0065】
図10は、この実施の形態における検索装置100が検索対象データを検索する検索処理の流れの一例を示すフローチャート図である。
検索処理は、利用者認証工程S610、利用者属性判定工程S620、利用者役割判定工程S630、利用者権限判定工程S640、検索対象抽出工程S650、検索条件入力工程S660、データ検索工程S670、検索結果出力工程S680を有する。
【0066】
利用者認証工程S610において、認証入力部132は、通信装置915を用いて、検索対象データを検索しようとしている利用者の利用者識別データとパスワードとを、利用者端末装置820から受信する。認証入力部132は、CPU911を用いて、受信した利用者識別データとパスワードとを出力する。
認証判定部133は、CPU911を用いて、認証入力部132が出力した利用者識別データとパスワードとを入力する。認証判定部133は、CPU911を用いて、認証記憶部131が記憶した認証データを検索し、入力した利用者識別データと一致する利用者識別データと組をなすパスワードを取得する。認証判定部133は、CPU911を用いて、入力したパスワードと、取得したパスワードとを比較して、一致するか否かを判定する。ここで、パスワードが一致すれば認証成功、一致しなければ認証失敗である。
認証判定部133は、CPU911を用いて、パスワードが一致しないと判定した場合、すなわち、認証に失敗した場合、検索処理を終了する。
認証判定部133は、CPU911を用いて、パスワードが一致したと判定した場合、すなわち、認証に成功した場合、入力した利用者識別データを出力する。利用者識別記憶部134は、CPU911を用いて、認証判定部133が出力した利用者識別データを入力する。利用者識別記憶部134は、磁気ディスク装置920を用いて、入力した利用者識別データを記憶する。
【0067】
利用者属性判定工程S620において、利用者属性判定部141は、CPU911を用いて、利用者認証工程S610で利用者識別記憶部134が記憶した利用者識別データを入力する。
利用者属性判定部141は、CPU911を用いて、利用者属性記憶部113が記憶した利用者属性データ510を検索し、入力した利用者識別データと一致する利用者識別データ511と組をなす所属組織データ512、役職データ513、社員区分データ514、配属区分データ515、その他属性データ516など、その利用者が有する属性を表わすデータを取得して、検索利用者属性データとする。
利用者属性判定部141は、CPU911を用いて、取得した検索利用者属性データを出力する。
【0068】
利用者役割判定工程S630において、利用者役割判定部142は、CPU911を用いて、利用者認証工程S610で利用者識別記憶部134が記憶した利用者識別データによって識別される利用者が有する役割を判定する。
【0069】
図11は、この実施の形態における利用者役割判定部142が利用者の役割を判定する利用者役割判定工程S630の流れの一例を示すフローチャート図である。
利用者役割判定工程S630は、利用者属性入力工程S631、役割リスト初期化工程S632、役割条件入力工程S633、属性条件判定工程S634、役割リスト追加工程S635、役割条件繰り返し工程S636、利用者役割出力工程S637を有する。
【0070】
利用者属性入力工程S631において、利用者役割判定部142は、CPU911を用いて、利用者属性判定工程S620で利用者属性判定部141が出力した検索利用者属性データを入力する。
【0071】
役割リスト初期化工程S632において、利用者役割判定部142は、CPU911を用いて、検索利用者役割データを初期化する。検索利用者役割データは、0個以上の役割識別データを含む。検索利用者役割データに含まれる各役割識別データは、その利用者が有する役割を示すものであり、利用者が有する役割の数と同じ数の役割識別データが、検索利用者役割データに含まれる。利用者役割判定部142は、CPU911を用いて、検索利用者役割データに含まれる役割識別データをすべて削除し、検索利用者役割データに役割識別データが1つも含まれない状態とすることにより、検索利用者役割データを初期化する。利用者役割判定部142は、磁気ディスク装置920を用いて、初期化した検索利用者役割データを記憶する。
【0072】
役割条件入力工程S633において、利用者役割判定部142は、CPU911を用いて、役割条件記憶部114が記憶した役割条件データ520のなかから、まだ処理していないロール情報データを一つ入力する。利用者役割判定部142は、CPU911を用いて、役割条件記憶部114が記憶した役割条件データ520に含まれるすべてのロール情報データについて処理が終了し、入力できるロール情報データが存在しないと判定した場合、利用者役割出力工程S637へ進む。
【0073】
属性条件判定工程S634において、利用者役割判定部142は、CPU911を用いて、役割条件入力工程S633で入力したロール情報データに含まれる属性条件データ523が表わす属性条件に、利用者属性入力工程S631で入力した検索利用者属性データが表わす属性を当てはめて、属性条件が満たされているか否かを判定する。ここで、属性条件が充足されていれば、その利用者がその役割を有することになる。
利用者役割判定部142は、CPU911を用いて、属性条件が充足されていると判定した場合、すなわち、その利用者がその役割を有する場合、役割リスト追加工程S635へ進む。
利用者役割判定部142は、CPU911を用いて、属性条件が充足されていないと判定した場合、すなわち、その利用者がその役割を有しない場合、役割条件繰り返し工程S636へ進む。
【0074】
役割リスト追加工程S635において、利用者役割判定部142は、CPU911を用いて、役割リスト初期化工程S632で初期化した検索利用者役割データに、役割条件入力工程S633で入力したロール情報データに含まれる役割識別データ521を追加する。利用者役割判定部142は、磁気ディスク装置920を用いて、役割識別データ521を追加した検索利用者役割データを記憶する。
【0075】
役割条件繰り返し工程S636において、利用者役割判定部142は、CPU911を用いて、役割条件入力工程S633に戻り、次のロール情報データを入力する。
【0076】
利用者役割出力工程S637において、利用者役割判定部142は、CPU911を用いて、役割リスト初期化工程S632で初期化し役割リスト追加工程S635で役割識別データ521を追加した検索利用者役割データを出力する。
【0077】
図10に戻り、検索処理の流れの説明を続ける。
【0078】
利用者権限判定工程S640において、利用者権限判定部143は、CPU911を用いて、利用者認証工程S610で利用者識別記憶部134が記憶した利用者識別データによって識別される利用者が有するアクセス権限を判定する。
【0079】
図12は、この実施の形態における利用者権限判定部143が利用者のアクセス権限を判定する利用者権限判定工程S640の流れの一例を示すフローチャート図である。
利用者権限判定工程S640は、利用者役割入力工程S641、グループリスト初期化工程S642、役割権限入力工程S643、アクセス権限判定工程S644、グループリスト追加工程S645、役割権限繰り返し工程S646、利用者権限出力工程S647を有する。
【0080】
利用者役割入力工程S641において、利用者権限判定部143は、CPU911を用いて、利用者役割出力工程S637で利用者役割判定部142が出力した検索利用者役割データを入力する。
【0081】
グループリスト初期化工程S642において、利用者権限判定部143は、CPU911を用いて、検索利用者グループデータを初期化する。検索利用者グループデータは、0個以上のグループ識別データを含む。検索利用者グループデータに含まれる各グループ識別データは、その利用者がアクセス権限を有するグループを示すものであり、その利用者がアクセス権限を有するグループの数と同じ数のグループ識別データが、検索利用者グループデータに含まれる。利用者権限判定部143は、CPU911を用いて、検索利用者グループデータに含まれるグループ識別データをすべて削除し、検索利用者グループデータにグループ識別データが1つも含まれない状態とすることにより、検索利用者グループデータを初期化する。利用者権限判定部143は、磁気ディスク装置920を用いて、初期化した検索利用者グループデータを記憶する。
【0082】
役割権限入力工程S643において、利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データ530のなかから、まだ処理していないアクセス権限情報データを一つ入力する。利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データ530に含まれるすべてのアクセス権限情報データについて処理が終了し、入力できるアクセス権限情報データが存在しないと判定した場合、利用者権限出力工程S647へ進む。
【0083】
アクセス権限判定工程S644において、利用者権限判定部143は、CPU911を用いて、利用者役割入力工程S641で入力した検索利用者役割データと、役割権限入力工程S643で取得したアクセス権限情報データに含まれる権限役割データ532とを比較して、両者に共通して含まれる役割識別データがあるか否かを判定する。ここで、両者に共通して含まれる役割識別データがあれば、その利用者にそのアクセス権限があることになる。
利用者権限判定部143は、CPU911を用いて、検索利用者役割データと権限役割データ532とに共通して含まれる役割識別データがあると判定した場合、すなわち、その利用者にそのアクセス権限がある場合、グループリスト追加工程S645へ進む。
利用者権限判定部143は、CPU911を用いて、検索利用者役割データと権限役割データ532とに共通して含まれる役割識別データがないと判定した場合、すなわち、その利用者にそのアクセス権限がない場合、役割権限繰り返し工程S646へ進む。
【0084】
グループリスト追加工程S645において、利用者権限判定部143は、CPU911を用いて、グループリスト初期化工程S642で初期化した検索利用者グループデータに、役割権限入力工程S643で入力したアクセス権限情報データに含まれる権限グループデータ533に含まれるグループ識別データを追加する。利用者権限判定部143は、磁気ディスク装置920を用いて、グループ識別データを追加した検索利用者グループデータを記憶する。
【0085】
なお、利用者が複数の役割を有する場合、異なる役割に基づいて、一つのグループに対する複数のアクセス権限を持つ場合がある。根拠となる役割が異なっていても、結果として、そのグループに属する検索対象データにアクセスできることに変わりはないので、検索利用者グループデータには、そのグループを示すグループ識別データが一つ含まれていればよい。
そこで、利用者権限判定部143は、CPU911を用いて、検索利用者グループデータにグループ識別データを追加する際、追加しようとしているグループ識別データと一致するグループ識別データが、検索利用者グループデータに既に含まれているか否かを判定し、既に含まれている場合には、そのグループ識別データを検索利用者グループデータに追加しない。
あるいは、追加の際には、重複するグループ識別データがあるか否かを判定することなく、検索利用者グループデータにグループ識別データを追加しておき、あとで(例えば利用者権限出力工程S647で検索利用者グループデータを出力する前などにおいて)、利用者権限判定部143は、CPU911を用いて、検索利用者グループデータに含まれるグループ識別データを検査して、重複するグループ識別データを削除する構成としてもよい。
【0086】
役割権限繰り返し工程S646において、利用者権限判定部143は、CPU911を用いて、役割権限入力工程S643に戻り、次のアクセス権限情報データを入力する。
【0087】
利用者権限出力工程S647において、利用者権限判定部143は、CPU911を用いて、グループリスト初期化工程S642で初期化しグループリスト追加工程S645でグループ識別データを追加した検索利用者権限データを出力する。
【0088】
図10に戻り、検索処理の流れの説明を続ける。
【0089】
検索対象抽出工程S650において、検索対象抽出部144は、CPU911を用いて、その利用者にアクセス権限がある検索対象データを、検索対象記憶部122が記憶した検索対象データのなかから抽出する。
【0090】
図13は、この実施の形態における検索対象抽出部144が検索対象データを抽出する検索対象抽出工程S650の流れの一例を示すフローチャート図である。
検索対象抽出工程S650は、利用者権限入力工程S651、検索対象リスト初期化工程S652、グループ所属入力工程S653、グループ権限判定工程S654、検索対象リスト追加工程S655、グループ所属繰り返し工程S656、抽出検索対象出力工程S657を有する。
【0091】
利用者権限入力工程S651において、検索対象抽出部144は、CPU911を用いて、利用者権限出力工程S647で利用者権限判定部143が出力した検索利用者グループデータを入力する。
【0092】
検索対象リスト初期化工程S652において、検索対象抽出部144は、CPU911を用いて、検索対象リストデータを初期化する。検索対象リストデータは、その利用者にアクセス権限がある検索対象データの在り処を示すインデックスを0個以上含む。検索対象リストデータには、その利用者にアクセス権限がある検索対象データの数と同じ数のインデックスが含まれる。検索対象抽出部144は、CPU911を用いて、検索対象リストデータに含まれるインデックスをすべて削除して、検索対象リストデータにインデックスが1つも含まれない状態とすることにより、検索対象リストデータを初期化する。検索対象抽出部144は、磁気ディスク装置920を用いて、初期化した検索対象リストデータを記憶する。
【0093】
グループ識別入力工程S653において、検索対象抽出部144は、CPU911を用いて、利用者権限入力工程S651で入力した検索利用者グループデータに含まれるグループ識別データのなかから、まだ処理していないグループ識別データを一つ入力する。検索対象抽出部144は、CPU911を用いて、検索利用者グループデータに含まれるすべてのグループ識別データについて処理が終了し、入力できるグループ識別データが存在しないと判定した場合、抽出検索対象出力工程S657へ進む。
【0094】
所属インデックス入力工程S654において、検索対象抽出部144は、CPU911を用いて、グループ条件記憶部116が記憶したグループ条件データに基づいて、グループ識別入力工程S653で入力したグループ識別データに対応づけられたインデックスファイル551のファイル名を表わすグループインデックスデータ544を取得する。検索対象抽出部144は、CPU911を用いて、グループ所属記憶部125が記憶したグループ所属データのなかから、取得したグループインデックスデータ544をファイル名に持つインデックスファイル551を選択する。検索対象抽出部144は、CPU911を用いて、選択したインデックスファイル551に記録された所属インデックスデータ552を入力する。
【0095】
検索対象リスト追加工程S655において、検索対象抽出部144は、CPU911を用いて、検索対象リスト初期化工程S652で初期化した検索対象リストデータに、所属インデックス入力工程S654で入力した所属インデックスデータ552に含まれるインデックスを追加する。検索対象抽出部144は、磁気ディスク装置920を用いて、インデックスを追加した検索対象リストデータを記憶する。
なお、一つの検索対象データが複数の所属条件を満たすことにより、複数のグループに属する場合がある。利用者にその複数のグループに対するアクセス権限がある場合、根拠となるアクセス権限あるいはグループが異なっていても、結果として、その検索対象データにアクセスできることに変わりはないので、検索対象リストデータには、その検索対象データの在り処を示すインデックスが一つ含まれていればよい。
そこで、検索対象抽出部144は、CPU911を用いて、インデックスを追加しようとする際などに、インデックスの重複を判定し、検索対象リストデータに同じインデックスが重複して含まれないようにする。
【0096】
グループ所属繰り返し工程S656において、検索対象抽出部144は、CPU911を用いて、グループ所属入力工程S653に戻り、次のグループ所属データを入力する。
【0097】
抽出検索対象出力工程S657において、検索対象抽出部144は、CPU911を用いて、検索対象リスト初期化工程S652で初期化し検索対象リスト追加工程S655でインデックスを追加した検索対象リストデータを出力する。
なお、検索対象抽出部144は、検索対象リストデータを出力する代わりに、検索対象リストデータに含まれるインデックスが示す検索対象データそのものを検索対象記憶部122から入力し、入力した検索対象データを出力する構成としてもよい。
【0098】
図10に戻り、検索処理の流れの説明を続ける。
【0099】
検索条件入力工程S660において、検索条件入力部151は、通信装置915を用いて、認証に成功した利用者が指定した検索条件を表わす検索条件データを、利用者端末装置820から受信する。検索条件入力部151は、CPU911を用いて、受信した検索条件データを出力する。
【0100】
データ検索工程S670において、データ検索部152は、CPU911を用いて、検索対象抽出工程S650で検索対象抽出部144が抽出した検索対象データのなかから、検索条件入力工程S660で検索条件入力部151が入力した検索条件データが表わす検索条件を満たす検索対象データを検索する。
【0101】
図14は、この実施の形態におけるデータ検索部152が検索対象データを検索するデータ検索工程S670の流れの一例を示すフローチャート図である。
データ検索工程S670は、データ検索条件入力工程S671、検索結果リスト初期化工程S672、抽出検索対象入力工程S673、検索条件判定工程S674、検索結果リスト追加工程S675、抽出検索対象繰り返し工程S676、データ検索結果出力工程S677を有する。
【0102】
データ検索条件入力工程S671において、データ検索部152は、CPU911を用いて、検索条件入力工程S660で検索条件入力部151が出力した検索条件データを入力する。
【0103】
検索結果リスト初期化工程S672において、データ検索部152は、CPU911を用いて、検索結果リストデータを初期化する。検索結果リストデータとは、その利用者にアクセス権限がある検索対象データのうち検索条件を満たす検索対象データのリストを表わすデータであり、検索条件を満たす検索対象データの在り処を示すインデックスを0個以上含む。検索結果リストデータには、検索条件を満たす検索対象データの数と同じ数のインデックスが含まれる。データ検索部152は、CPU911を用いて、検索結果リストデータに含まれる検索対象データをすべて削除し、検索結果リストデータに検索対象データが1つも含まれない状態にすることにより、検索結果リストデータを初期化する。データ検索部152は、磁気ディスク装置920を用いて、初期化した検索結果リストデータを記憶する。
【0104】
抽出検索対象入力工程S673において、データ検索部152は、CPU911を用いて、抽出検索対象出力工程S657で検索対象抽出部144が出力した検索対象リストデータを入力する。
データ検索部152は、CPU911を用いて、入力した検索対象リストデータのなかから、まだ処理していないインデックスを一つ取得する。データ検索部152は、CPU911を用いて、入力した検索対象リストデータに含まれるすべてのインデックスについて処理が終了し、取得できるインデックスが存在しないと判定した場合、データ検索結果出力工程S677へ進む。
データ検索部152は、CPU911を用いて、検索対象記憶部122が記憶した検索対象データのなかから、取得したインデックスが示す検索対象データを入力する。
【0105】
検索条件判定工程S674において、データ検索部152は、CPU911を用いて、抽出検索対象入力工程S673で入力した検索対象データが、データ検索条件入力工程S671で入力した検索条件データが表わす検索条件を満たしているか否かを判定する。
データ検索部152は、CPU911を用いて、検索対象データが検索条件を充足していると判定した場合、検索結果リスト追加工程S675へ進む。
データ検索部152は、CPU911を用いて、検索対象データが検索条件を充足していないと判定した場合、抽出検索対象繰り返し工程S676へ進む。
【0106】
検索結果リスト追加工程S675において、データ検索部152は、CPU911を用いて、検索結果リスト初期化工程S672で初期化した検索結果リストデータに、抽出検索対象入力工程S673で取得したインデックスを追加する。データ検索部152は、磁気ディスク装置920を用いて、インデックスを追加した検索結果リストデータを記憶する。
【0107】
抽出検索対象繰り返し工程S676において、データ検索部152は、CPU911を用いて、抽出検索対象入力工程S673に戻り、次のインデックスを取得する。
【0108】
データ検索結果出力工程S677において、データ検索部152は、CPU911を用いて、検索結果リスト初期化工程S672で初期化し検索結果リスト追加工程S675でインデックスを追加した検索結果リストデータを出力する。
なお、データ検索部152は、検索結果リストデータを出力する代わりに、検索結果リストデータに含まれるインデックスが示す検索対象データそのものを出力する構成としてもよい。
【0109】
図10に戻り、検索処理の流れの説明を続ける。
【0110】
検索結果出力工程S680において、検索結果出力部153は、CPU911を用いて、データ検索結果出力工程S677でデータ検索部152が出力した検索結果リストデータを入力する。検索結果出力部153は、通信装置915を用いて、入力した検索結果リストデータを、利用者端末装置820に対して送信する。
なお、検索結果出力部153は、検索結果リストデータを送信する代わりに、検索結果リストデータに含まれるインデックスが示す検索対象データそのものを検索対象記憶部122から入力し、入力した検索対象データを送信する構成としてもよい。
【0111】
なお、この例では、利用者が検索条件を指定する前に、あらかじめ、利用者属性判定工程S620〜検索対象抽出工程S650の処理をしておき、検索条件入力工程S660の終了後、すぐにデータ検索工程S670を開始できるよう構成しているが、利用者属性判定工程S620〜検索対象抽出工程S650の処理は、検索条件入力工程S660のあとにしてもよい。また、利用者認証工程S610も含めて、利用者認証工程S610〜検索対象抽出工程S650の処理を、検索条件入力工程S660のあとにしてもよい。
【0112】
次に、具体例を用いて、検索処理の流れを説明する。
【0113】
以下の例において、利用者属性記憶部113は、図5に示した利用者属性データ510を、役割条件記憶部114は、図6に示した役割条件データ520を、役割権限記憶部115は、図7に示した役割権限データ530を、グループ条件記憶部116は、図8に示したグループ条件データ540を、グループ所属記憶部125は、図9に示したグループ所属データ550を、それぞれ記憶しているものとする。
また、利用者端末装置820を操作している利用者は、利用者識別データが「suzuki」である利用者であり、認証に成功したものとする。したがって、利用者識別記憶部134は、利用者識別データとして「suzuki」を記憶している。
【0114】
利用者属性判定部141は、図5に示した利用者属性記憶部113が記憶した利用者属性データ510を参照して、利用者識別データ「suzuki」を含むユーザ情報データを判定し、判定したユーザ情報データに含まれる所属組織データ512「A部A2課」、役職データ513「担当」、社員区分データ514「派遣」、配属区分データ515「本務」、その他属性データ516「プロジェクトA」を取得して、利用者端末装置820を操作している利用者の属性を表わす検索利用者属性データとする。
【0115】
利用者役割判定部142は、図6に示した役割条件記憶部114が記憶した役割条件データ520を参照して、ロール情報データに含まれる属性条件データ523が表わす属性条件が満たされているロール情報データを判定し、判定したロール情報データに含まれる役割識別データ521「ROL001」「ROL004」「ROL007」を取得して、利用者端末装置820を操作している利用者の役割のリストを表わす検索利用者役割データとする。
【0116】
利用者権限判定部143は、図7に示した役割権限記憶部115が記憶した役割権限データ530を参照して、検索利用者役割データに含まれる役割識別データと一致する役割識別データを、アクセス権限情報データが含む権限役割データ532が含むアクセス権限情報データを判定し、判定したアクセス権限情報データに含まれる権限グループデータ533に含まれるグループ識別データ「GRP001」「GRP003」「GRP005」「GRP007」を取得して、利用者端末装置820を操作している利用者にアクセス権限があるグループのリストを表わす検索利用者グループデータとする。
【0117】
検索対象抽出部144は、図8に示したグループ条件記憶部116が記憶したグループ条件データ540を参照して、検索利用者グループデータに含まれるグループ識別データに対応づけられたインデックスファイル551のファイル名「grp001.idx」「grp003.idx」「grp005.idx」「grp007.idx」を取得する。
検索対象抽出部144は、図9に示したグループ所属記憶部125が記憶したグループ所属データ550を参照して、取得したファイル名を有するインデックスファイル551に記録された所属インデックスデータ552を入力し、入力した所属インデックスデータ552のいずれかに含まれるインデックス「//file/position/tantou/file34.doc」「//file/general/file82.pdf」「//file/dept/A/file65.xls」「//file/dept/AorB/file93.dxf」「//file/projectA/file06.xml」「//file/confidential/file18.rtf」を取得して、利用者端末装置820を操作している利用者にアクセス権限がある検索対象データのリストを表わす検索対象リストデータとする。
【0118】
このように、利用者のアクセス権限に基づいて、検索する検索対象データの範囲をあらかじめ限定し、限定された検索対象データのなかから、データ検索部152が、検索条件を満たす検索対象データを検索する。これにより、利用者にアクセス権限があるか否かを検索対象データごとに判定する必要がなく、検索にかかる時間を短くすることができる。
【0119】
人事異動や新規プロジェクトの発足などにより、利用者が有する属性が変化した場合、管理者が管理者端末装置810を操作して、利用者属性データ510の更新を指示する。管理情報更新部112は、管理者の指示に基づいて、利用者属性記憶部113が記憶した利用者属性データ510を更新する。
利用者属性記憶部113が記憶した利用者属性データ510が更新されたことにより、利用者役割判定部142が判定するその利用者の役割が変化し、それに伴って、利用者権限判定部143が判定するその利用者のアクセス権限も変化する。したがって、その利用者が検索できる検索対象データの範囲も変化する。
このように、利用者とその利用者にアクセス権限がある検索対象データとを直接紐付けるのではなく、利用者が有する属性を介して紐付けているので、利用者が有する属性が変化したことにより、利用者のアクセス権限が変化した場合、利用者属性記憶部113が記憶した利用者属性データを更新するだけで、その利用者が検索できる検索対象データの範囲を変えることができる。これにより、管理者の作業負荷を減らすことができるとともに、利用者が本来アクセスできるべきでない検索対象データにアクセスできるように設定してしまうなど、管理者のミスによる事故の発生を防ぐことができる。
【0120】
組織改編などにより、利用者に与えられる役割が変化した場合、管理者が管理者端末装置810を操作して、役割条件データ520の更新を指示する。管理情報更新部112は、管理者の指示に基づいて、役割条件記憶部114が記憶した役割条件データ520を更新する。
役割条件記憶部114が記憶した役割条件データ520が更新されたことにより、利用者役割判定部142が判定する利用者の役割が変化し、それに伴って、利用者権限判定部143が判定する利用者のアクセス権限も変化する。したがって、利用者が検索できる検索対象データの範囲も変化する。
このように、利用者とその利用者にアクセス権限がある検索対象データとを直接紐付けるのではなく、利用者がある役割を有するために有すべき属性についての条件を介して紐付けているので、利用者に与えられる役割が変化した場合、役割条件記憶部114が記憶した役割条件データを更新するだけで、利用者が検索できる検索対象データの範囲を変えることができる。これにより、管理者の作業負荷を減らすことができるとともに、利用者が本来アクセスできるべきでない検索対象データにアクセスできるように設定してしまうなど、管理者のミスによる事故の発生を防ぐことができる。
【0121】
セキュリティポリシーの変更などにより、利用者の役割と、その役割を有する利用者のアクセス権限との関係が変化した場合、管理者が管理者端末装置810を操作して、役割権限データ530の更新を指示する。管理情報更新部112は、管理者の指示に基づいて、役割権限記憶部115が記憶した役割権限データ530を更新する。
役割権限記憶部115が記憶した役割権限データ530が更新されたことにより、利用者権限判定部143が判定する利用者のアクセス権限が変化し、利用者が検索できる検索対象データの範囲が変化する。
このように、利用者とその利用者にアクセス権限がある検索対象データとを直接紐付けるのではなく、ある役割を有する利用者が有するアクセス権限を介して紐付けているので、利用者の役割とアクセス権限との関係が変化した場合、役割権限記憶部115が記憶した役割権限データを更新するだけで、利用者が検索できる検索対象データの範囲を変えることができる。これにより、管理者の作業負荷を減らすことができるとともに、利用者が本来アクセスできるべきでない検索対象データにアクセスできるように設定してしまうなど、管理者のミスによる事故の発生を防ぐことができる。
【0122】
検索対象データの機密レベルの変更などにより、検索対象データに対するアクセス権限が変化した場合、管理者などが管理者端末装置810などを操作して、検索対象データのパスや属性の変更を指示する。検索対象更新部121は、指示に基づいて、検索対象記憶部122が記憶した検索対象データを更新する。
検索対象記憶部122が記憶した検索対象データが更新されたことにより、所属抽出部123が判定するその検索対象データが属するグループが変化し、グループ所属記憶部125が記憶したグループ所属データ550を更新するので、その検索対象データを検索できる利用者の範囲が変化する。
このように、利用者とその利用者にアクセス権限がある検索対象データとを直接紐付けるのではなく、検索対象データのパスや属性に基づいて判定されるグループを介して紐付けているので、検索対象データのパスや属性を更新するだけで、その検索対象データを検索できる利用者の範囲を変えることができる。これにより、管理者の作業負荷を減らすことができるとともに、利用者が本来アクセスできるべきでない検索対象データにアクセスできるように設定してしまうなど、管理者のミスによる事故の発生を防ぐことができる。
【0123】
セキュリティポリシーの変更などにより、検索対象データの分類基準が変化した場合、管理者が管理者端末装置810を操作して、グループ条件データ540の変更を指示する。管理情報更新部112は、管理者の指示に基づいて、グループ条件記憶部116が記憶したグループ条件データ540を更新する。
グループ条件記憶部116が記憶したグループ条件データ540が更新されたことにより、所属抽出部123が判定する検索対象データが属するグループが変化し、グループ所属記憶部125が記憶したグループ所属データ550を更新するので、利用者が検索できる検索対象データの範囲が変化する。
このように、利用者とその利用者にアクセス権限がある検索対象データとを直接紐付けるのではなく、検索対象データがあるグループに属するための条件を介して紐付けているので、検索対象データの分類基準が変化した場合、グループ条件記憶部116が記憶したグループ条件データ540を更新するだけで、利用者が検索できる検索対象データの範囲を変えることができる。これにより、管理者の作業負荷を減らすことができるとともに、利用者が本来アクセスできるべきでない検索対象データにアクセスできるように設定してしまうなど、管理者のミスによる事故の発生を防ぐことができる。
【0124】
この実施の形態における検索装置100は、データを記憶する記憶装置(磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、検索対象記憶部122と、利用者属性判定部141と、利用者役割判定部142と、利用者権限判定部143と、検索対象抽出部144と、検索条件入力部151と、データ検索部152と、検索結果出力部153とを有する。
上記検索対象記憶部122は、上記記憶装置(磁気ディスク装置920)を用いて、検索の対象となる検索対象データを記憶する。
上記検索条件入力部151は、上記処理装置(CPU911)を用いて、利用者が指定した検索条件を入力する。
上記利用者属性判定部141は、上記処理装置(CPU911)を用いて、上記検索条件を指定した利用者が有する属性を判定する。
上記利用者役割判定部142は、上記処理装置(CPU911)を用いて、上記利用者属性判定部141が判定した属性に基づいて、上記検索条件を指定した利用者が有する役割を判定する。
上記利用者権限判定部143は、上記処理装置(CPU911)を用いて、上記利用者役割判定部142が判定した役割に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定する。
上記検索対象抽出部144は、上記処理装置(CPU911)を用いて、上記利用者権限判定部143が判定したアクセス権限に基づいて、上記検索対象記憶部122が記憶した検索対象データのなかから、上記検索条件を指定した利用者にアクセス権限がある検索対象データを抽出する。
上記データ検索部152は、上記処理装置(CPU911)を用いて、上記検索対象抽出部144が抽出した検索対象データのなかから、上記検索条件入力部151が入力した検索条件を満たす検索対象データを検索する。
上記検索結果出力部153は、上記処理装置(CPU911)を用いて、上記データ検索部152が検索した検索結果を出力する。
【0125】
これにより、データ検索部152が検索条件に合う検索対象データを検索する範囲を、検索条件を指定した利用者にアクセス権限がある検索対象データに限定するので、検索にかかる時間を短縮することができる。また、利用者属性判定部141が利用者の属性を判定し、利用者役割判定部142が利用者の属性から役割を判定し、利用者権限判定部143が利用者の役割からアクセス権限を判定するので、様々な要因で利用者にアクセス権限がある検索対象データの範囲が変わった場合に、柔軟に対応することができる。
【0126】
この実施の形態における検索装置100は、更に、役割権限記憶部115を有する。
上記役割権限記憶部115は、上記記憶装置(磁気ディスク装置920)を用いて、利用者が有する役割と、上記役割を有する利用者が有するアクセス権限との組み合わせを表わす役割権限データ530を記憶する。
上記利用者権限判定部143は、上記処理装置(CPU911)を用いて、上記役割権限記憶部115が記憶した役割権限データ530に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定する。
【0127】
これにより、役割権限記憶部115が記憶した役割権限データ530を変更するだけで、利用者が有する役割と、その役割を有する利用者が有するアクセス権限との関係を変えることができ、管理者の作業負荷を軽減し、管理者のミスなどによる情報漏洩を防止することができる。
【0128】
この実施の形態における検索装置100は、更に、グループ所属記憶部125を有する。
上記グループ所属記憶部125は、上記記憶装置(磁気ディスク装置920)を用いて、検索対象データと、上記検索対象データが属するグループとの組み合わせを表わすグループ所属データ550を記憶する。
上記検索対象抽出部144は、上記処理装置(CPU911)を用いて、上記グループ所属記憶部125が記憶したグループ所属データ550に基づいて、上記検索条件を指定した利用者にアクセス権限があるグループに属する検索対象データを抽出する。
【0129】
これにより、あらかじめグループ所属記憶部125が記憶したグループ所属データ550に基づいて、検索対象抽出部144が利用者にアクセス権限がある検索対象データを抽出するので、検索対象データの抽出にかかる時間を短縮することができる。
【0130】
この実施の形態における検索装置100は、更に、グループ条件記憶部116と、所属抽出部123とを有する。
上記グループ条件記憶部116は、上記記憶装置(磁気ディスク装置920)を用いて、検索対象データが属するグループと、上記グループに属する検索対象データが満たす所属条件との組み合わせを表わすグループ条件データ540を記憶する。
上記所属抽出部123は、上記処理装置(CPU911)を用いて、上記グループ条件記憶部116が記憶したグループ条件データに基づいて、上記検索対象記憶部122が記憶した検索対象データのなかから、上記所属条件を満たす検索対象データを抽出し、抽出した検索対象データに基づいて、上記グループ所属データ550を生成する。
上記グループ所属記憶部125は、上記記憶装置(磁気ディスク装置920)を用いて、上記所属抽出部123が生成したグループ所属データ550を記憶する。
【0131】
これにより、グループ条件記憶部116が記憶したグループ条件データ540を変更するだけで、検索対象データのグループ分けを変えることができ、管理者の作業負荷を軽減し、管理者のミスなどによる情報漏洩を防止することができる。
【0132】
この実施の形態における検索装置100は、更に、所属更新部124を有する。
上記所属更新部124は、上記処理装置(CPU911)を用いて、上記検索対象記憶部122が新たな検索対象データを記憶した場合に、上記グループ条件記憶部116が記憶したグループ条件データ540に基づいて、上記検索対象記憶部122が新たに記憶した検索対象データが満たす所属条件を抽出し、抽出した所属条件に基づいて、上記グループ所属記憶部125が記憶したグループ所属データ550を更新する。
【0133】
これにより、検索対象記憶部122が新たな検索対象データを記憶した場合に、グループ所属記憶部125が記憶したグループ所属データ550を、所属更新部124が更新するので、検索対象記憶部122が新たに記憶した検索対象データを、データ検索部152が検索する範囲に含めることができる。
【0134】
この実施の形態における検索装置100において、上記所属更新部124は、上記処理装置(CPU911)を用いて、上記検索対象記憶部122が記憶した検索対象データが更新された場合に、上記グループ条件記憶部116が記憶したグループ条件データ540に基づいて、更新された検索対象データが満たす所属条件を抽出し、抽出した所属条件に基づいて、上記グループ所属記憶部125が記憶したグループ所属データ550を更新する。
【0135】
これにより、検索対象記憶部122が記憶した検索対象データが更新された場合に、グループ所属記憶部125が記憶したグループ所属データ550を、所属更新部124が更新するので、検索対象データが属するグループの変化に対応して、データ検索部152が検索する範囲を変えることができる。
【0136】
この実施の形態における検索装置100は、更に、利用者属性記憶部113を有する。
上記利用者属性記憶部113は、上記記憶装置(CPU911)を用いて、利用者と、上記利用者が有する属性との組み合わせを表わす利用者属性データ510を記憶する。
上記利用者属性判定部141は、上記処理装置(CPU911)を用いて、上記利用者属性記憶部113が記憶した利用者属性データ510に基づいて、上記検索条件を指定した利用者が有する属性を判定する。
【0137】
これにより、利用者属性記憶部113が記憶した利用者属性データ510を変更するだけで、利用者と、その利用者が有する属性との関係を変えることができ、管理者の作業負荷を軽減し、管理者のミスなどによる情報漏洩を防止することができる。
【0138】
この実施の形態における検索装置100は、更に、役割条件記憶部114を有する。
上記役割条件記憶部114は、上記記憶装置(磁気ディスク装置920)を用いて、利用者が有する属性についての属性条件と、上記属性条件を満たす利用者が有する役割との組み合わせを表わす役割条件データ520を記憶する。
上記利用者役割判定部142は、上記処理装置(CPU911)を用いて、上記役割条件記憶部114が記憶した役割条件データ520に基づいて、上記検索条件を指定した利用者が有する役割を判定する。
【0139】
これにより、役割条件記憶部114が記憶した役割条件データ520を変更するだけで、利用者が有する属性と、その利用者が有する役割との関係を変えることができ、管理者の作業負荷を軽減し、管理者のミスなどによる情報漏洩を防止することができる。
【0140】
この実施の形態における検索装置100は、更に、複製記憶部126を有する。
上記複製記憶部126は、上記記憶装置(磁気ディスク装置920)を用いて、上記グループ所属記憶部125が記憶したグループ所属データ550と同一の内容を表わす複製グループ所属データを記憶する。
上記所属更新部124は、上記処理装置(CPU911)を用いて、上記複製記憶部126が記憶した複製グループ所属データに基づいて、上記グループ所属記憶部125が記憶したグループ所属データ550を更新するか否かを判定し、更新すると判定した場合に、上記グループ所属記憶部125が記憶したグループ所属データ550を更新する。
【0141】
この実施の形態における検索装置100によれば、複製記憶部126が記憶した複製グループ所属データに基づいて、グループ所属記憶部125が記憶したグループ所属データ550を更新するか否かを所属更新部124が判定するので、グループ所属記憶部125が記憶したグループ所属データ550に所属更新部124がアクセスする回数を減らすことができる。グループ所属記憶部125が記憶したグループ所属データ550は、検索のために読み出されることが多いので、所属更新部124が更新のためにアクセスする回数を減らすことにより、検索のために読み出そうとしたときにアクセスできずに待たされる可能性が低くなり、検索の速度を向上することができる。
【0142】
なお、検索装置100は、複製グループ所属データを記憶する複製記憶部126を有しなくてもよい。その場合、所属更新部124は、グループ所属記憶部125が記憶したグループ所属データ550を読み出して、グループ所属データ550の更新が必要か否かを判定する。グループ所属データ550を更新する場合は、グループ所属データ550をロックする必要があり、更新が終わるまで検索対象抽出部144などを待たせることになるが、グループ所属データ550を単に読み出す場合は、検索対象抽出部144などを待たせる必要がないので、グループ所属データ550の更新が必要か否かを判定するために、所属更新部124がグループ所属データ550を頻繁に読み出す構成としても、それによる検索速度の低下は少ない。
【0143】
この実施の形態における検索装置100は、検索装置100としてコンピュータを機能させるコンピュータプログラムをコンピュータが実行することにより、実現することができる。
【0144】
この実施の形態における検索装置100としてコンピュータを機能させるコンピュータプログラムによれば、データ検索部152が検索条件に合う検索対象データを検索する範囲を、検索条件を指定した利用者にアクセス権限がある検索対象データに限定するので、検索にかかる時間を短縮することができるとともに、利用者属性判定部141が利用者の属性を判定し、利用者役割判定部142が利用者の属性から役割を判定し、利用者権限判定部143が利用者の役割からアクセス権限を判定するので、様々な要因で利用者にアクセス権限がある検索対象データの範囲が変わった場合に、柔軟に対応することができる検索装置100を、実現することができる。
【0145】
この実施の形態における検索装置100が、上記記憶装置(磁気ディスク装置920)が記憶した検索対象データを検索する検索方法は、以下の工程を有する。
上記処理装置(CPU911)が、利用者が指定した検索条件を入力する。
上記処理装置(CPU911)が、上記検索条件を指定した利用者が有する属性を判定する。
上記処理装置(CPU911)が、判定した属性に基づいて、上記検索条件を指定した利用者が有する役割を判定する。
上記処理装置(CPU911)が、判定した役割に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定する。
上記処理装置(CPU911)が、判定したアクセス権限に基づいて、上記検索対象データのなかから、上記検索条件を指定した利用者にアクセス権限がある検索対象データを抽出する。
上記処理装置(CPU911)が、抽出した検索対象データのなかから、入力した検索条件を満たす検索対象データを検索する。
上記処理装置(CPU911)が、検索した検索結果を出力する。
【0146】
これにより、検索条件に合う検索対象データを検索する範囲を、検索条件を指定した利用者にアクセス権限がある検索対象データに限定するので、検索にかかる時間を短縮することができる。また、利用者の属性を判定し、利用者の属性から役割を判定し、利用者の役割からアクセス権限を判定するので、様々な要因で利用者にアクセス権限がある検索対象データの範囲が変わった場合に、柔軟に対応することができる。
【0147】
以上説明した検索装置100(文書検索システム)は、以下の機能ブロックを備えることにより、利用者がアクセス権限を持つ電子文書ファイル(検索対象データ)に対するキーワード検索を行う。
・電子文書ファイル(検索対象データ)を格納する文書ファイル格納部(検索対象記憶部122)。
・ユーザ(利用者)の属性の内容を示す情報であるユーザ情報(利用者属性データ510)を保持するユーザ情報格納部(利用者属性記憶部113)。
・特定の条件によってグループ化したファイル群毎に作成したインデックスファイル(グループ所属データ550)を格納するインデックス情報格納部(グループ所属記憶部125)。
・利用者のグループを示すロール情報(役割条件データ520)を格納したアクセス制御情報格納部(役割条件記憶部114)。
・ユーザ情報格納部(利用者属性記憶部113)からユーザ情報(その利用者が有する属性)を取得するユーザ情報取得部(利用者属性判定部141)。
・ロール情報格納部(役割条件記憶部114)からロール情報(役割条件データ520)を取得するロール情報取得部(利用者役割判定部142)。
・ユーザ情報(利用者が有する属性)とロール情報(役割条件データ520)を用いて、その利用者が該当するロール情報(その利用者が有する役割)を判定するアクセス権限判定部(利用者役割判定部142)。
・アクセス権限判定部(利用者役割判定部142)の判定結果に該当するロール情報(その利用者が有する役割)に紐付けられているインデックスファイル(その利用者にアクセス権限がある検索対象データのリスト)を、インデックス情報格納部(グループ所属記憶部125)から取得するインデックス情報取得部(検索対象抽出部144)。
・インデックスファイル(その利用者にアクセス権限がある検索対象データのリスト)を用いて、利用者が指定したキーワード(検索条件)に該当する電子文書ファイル(検索対象データ)を検索し、結果を利用者へ提供する検索部(データ検索部152)。
【0148】
以上説明した検索装置100(文書検索システム)は、更に、以下の機能ブロックを備える。
・文書ファイル格納部(検索対象記憶部122)に格納された電子文書ファイルをグループ分けする条件(所属条件)を示すグループ情報(グループ条件データ540)を格納するグループ情報格納部(グループ条件記憶部116)。
・ロール情報(利用者が有する役割)と、それを適用するグループ情報(その役割を有する利用者にアクセス権限があるグループ)を紐付け情報であるアクセス制御情報(役割権限データ530)を格納するアクセス制御情報格納部(役割権限記憶部115)。
・ロール情報(その利用者が有する役割)に適用されているアクセス制御情報(その利用者にアクセス権限があるグループのリスト)を取得するアクセス制御情報取得部(利用者権限判定部143)。
・アクセス制御情報(その利用者にアクセス権限があるグループのリスト)に紐付けられているグループ情報(そのグループに属する検索対象データのリスト)を取得するグループ情報取得部(検索対象抽出部144)。
・グループ情報の内容(そのグループに属する検索対象データのリスト)に従い、グループ情報によってグループ化された文書ファイル(検索対象データ)群に該当するインデックス情報(その利用者にアクセス権限がある検索対象データのリスト)を取得するインデックス情報取得部(検索対象抽出部144)。
【0149】
以上説明した検索装置100(文書検索システム)は、更に、以下の機能ブロックを備える。
・グループ情報(グループ条件データ540)の内容に従い、文書ファイル(検索対象データ)の属性情報に従ってグループを構成する文書ファイルを変更し、インデックス情報(グループ所属データ550)を再生成するインデックス情報管理部(所属抽出部123)。
【0150】
文書検索システム(検索装置100)は、電子文書ファイル(検索対象データ)のキーワード検索を行う。
ユーザ情報格納部(利用者属性記憶部113)は、利用者全員の属性情報であるユーザ情報(利用者属性データ510)を格納する。
ロール情報格納部(役割条件記憶部114)は、利用者を、ユーザ情報の内容(その利用者が有する属性)によってグループ分けするための条件(属性条件)を定義したロール情報(役割条件データ520)を格納する。
アクセス制御情報格納部(役割権限記憶部115)は、ロール情報(利用者が有する役割)とグループ情報(その役割を有する利用者にアクセス権限があるグループ)を紐付ける条件を定義したアクセス制御情報(役割権限データ530)を格納する。
グループ情報格納部(グループ条件記憶部116)は、文書ファイル(検索対象データ)のグループ分けするための条件(所属条件)を定義したグループ情報(グループ条件データ540)を格納する。
文書ファイル格納部(検索対象記憶部122)は、文書検索の対象となる文書ファイル(検索対象データ)を格納する。
インデックス情報格納部(グループ所属記憶部125)は、文書ファイル格納部(検索対象記憶部122)に格納されている、グループ情報の内容(所属条件)に従ってグループ分けされた文書ファイル群毎に作成したインデックスファイル(グループ所属データ550)を格納する。
ユーザ情報取得部(利用者属性判定部141)は、ユーザ情報格納部(利用者属性記憶部113)から、指定されたユーザ(利用者)のユーザ情報(その利用者が有する属性)を取得してアクセス権限判定部(利用者役割判定部142)へ提供する。
ロール情報取得部(利用者役割判定部142)は、ロール情報格納部(役割条件記憶部114)に格納されているロール情報(属性条件)を取得し、アクセス権限判定部(利用者役割判定部142)へ提供する。
アクセス権限判定部(利用者役割判定部142)は、ユーザ情報取得部(利用者属性判定部141)から取得したユーザ情報(その利用者が有する属性)と、ロール情報取得部(利用者役割判定部142)から取得したロール情報(属性条件)を用いて、検索部から指定されたユーザ(利用者)が属するロール情報(その利用者が有する役割)を割り出す。
アクセス制御情報取得部(利用者権限判定部143)は、アクセス権限判定部(利用者役割判定部142)から指定されるロール情報(その利用者が有する役割)に紐付けられているアクセス制御情報(その利用者にアクセス権限があるグループのリスト)を、アクセス制御情報格納部(役割権限記憶部115)から取得する。
グループ情報取得部(検索対象抽出部144)は、アクセス制御情報取得部(利用者権限判定部143)から指定されるアクセス制御情報(その利用者にアクセス権限があるグループのリスト)に紐付けられているグループ情報(グループインデックスデータ544)を、グループ情報格納部(グループ条件記憶部116)から取得する。
インデックス情報取得部(検索対象抽出部144)は、グループ情報取得部(検索対象抽出部144)から指定されるグループ情報(グループインデックスデータ544)に紐付けられているインデックスファイル(その利用者にアクセス権限があるグループに属する検索対象データのリスト)を、インデックス情報格納部(グループ所属記憶部125)から取得する。
検索部(データ検索部152)は、キーワード入力部(検索条件入力部151)からのキーワード(検索条件)入力に応じて、アクセス権限判定部(利用者役割判定部142)を呼び出してインデックス情報取得部(検索対象抽出部144)からインデックスファイルを取得し、そのインデックスファイルを用いてキーワード検索を行った結果をキーワード入力部(検索結果出力部153)へ提供する。
キーワード入力部(検索条件入力部151)は、利用者がキーワード(検索条件)入力を行い、その内容を検索部(データ検索部152)へ提供する。
【0151】
ユーザ情報(利用者属性データ510)は、ユーザ(利用者)に属する情報であり、ユーザを一意に識別する識別情報(利用者識別データ511)と、そのユーザが持つ複数の属性情報で構成される。例えば、識別情報(利用者識別データ511)にはユーザIDを、属性情報には、所属組織の名称である所属組織(所属組織データ512)、所属組織での役職の名称である役職(役職データ513)、社員かどうかを示す社員区分(社員区分データ514)、その配属が本務か兼務かを示す配属区分(配属区分データ515)、その他の属性情報を示すその他(その他属性データ516)の5つの情報を使用する。また、例えば、ユーザの所属毎にユーザ情報を設け、複数の所属を持つユーザは、1つのユーザIDに対して複数の属性情報を持つ場合があってもよい。
【0152】
ロール情報(役割条件データ520)は、ユーザ(利用者)をグループ化する情報であり、ロール情報を一意に識別する識別情報(役割識別データ521)、そのロール(役割)でグループ化されるユーザの条件(属性条件データ523)、その他の情報で構成される。例えば、識別情報(役割識別データ521)にはロールIDを、ユーザの条件(属性条件データ523)には、グループ化に使用する、ユーザが持つべき属性値を条件式で定義した条件(属性条件)を、その他の情報にはロールの名称(役割名称データ522)を使用する。
【0153】
アクセス制御情報(役割権限データ530)は、ロール情報に該当するユーザ(役割を有する利用者)がアクセス可能な電子文書ファイル(検索対象データ)のグループ情報(その役割を有する利用者にアクセス権限があるグループ)を定義する情報であり、アクセス制御情報を一意に識別可能な情報(権限識別データ531)と、該当するロール情報(役割)を一意に識別可能な情報(権限役割データ532)と、該当するグループ情報を一意に識別可能な情報(権限グループデータ533)で構成される。例えば、アクセス制御情報を一意に識別可能な情報(権限識別データ531)にはアクセス制御IDを、ロール情報を一意に識別可能な情報(権限役割データ532)にはロールID(役割識別データ)を、グループ情報を一意に識別可能な情報(権限グループデータ533)にはグループID(グループ識別データ)を使用する。
【0154】
グループ情報(グループ条件データ540)は、文書ファイル(検索対象データ)のグループ化を行うための情報であり、グループ情報を一意に識別可能な情報(グループ識別データ541)と、グループ化する電子文書ファイルの条件(所属条件)を示す情報(所属条件データ543)と、グループ情報に対応するインデックスファイルを一意に識別可能な情報(グループインデックスデータ544)と、その他の情報で構成される。例えば、グループ情報を一意に識別可能な情報(グループ識別データ541)には、グループIDを、電子文書ファイルの条件を示す情報(所属条件データ543)には、電子文書ファイルのパスや属性情報を用いた条件式を示す条件(所属条件)を、インデックスファイルを一意に識別可能な情報(グループインデックスデータ544)にはインデックスIDを、その他の情報にはグループ情報の名称(グループ名称データ542)を使用する。
【0155】
まず、利用者がキーワード入力部(検索条件入力部151)でキーワード(検索条件)を入力すると、検索部(データ検索部152)へキーワード文字列(検索条件)が提供される。検索部(データ検索部152)は、キーワード文字列(検索条件)を受け取ると、アクセス権限判定部(利用者役割判定部142)を呼び出す。
【0156】
アクセス権限判定部(利用者役割判定部142)は、ユーザ情報取得部(利用者属性判定部141)を通じて、ユーザ情報格納部(利用者属性記憶部113)に格納されている利用者のユーザIDを持つユーザ情報(その利用者が有する属性)を取得する。次に、アクセス権限判定部(利用者役割判定部142)は、ロール情報取得部(利用者役割判定部142)は、ロール情報格納部(役割条件記憶部114)に格納されているロール情報データ(役割条件データ520)を全て取得する。
そして、アクセス権限判定部(利用者役割判定部142)は、利用者のユーザ情報の内容(利用者が有する属性)とロール情報データの条件の値(属性条件)を比較し、ユーザ情報が条件を満たすかどうか判定する。
判定の結果、条件を満たす場合には、アクセス権限判定部(利用者役割判定部142)は、そのロール情報データのロールID(役割識別データ521)を、該当ロール情報リスト(検索利用者役割データ)に格納する。
この処理を、全てのロール情報データに対して実施し、その結果作成された該当ロール情報リストに格納されているロールIDを、アクセス権限判定部(利用者役割判定部142)は、アクセス制御情報取得部(利用者権限判定部143)へ提供する。
なお、ロール情報(利用者が有する役割)の判定処理は、検索部(データ検索部152)からの呼び出し毎に行う必要はなく、アクセス権限判定部(利用者役割判定部142)は、利用者がシステムへログインした際に実施して処理結果の該当ロール情報リスト(検索利用者役割データ)を保持しておき、検索部(データ検索部152)からの呼び出し時に、保存しておいた該当ロール情報リスト(検索利用者役割データ)のロール情報を、アクセス制御情報取得部(利用者権限判定部143)へ提供してもよい。
【0157】
アクセス制御情報取得部(利用者権限判定部143)は、まず、アクセス権限判定部から提供されたロールID(検索利用者役割データ)を取得する。次に、アクセス制御情報取得部(利用者権限判定部143)は、アクセス制御情報格納部(役割権限記憶部115)から、そこに登録されている全てのアクセス制御情報データ(役割権限データ530)を取得する。
続いて、アクセス制御情報取得部(利用者権限判定部143)は、全てのアクセス制御情報データに対して、アクセス権限判定部(利用者役割判定部142)から提供されたロールID(検索利用者役割データ)のいずれかを持っているかをチェックし、持っている場合には、そのアクセス制御情報データの権限グループデータ533を該当アクセス制御情報リスト(検索利用者グループデータ)に追加する。
全てのアクセス制御情報データに対してチェックを行った後、アクセス制御情報取得部(利用者権限判定部143)は、該当アクセス制御情報リスト(検索利用者グループデータ)に格納されているアクセス制御情報を、グループ情報取得部(検索対象抽出部144)へ提供する。
【0158】
グループ情報取得部(検索対象抽出部144)は、まず、アクセス制御情報取得部(利用者権限判定部143)から提供されたアクセス制御情報(検索利用者グループデータ)を取得する。次に、グループ情報取得部(検索対象抽出部144)は、取得した全てのアクセス制御情報からグループIDを取得し、グループIDの重複部分を削除する。続いて、グループ情報取得部(検索対象抽出部144)は、そのグループID(複数)をキーにグループ情報格納部(グループ条件記憶部116)に対して検索を行い、いずれかのグループIDを持つグループ情報(グループ条件データ540)を全て取得し、取得した全てのグループ情報のインデックスIDをインデックス情報取得部(検索対象抽出部144)へ提供する。
【0159】
インデックス情報取得部(検索対象抽出部144)は、グループ情報取得部(検索対象抽出部144)から取得したインデックスIDに対応するインデックスファイル551をインデックス情報格納部(グループ所属記憶部125)から取得し、検索部(データ検索部152)へ提供する。インデックスIDが複数ある場合には、インデックス情報取得部(検索対象抽出部144)は、対応する全てのインデックスファイル551を提供する。
【0160】
検索部(データ検索部152)は、インデックス情報取得部(検索対象抽出部144)から提供されたインデックスファイル551(複数)を用いて、キーワード入力部(検索条件入力部151)から入力されたキーワード(検索条件)に該当する文書ファイル(検索対象データ)を検索し、その結果をキーワード入力部(検索結果出力部153)へ提供する。
【0161】
このようにして、利用者のユーザIDを用いてアクセス制御を行い、利用者がアクセス可能なインデックスファイルのみを抽出し、それを用いてキーワード検索を行う。これにより、利用者がアクセス可能な文書ファイル(検索対象データ)に絞り込んだキーワード検索が可能となる。
【0162】
以上のように、利用者の権限でアクセス可能なインデックスファイルを取得し、それを用いてキーワード検索を行うことにより、利用者のアクセス可能な文書ファイル(検索対象データ)に絞り込んだ文書検索が可能となる。
【0163】
利用者のグループ定義であるロール情報(利用者が有する役割)を用いることにより、人事異動等の利用者の権限が変化した場合に、インデックスファイルの修正を不要とすることが可能である。
すなわち、インデックスファイルへの利用者の紐付けを、利用者のグループ定義情報であるロール情報(利用者が有する役割)を用いて行っている。ロール情報には、ユーザIDだけでなく、利用者の所属組織、役職等の属性情報を組み合わせて条件(属性条件)として定義することが可能である。属性情報を使用すると、利用者の属性情報が変更された場合、自動的に新しい属性情報に該当するロール情報が適用される。そのため、インデックス情報、グループ情報、アクセス制御情報、ロール情報を変更することなく、利用者の新しい権限に合わせた文書ファイル(検索対象データ)の絞込み検索が可能となる。
【0164】
グループ情報管理部(所属抽出部123・所属更新部124)は、検索に使用するインデックスファイル551の管理を行う。
グループ情報管理部(所属更新部124)は、グループ情報の条件に該当する文書ファイル群の内容に変更があった場合に所属インデックスデータ552を再生成してインデックス情報格納部(グループ所属記憶部125)内のインデックスファイル551を更新する。
【0165】
グループ情報管理部(所属抽出部123)は、グループ情報格納部(グループ条件記憶部116)に格納されている全てのグループ情報(グループ条件データ540)を取得する。次に、グループ情報管理部(所属更新部124)は、それらのインデックスIDに紐付けられているインデックスファイル551をインデックス情報格納部(グループ所属記憶部125)から取得する。同様に、グループ情報管理部(所属抽出部123)は、グループ情報の条件(所属条件)に該当する文書ファイル(検索対象データ)を、文書ファイル格納部(検索対象記憶部122)から取得する。その後、グループ情報管理部(所属更新部124)は、インデックスファイルデータの該当ファイルと、条件に該当する文書ファイルが一致するかどうかチェックを行い、異なる場合には、所属インデックスデータ552を再生成し、インデックス情報格納部(グループ所属記憶部125)のインデックスファイル551を更新する。
【0166】
グループ情報管理部(所属抽出部123)は、定期的にグループ情報の条件(所属条件)に該当する文書ファイル(検索対象データ)を文書ファイル格納部(検索対象記憶部122)から検索し、現在のインデックス情報の対象の文書ファイルと一致するかチェックすることにより、文書ファイルの内容や属性の変更があった場合に、即座にインデックスファイル(グループ所属データ550)を更新することで、その変更内容を文書ファイル検索へ反映する処理を行う。
これを定期的に行うことにより、文書ファイルの内容の変更を、キーワード検索に自動的に反映することが可能となる。
【0167】
これにより、キーワード検索を行う際に、アクセスした日時によって、文書ファイルの内容に応じてインデックスファイルが更新されているため、アクセスした時点で最適な文書ファイルのみを検索対象とすることが可能となる。
【0168】
以上のように、利用者のユーザ情報の内容だけでなく、アクセスした時点での文書ファイルの内容に応じて、検索対象の絞込みを行うことが可能となる。
【0169】
実施の形態2.
実施の形態2について、図15〜図16を用いて説明する。
なお、実施の形態1で説明した検索システム800、検索装置100と共通する部分については、同一の符号を付し、説明を省略する。
【0170】
図15は、この実施の形態における役割権限記憶部115が記憶する役割権限データ530の一例を示す図である。
【0171】
この実施の形態における役割権限記憶部115が記憶する役割権限データは、利用者が有する役割と、その役割を有する利用者が有するアクセス権限と、そのアクセス権限が有効となる条件(以下「有効条件」と呼ぶ。)との組み合わせを表わすデータである。
役割権限データ530は、権限識別データ531、権限役割データ532、権限グループデータ533、有効条件データ534を一組とし、1つ以上の組からなるデータである。
【0172】
有効条件データ534は、そのアクセス権限が有効となる有効条件を表わす文字列データである。
【0173】
この例における役割権限データ530において、例えば、権限識別データ531が「ACL001」であるアクセス権限は、有効条件データ534が空欄なので、常に有効であることを表わしている。
また、権限識別データ531が「ACL002」であるアクセス権限は、平日の8時から17時までの間のみ有効であることを表わしている。
権限識別データ531が「ACL003」であるアクセス権限と、権限識別データ531が「ACL013」であるアクセス権限とは、対になっていて、権限識別データ531が「ACL003」であるアクセス権限は、3月10日まで有効であり、権限識別データ531が「ACL013」であるアクセス権限は、3月11から有効であることを表わしている。
【0174】
利用者権限判定部143は、CPU911を用いて、利用者役割判定部142が出力した検索利用者役割データを入力する。利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データに基づいて、入力した検索利用者役割データが表わす役割を有する利用者が有するアクセス権限を判定し、更に、そのアクセス権限が有効となる有効条件が満たされているか否かを判定して、その利用者がアクセスしてもよいグループを判定する。利用者権限判定部143は、CPU911を用いて、判定したグループを表わす検索利用者グループデータを出力する。
【0175】
図16は、この実施の形態における利用者権限判定部143が利用者のアクセス権限を判定する利用者権限判定工程S640の流れの一例を示すフローチャート図である。
利用者権限判定工程S640は、実施の形態1で説明した工程に加えて、権限有効判定工程S644bを有する。
【0176】
役割権限入力工程S643において、利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データ530のなかから、まだ処理していない一組の権限識別データ531、権限役割データ532、権限グループデータ533、有効条件データ534を入力する。利用者権限判定部143は、CPU911を用いて、役割権限記憶部115が記憶した役割権限データ530に含まれるすべてのデータの組について処理が終了し、入力できるデータの組が存在しないと判定した場合、利用者権限出力工程S647へ進む。
【0177】
アクセス権限判定工程S644において、利用者権限判定部143は、CPU911を用いて、検索利用者役割データと権限役割データ532とに共通して含まれる役割識別データがあると判定した場合、すなわち、その利用者にそのアクセス権限がある場合、権限有効判定工程S644bへ進む。
【0178】
権限有効判定工程S644bにおいて、利用者権限判定部143は、CPU911を用いて、役割権限入力工程S643で入力した有効条件データが表わす有効条件が満たされているか否かを判定する。有効条件が満たされていれば、そのアクセス権限が有効であることになる。
利用者権限判定部143は、CPU911を用いて、有効条件が充足されていると判定した場合、すなわち、そのアクセス権限が有効な場合、グループリスト追加工程S645へ進む。
利用者権限判定部143は、CPU911を用いて、有効条件が充足されていないと判定した場合、すなわち、そのアクセス権限が無効な場合、役割権限繰り返し工程S646へ進む。
【0179】
このように、利用者権限判定部143は、権限有効判定工程S644bでアクセス権限の有効性を判定することにより、その利用者が有するアクセス権限のうち、有効なアクセス権限だけを判定することができる。
【0180】
次に、具体例を用いて、検索処理の流れを説明する。
【0181】
以下の例において、役割権限記憶部115は、図15に示した役割権限データ530を記憶しているものとする。
【0182】
平日の午後3時に、役割識別データ521が「ROL002」である役割を有する利用者が、検索対象データを検索しようとしているとする。利用者権限判定部143は、権限識別データ531が「ACL002」であるアクセス権限の権限役割データ532に「ROL002」が含まれ、有効条件データ534が表わす有効条件が満たされていると判定し、検索利用者グループデータに「GRP002」を追加する。したがって、その利用者は、グループ識別データ541が「GRP002」であるグループに属する検索対象データを検索できる。
【0183】
同じ利用者が、土曜日の午前10時に、検索対象データを検索しようとしているとする。利用者権限判定部143は、権限識別データ531が「ACL002」であるアクセス権限の権限役割データ532に「ROL002」が含まれるが、有効条件データ534が表わす有効条件が満たされていないと判定するので、検索利用者グループデータに「GRP002」を追加しない。したがって、その利用者は、グループ識別データ541が「GRP002」であるグループに属する検索対象データを検索できない。
【0184】
このように、曜日や時間帯に基づいて、アクセス権限を制限することができるので、勤務時間帯であることなどを条件として、利用者が検索できる検索対象データの範囲を変化させることができる。
【0185】
また、3月5日に、役割識別データ521が「ROL004」である役割を有する利用者が、検索対象データを検索しようとしているとする。利用者権限判定部143は、権限識別データ531が「ACL003」であるアクセス権限の権限役割データ532に「ROL004」が含まれ、有効条件データ534が表わす有効条件が満たされていると判定し、検索利用者グループデータに「GRP003」「GRP005」を追加する。したがって、その利用者は、グループ識別データ541が「GRP003」「GRP005」のいずれかであるグループに属する検索対象データを検索できる。
【0186】
同じ利用者が、3月13日に、検索対象データを検索しようとしているとする。利用者権限判定部143は、権限識別データ531が「ACL013」であるアクセス権限の権限役割データ532に「ROL004」が含まれ、有効条件データ534が表わす有効条件が満たされていると判定し、検索利用者グループデータに「GRP003」を追加する。したがって、その利用者は、グループ識別データ541が「GRP003」であるグループに属する検索対象データを引き続き検索できるが、グループ識別データ541が「GRP005」であるグループに属する検索対象データは検索できなくなる。
【0187】
このように、ある日を境にして、アクセス権限が変更になる場合、管理者が前もって日付を条件にした有効条件を設定した役割権限データ530を役割権限記憶部115が記憶しておけば、アクセス権限が変更になる前日や当日には、何の作業もする必要なく、自動的にアクセス権限を変更できる。したがって、管理者の作業負荷を軽減することができ、管理者のミスなどによる情報漏洩を防止することができる。
【0188】
なお、この例では、アクセス権限の有効条件として、日付や時刻に関する条件を取り上げたが、有効条件は、日付や時刻に関する条件に限らず、他の様々な条件を有効条件としてよい。
【0189】
この実施の形態における検索装置100において、上記役割権限記憶部115は、上記記憶装置(磁気ディスク装置920)を用いて、利用者が有する役割と、上記役割を有する利用者が有するアクセス権限と、上記アクセス権限が有効となる有効条件との組み合わせを表わす役割権限データ530を記憶する。
上記利用者権限判定部143は、上記処理装置(CPU911)を用いて、上記役割権限記憶部115が記憶した役割権限データに基づいて、上記検索条件を指定した利用者が有する有効なアクセス権限を判定する。
【0190】
これにより、様々な条件に基づいて利用者のアクセス権限を変化させることができるので、管理者の作業負荷を軽減することができ、管理者のミスなどによる情報漏洩を防止することができる。
【0191】
以上説明した検索装置100(文書検索システム)は、更に、以下の機能ブロックを備える。
・アクセス制御情報(役割権限データ530)の内容に従い、日時によってロール情報とグループ情報の紐付けを変化させるアクセス制御情報取得部。
【0192】
アクセス制御情報格納部(役割権限記憶部115)は、ロール情報(利用者が有する役割)とグループ情報(その役割を有する利用者にアクセス権限があるグループ)を紐付ける条件と、この情報が有効となる条件(有効条件)を定義したアクセス制御情報(役割権限データ530)を格納する。
アクセス制御情報取得部(利用者権限判定部143)は、アクセス権限判定部(利用者役割判定部142)から指定されるロール情報(その利用者が有する役割)に紐付けられているアクセス制御情報のうち、アクセス制御情報で定義されている有効となる条件(有効条件)を満たしているもののみを取得し、グループ情報取得部(検索対象抽出部144)へ提供する。
【0193】
アクセス制御情報(役割権限データ530)には、実施の形態1のアクセス制御情報(役割権限データ530)の情報に加え、そのアクセス制御情報が有効となる条件(有効条件データ534)で構成される。例えば、有効となる条件として日時を使用し、条件が設定されている場合には、その条件に該当する日時の場合にのみ、そのアクセス制御情報が有効となる。
【0194】
アクセス制御情報取得部(利用者権限判定部143)は、まず、アクセス権限判定部(利用者役割判定部142)から提供されたロールID(検索利用者役割データ)を取得する。
次に、アクセス制御情報取得部(利用者権限判定部143)は、アクセス制御情報格納部(役割権限記憶部115)から、そこに登録されている全てのアクセス制御情報データ(役割権限データ530)を取得する。
続いて、アクセス制御情報取得部(利用者権限判定部143)は、全てのアクセス制御情報データに対して、アクセス権限判定部(利用者役割判定部142)から提供されたロールIDのいずれかを持っているかをチェックし、持っている場合にはアクセス制御情報の有効となる条件をチェックする。チェックの結果、条件を満足する場合には、アクセス制御情報取得部(利用者権限判定部143)は、有効アクセス制御情報リスト(検索利用者グループデータ)にアクセス制御情報(権限グループデータ)を追加する。すべてのアクセス制御情報に対してチェックを行った後、アクセス制御情報取得部(利用者権限判定部143)は、有効アクセス制御情報リスト(検索利用者グループデータ)に格納されているアクセス制御情報を、グループ情報取得部(検索対象抽出部144)へ提供する。
【0195】
アクセス制御情報は、有効となる条件を満たした場合にのみ有効となるため、そのアクセス制御情報を使用可能な期間を限定することが可能である。
これにより、例えば勤務時間のみ検索可能といった制限を文書ファイル(検索対象データ)に対して適用することが可能である。
また、事前に後日有効となるアクセス制御情報を登録することが可能となるため、当日にアクセス制御情報の追加や変更が不要となり、管理負荷の軽減を図ることが可能である。
これにより、当日の作業を削減することが可能である。
同様に、有効となる条件に、有効期限の終端を設定しておくことにより、当日になれば自動的にアクセス制御情報が無効となるため、当日にアクセス制御情報の削除や変更が不要となり、管理負荷軽減を図ることが可能である。
なお、有効となる条件は日時のみではなく、実施場所等、他の情報を使用してもよい。
【0196】
以上のように、利用者のユーザ情報の内容だけでなく、利用者がキーワード検索を実施した時刻等の条件に応じて、検索対象の絞込みを行うことが可能となる。また、アクセス制御情報の管理者も、事前の情報登録と事後の情報変更・削除が可能となり、管理負荷の低減を図ることが可能である。
【図面の簡単な説明】
【0197】
【図1】実施の形態1における検索システム800の全体構成の一例を示すシステム構成図。
【図2】実施の形態1における検索装置100、管理者端末装置810、利用者端末装置820の外観の一例を示す図。
【図3】実施の形態1における検索装置100、管理者端末装置810、利用者端末装置820のハードウェア資源の一例を示す図。
【図4】実施の形態1における検索装置100の機能ブロックの構成の一例を示すブロック構成図。
【図5】実施の形態1における利用者属性記憶部113が記憶する利用者属性データ510の一例を示す図。
【図6】実施の形態1における役割条件記憶部114が記憶する役割条件データ520の一例を示す図。
【図7】実施の形態1における役割権限記憶部115が記憶する役割権限データ530の一例を示す図。
【図8】実施の形態1におけるグループ条件記憶部116が記憶するグループ条件データ540の一例を示す図。
【図9】実施の形態1におけるグループ所属記憶部125が記憶するグループ所属データ550の一例を示す図。
【図10】実施の形態1における検索装置100が検索対象データを検索する検索処理の流れの一例を示すフローチャート図。
【図11】実施の形態1における利用者役割判定部142が利用者の役割を判定する利用者役割判定工程S630の流れの一例を示すフローチャート図。
【図12】実施の形態1における利用者権限判定部143が利用者のアクセス権限を判定する利用者権限判定工程S640の流れの一例を示すフローチャート図。
【図13】実施の形態1における検索対象抽出部144が検索対象データを抽出する検索対象抽出工程S650の流れの一例を示すフローチャート図。
【図14】実施の形態1におけるデータ検索部152が検索対象データを検索するデータ検索工程S670の流れの一例を示すフローチャート図。
【図15】実施の形態2における役割権限記憶部115が記憶する役割権限データ530の一例を示す図。
【図16】実施の形態2における利用者権限判定部143が利用者のアクセス権限を判定する利用者権限判定工程S640の流れの一例を示すフローチャート図。
【符号の説明】
【0198】
100 検索装置、111 管理情報入力部、112 管理情報更新部、113 利用者属性記憶部、114 役割条件記憶部、115 役割権限記憶部、116 グループ条件記憶部、121 検索対象更新部、122 検索対象記憶部、123 所属抽出部、124 所属更新部、125 グループ所属記憶部、126 複製記憶部、131 認証記憶部、132 認証入力部、133 認証判定部、134 利用者識別記憶部、141 利用者属性判定部、142 利用者役割判定部、143 利用者権限判定部、144 検索対象抽出部、151 検索条件入力部、152 データ検索部、153 検索結果出力部、510 利用者属性データ、511 利用者識別データ、512 所属組織データ、513 役職データ、514 社員区分データ、515 配属区分データ、516 その他属性データ、520 役割条件データ、521 役割識別データ、522 役割名称データ、523 属性条件データ、530 役割権限データ、531 権限識別データ、532 権限役割データ、533 権限グループデータ、534 有効条件データ、540 グループ条件データ、541 グループ識別データ、542 グループ名称データ、543 所属条件データ、544 グループインデックスデータ、550 グループ所属データ、551 インデックスファイル、552 所属インデックスデータ、800 検索システム、810 管理者端末装置、820 利用者端末装置、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信装置、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 LAN。

【特許請求の範囲】
【請求項1】
データを記憶する記憶装置と、データを処理する処理装置と、検索対象記憶部と、利用者属性判定部と、利用者役割判定部と、利用者権限判定部と、検索対象抽出部と、検索条件入力部と、データ検索部と、検索結果出力部とを有し、
上記検索対象記憶部は、上記記憶装置を用いて、検索の対象となる検索対象データを記憶し、
上記検索条件入力部は、上記処理装置を用いて、利用者が指定した検索条件を入力し、
上記利用者属性判定部は、上記処理装置を用いて、上記検索条件を指定した利用者が有する属性を判定し、
上記利用者役割判定部は、上記処理装置を用いて、上記利用者属性判定部が判定した属性に基づいて、上記検索条件を指定した利用者が有する役割を判定し、
上記利用者権限判定部は、上記処理装置を用いて、上記利用者役割判定部が判定した役割に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定し、
上記検索対象抽出部は、上記処理装置を用いて、上記利用者権限判定部が判定したアクセス権限に基づいて、上記検索対象記憶部が記憶した検索対象データのなかから、上記検索条件を指定した利用者にアクセス権限がある検索対象データを抽出し、
上記データ検索部は、上記処理装置を用いて、上記検索対象抽出部が抽出した検索対象データのなかから、上記検索条件入力部が入力した検索条件を満たす検索対象データを検索し、
上記検索結果出力部は、上記処理装置を用いて、上記データ検索部が検索した検索結果を出力することを特徴とする検索装置。
【請求項2】
上記検索装置は、更に、役割権限記憶部を有し、
上記役割権限記憶部は、上記記憶装置を用いて、利用者が有する役割と、上記役割を有する利用者が有するアクセス権限との組み合わせを表わす役割権限データを記憶し、
上記利用者権限判定部は、上記処理装置を用いて、上記役割権限記憶部が記憶した役割権限データに基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定することを特徴とする請求項1に記載の検索装置。
【請求項3】
上記役割権限記憶部は、上記記憶装置を用いて、利用者が有する役割と、上記役割を有する利用者が有するアクセス権限と、上記アクセス権限が有効となる有効条件との組み合わせを表わす役割権限データを記憶し、
上記利用者権限判定部は、上記処理装置を用いて、上記役割権限記憶部が記憶した役割権限データに基づいて、上記検索条件を指定した利用者が有する有効なアクセス権限を判定することを特徴とする請求項2に記載の検索装置。
【請求項4】
上記検索装置は、更に、グループ所属記憶部を有し、
上記グループ所属記憶部は、上記記憶装置を用いて、検索対象データと、上記検索対象データが属するグループとの組み合わせを表わすグループ所属データを記憶し、
上記検索対象抽出部は、上記処理装置を用いて、上記グループ所属記憶部が記憶したグループ所属データに基づいて、上記検索条件を指定した利用者にアクセス権限があるグループに属する検索対象データを抽出することを特徴とする請求項1乃至請求項3のいずれかに記載の検索装置。
【請求項5】
上記検索装置は、更に、グループ条件記憶部と、所属抽出部とを有し、
上記グループ条件記憶部は、上記記憶装置を用いて、検索対象データが属するグループと、上記グループに属する検索対象データが満たす所属条件との組み合わせを表わすグループ条件データを記憶し、
上記所属抽出部は、上記処理装置を用いて、上記グループ条件記憶部が記憶したグループ条件データに基づいて、上記検索対象記憶部が記憶した検索対象データのなかから、上記所属条件を満たす検索対象データを抽出し、抽出した検索対象データに基づいて、上記グループ所属データを生成し、
上記グループ所属記憶部は、上記記憶装置を用いて、上記所属抽出部が生成したグループ所属データを記憶することを特徴とする請求項4に記載の検索装置。
【請求項6】
上記検索装置は、更に、所属更新部を有し、
上記所属更新部は、上記処理装置を用いて、上記検索対象記憶部が新たな検索対象データを記憶した場合に、上記グループ条件記憶部が記憶したグループ条件データに基づいて、上記検索対象記憶部が新たに記憶した検索対象データが満たす所属条件を抽出し、抽出した所属条件に基づいて、上記グループ所属記憶部が記憶したグループ所属データを更新することを特徴とする請求項5に記載の検索装置。
【請求項7】
上記所属更新部は、上記処理装置を用いて、上記検索対象記憶部が記憶した検索対象データが更新された場合に、上記グループ条件記憶部が記憶したグループ条件データに基づいて、更新された検索対象データが満たす所属条件を抽出し、抽出した所属条件に基づいて、上記グループ所属記憶部が記憶したグループ所属データを更新することを特徴とする請求項6に記載の検索装置。
【請求項8】
上記検索装置は、更に、利用者属性記憶部を有し、
上記利用者属性記憶部は、上記記憶装置を用いて、利用者と、上記利用者が有する属性との組み合わせを表わす利用者属性データを記憶し、
上記利用者属性判定部は、上記処理装置を用いて、上記利用者属性記憶部が記憶した利用者属性データに基づいて、上記検索条件を指定した利用者が有する属性を判定することを特徴とする請求項1乃至請求項7のいずれかに記載の検索装置。
【請求項9】
上記検索装置は、更に、役割条件記憶部を有し、
上記役割条件記憶部は、上記記憶装置を用いて、利用者が有する属性についての属性条件と、上記属性条件を満たす利用者が有する役割との組み合わせを表わす役割条件データを記憶し、
上記利用者役割判定部は、上記処理装置を用いて、上記役割条件記憶部が記憶した役割条件データに基づいて、上記検索条件を指定した利用者が有する役割を判定することを特徴とする請求項1乃至請求項8のいずれかに記載の検索装置。
【請求項10】
請求項1乃至請求項9のいずれかに記載の検索装置としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【請求項11】
データを記憶する記憶装置と、データを処理する処理装置とを有する検索装置が、上記記憶装置が記憶した検索対象データを検索する検索方法において、
上記処理装置が、利用者が指定した検索条件を入力し、
上記処理装置が、上記検索条件を指定した利用者が有する属性を判定し、
上記処理装置が、判定した属性に基づいて、上記検索条件を指定した利用者が有する役割を判定し、
上記処理装置が、判定した役割に基づいて、上記検索条件を指定した利用者が有するアクセス権限を判定し、
上記処理装置が、判定したアクセス権限に基づいて、上記検索対象データのなかから、上記検索条件を指定した利用者にアクセス権限がある検索対象データを抽出し、
上記処理装置が、抽出した検索対象データのなかから、入力した検索条件を満たす検索対象データを検索し、
上記処理装置が、検索した検索結果を出力することを特徴とする検索方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate