(57)【要約】【課題】ユーザがアクセス権限を有さない情報リソースを検索対象とする検索条件を実行してしまう可能性を低減することのできる情報検索技術を提供する。【解決手段】本発明に係る情報検索プログラムは、検索条件を一覧出力する際に、ユーザがアクセス権限を持たないデータを検索対象とする検索条件を一覧から除外する。【選択図】図９
2011070406.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置が格納しているデータを検索する処理をコンピュータに実行させる情報検索プログラムであって、
前記コンピュータに、
前記データを検索する際の検索条件を所定の検索条件データベースにあらかじめ登録しておく検索条件登録ステップと、
前記検索条件を用いて前記データを検索するユーザを認証するステップと、
前記検索条件データベースから前記検索条件を読み出して一覧出力する検索条件出力ステップと、
前記検索条件が規定する検索を実行して前記データを検索する検索実行ステップと、
を実行させ、
前記検索条件出力ステップでは、前記コンピュータに、
前記ユーザがアクセスする権限を持たない前記データを検索対象とする前記検索条件を前記一覧出力から除外させる
ことを特徴とする情報検索プログラム。
【請求項２】
前記検索条件登録ステップでは、前記コンピュータに、
前記ユーザがアクセスする権限を持たない前記データを検索対象とする前記検索条件を前記検索条件データベースに登録させないようにする
ことを特徴とする請求項１記載の情報検索プログラム。
【請求項３】
前記検索条件データベースは前記データに対する前記ユーザのアクセス権限を記述したアクセス権限情報を格納しており、
前記コンピュータに、
前記アクセス権限情報を参照して前記ユーザが前記データに対するアクセスする権限を持つか否かを判断させる
ことを特徴とする請求項１または請求項２記載の情報検索プログラム。
【請求項４】
前記検索実行ステップでは、前記コンピュータに、
前記ユーザがアクセスする権限を持たない前記データを検索させないようにする
ことを特徴とする請求項１から請求項３のいずれか１項に記載の情報検索プログラム。
【請求項５】
前記検索条件登録ステップでは、前記コンピュータに、
前記検索条件が検索対象とする前記データに対してアクセス権限を有するユーザを照会する照会リクエストを受け取るステップと、
前記照会を受けた前記データに対してアクセス権限を有するユーザの一覧を表すデータを前記照会リクエストの送信元に返信するステップと、
を実行させることを特徴とする請求項１から請求項４のいずれか１項に記載の情報検索プログラム。
【請求項６】
請求項１から請求項５のいずれか１項に記載の情報検索プログラムを実行する情報検索サーバと、
前記情報検索サーバに対し前記検索条件の一覧を出力するよう要求するクライアント端末と、
を有することを特徴とする情報検索システム。
【請求項７】
請求項５記載の情報検索プログラムを実行する情報検索サーバと、
前記情報検索サーバに対し前記検索条件を登録するよう要求し、または前記検索条件の一覧を出力するよう要求するクライアント端末と、
を有することを特徴とする情報検索システム。
【請求項８】
前記情報検索サーバは、
前記検索条件をどのユーザに公開するかを表す情報を記憶する記憶部を備え、
前記クライアント端末は、
前記情報検索サーバに登録する前記検索条件を入力する検索条件登録画面を画面表示する表示部を備え、
前記照会リクエストを前記情報検索サーバに送信し、
前記情報検索サーバより前記ユーザの一覧を表すデータを受信すると、
前記検索条件登録画面において、前記データに対してアクセス権限を有していないユーザを、検索条件の公開先として選択できないようにする
ことを特徴とする請求項７記載の情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを検索する技術に関するものである。
【背景技術】
【０００２】
一般に、データベースなどの膨大な情報を格納している情報リソースから所望の情報を検索するためには、ＳＱＬ文などを用いて検索条件を作成し、その検索条件を用いて情報リソースへ問い合わせる必要がある。したがって、情報リソースから所望の情報を検索するには、検索条件を作成するための専門知識が必要となる。
【０００３】
これに対し、上記のような専門知識を必要とすることなく、画面上で簡易な入力を行なうのみで情報リソースから所望の情報を検索することのできる情報検索システムも存在する。このようなシステムでは、専門知識をもった技術者等があらかじめ検索条件を作成してシステムに登録しておき、その検索条件を一般ユーザに公開する。一般ユーザは公開されている検索条件を選択するのみで、複雑な検索条件を実行することができる。
【０００４】
上記のようにあらかじめ作成されている検索条件を指定して情報リソースを検索した場合、検索条件とユーザが求めている情報とがうまく合致していないなどの原因により、所望の検索結果が得られないことがある。下記特許文献１では、上記のような課題に対処するため、ユーザが指定した検索条件と類似している他の検索条件を、検索結果とともにユーザへ提示する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−７８３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年のセキュリティ意識の向上により、情報リソースには個別のアクセス権限が設定される傾向が強くなっている。例えば企業では、役職毎や所属部署毎に情報リソースへのアクセス権限を個別に設定している場合がある。
【０００７】
上記のようなアクセス権限が詳細に設定されている環境において、従来の情報検索システムや上記特許文献１に記載のような技術を適用すると、アクセス権限に起因して使用感が低下する可能性がある。例えば、ユーザに対して提示される検索条件のなかに、そのユーザがアクセス権限を持たない情報リソースに対して検索を行なうものが含まれている可能性がある。ユーザがその検索条件を指定して検索を行なうと、アクセス権限に起因するエラーが発生する。したがって、ユーザは改めて検索条件を指定するか、自分がアクセス権限を有する情報リソースを検索対象とする検索条件を改めて作成する必要があり、そのための手間を強いられてしまう。
【０００８】
本発明は、上記のような課題を解決するためになされたものであり、ユーザがアクセス権限を有さない情報リソースを検索対象とする検索条件を実行してしまう可能性を低減することのできる情報検索技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報検索プログラムは、検索条件を一覧出力する際に、ユーザがアクセス権限を持たないデータを検索対象とする検索条件を一覧から除外する。
【発明の効果】
【００１０】
本発明に係る情報検索プログラムによれば、アクセス権限に起因するエラーが発生する可能性のある検索条件をはじめからユーザに提示しないようにすることができる。これにより、ユーザが検索条件を何度も指定し直す可能性を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る情報検索システム１０００の構成図である。
【図２】ユーザ情報１２２の構成とデータ例を示す図である。
【図３】検索条件データ１２３の構成とデータ例を示す図である。
【図４】アクセス権限データ１２４の構成とデータ例を示す図である。
【図５】ユーザが検索条件を情報検索サーバ１００の検索情報データ１２３に登録するために用いる検索条件登録画面２１０の構成例を示す図である。
【図６】検索条件データ１２３が保持している検索条件から所望のものを検索する過程を示す図である。
【図７】情報検索プログラム１２１がデータベースに対するアクセス権限をチェックする処理フローを示す図である。
【図８】情報検索プログラム１２１が図７の処理フローに続いて実行する処理フローである。
【図９】情報検索プログラム１２１が図８の処理フローに続いて実行する処理フローである。
【図１０】情報検索プログラム１２１が新規の検索条件を検索条件データ１２３に登録する処理フローを示す図である。
【図１１】情報検索プログラム１２１が図１０の処理フローに続いて実行する処理フローである。
【図１２】情報検索プログラム１２１が図１１の処理フローに続いて実行する処理フローである。
【図１３】検索条件登録画面２１０の画面上でアクセス権限をチェックする際の画面遷移を示す図である。
【図１４】検索条件登録画面２１０上でユーザが入力したデータベースに対するアクセス権限を有する権限グループを照会したときの処理フローである。
【図１５】検索条件登録画面２１０上でユーザが入力したテーブルに対するアクセス権限を有する権限グループを照会したときの処理フローである。
【図１６】検索条件登録画面２１０上でユーザが入力した列に対するアクセス権限を有する権限グループを照会したときの処理フローである。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る情報検索システム１０００の構成図である。情報検索システム１０００は、情報検索サーバ１００、クライアント端末２００、情報リソース３００を有する。これらはネットワーク４００を介して接続されている。
【００１３】
情報検索サーバ１００は、情報リソース３００が格納しているデータを検索する機能を提供するサーバ装置であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、記憶装置１２０を備える。また、ネットワーク４００を介して通信するためのインタフェース（図示せず）を備える。
【００１４】
ＣＰＵ１１０は、後述の情報検索プログラム１２１を実行し、情報リソース３００が格納しているデータを検索してクライアント端末２００に送信する。以下、記載の便宜上、必要に応じて情報検索プログラム１２１を動作主体として記載する場合があるが、実際に情報検索プログラム１２１を実行する動作主体はＣＰＵ１１０であることを付言しておく。
【００１５】
記憶装置１２０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの不揮発性の記憶装置で構成されており、情報検索プログラム１２１、ユーザ情報１２２、検索条件データ１２３、アクセス権限データ１２４を格納している。
【００１６】
情報検索プログラム１２１は、後述の図７〜図９で説明する動作フローを実行してクライアント端末２００のユーザに検索条件を提示する。情報検索プログラム１２１は、単一のプログラムとして構成されていてもよいし、複数のプログラムモジュールから構成されていてもよい。また、図１では単一の情報検索サーバ１００内に単一の情報検索プログラム１２１が格納されている例を示したが、複数の情報検索サーバ１００内に、情報検索プログラム１２１を構成するプログラムモジュールが分散して格納されていてもよい。
【００１７】
ユーザ情報１２２は、クライアント端末２００を使用して情報リソース３００に格納されているデータを検索するユーザを認証するための情報である。詳細は後述の図２で改めて説明する。
【００１８】
検索条件データ１２３は、情報リソース３００が格納しているデータを検索する際の検索条件を、専門知識を有する技術者等があらかじめ作成して情報検索サーバ１００に登録したものである。検索条件データ１２３は、１以上の検索条件を保持する。詳細は後述の図３で改めて説明する。
【００１９】
アクセス権限データ１２４は、情報リソース３００が格納しているデータに対するユーザのアクセス権限を記述したデータである。必ずしもユーザ毎にアクセス権限を記述する必要はなく、ユーザのグループ毎にアクセス権限を記述してもよい。詳細は後述の図４で改めて説明する。
【００２０】
クライアント端末２００は、ユーザがクライアント端末２００を使用して情報リソース３００に格納されているデータを検索するために使用する操作端末である。クライアント端末２００はＷｅｂブラウザを搭載しており、ユーザは後述の図６で説明する検索条件一覧出力画面２３０上で検索条件を指定して実行する。
【００２１】
また、クライアント端末２００は、検索条件データ１２３を登録するための操作端末として用いることもできる。ユーザは後述の図５で説明する検索条件登録画面２１０をＷｅｂブラウザ上で操作して、新規の検索条件を検索条件データ１２３に登録する。
【００２２】
ユーザは、クライアント端末２００を用いて情報検索サーバ１００が提供する機能を利用する際には、情報提供サーバ１００にログインしなければならない。情報検索プログラム１２１は、ユーザ情報１２２を用いて、そのためのユーザ認証処理を実行する。
【００２３】
情報リソース３００は、ＨＤＤなどの記憶装置で構成され、データベースや種々のデータファイルなどの情報リソースを格納している。以下ではデータベースを情報リソースの例として取り扱う。情報リソース３００の数は任意でよい。
【００２４】
図２は、ユーザ情報１２２の構成とデータ例を示す図である。ここでは説明の便宜のためテーブル形式のデータとして記載したが、データ形式はこれに限られるものではない。ユーザ情報１２２は、ユーザＩＤ列１２２１、ユーザ名列１２２２、パスワード列１２２３、権限グループ列１２２４を有する。
【００２５】
ユーザＩＤ列１２２１は、クライアント端末２００を使用するユーザを一意に識別するためのＩＤを保持する。
【００２６】
ユーザ名列１２２２は、ユーザＩＤ列１２２１で識別されるユーザの氏名を保持する。
【００２７】
パスワード列１２２３は、ユーザＩＤ列１２２１で識別されるユーザを認証するためのパスワードを保持する。本列の値は、暗号化して保持するようにしてもよい。
【００２８】
権限グループ列１２２４は、ユーザＩＤ列１２２１で識別されるユーザが属する権限グループの識別子を保持する。ここでいう権限グループとは、情報リソース３００に対するユーザのアクセス権限を、ユーザ毎ではなく複数のユーザをまとめたグループ毎に区分するためのものである。
【００２９】
図３は、検索条件データ１２３の構成とデータ例を示す図である。ここでは説明の便宜のためテーブル形式のデータとして記載したが、データ形式はこれに限られるものではない。検索条件データ１２３は、検索条件名列１２３１、ユーザＩＤ列１２３２、検索条件列１２３３、公開先権限グループ列１２３４、登録日時列１２３５を有する。これらの列のほか、検索条件の内容を説明する説明列などを設けてもよい。
【００３０】
検索条件名列１２３１は、個々の検索条件を識別するための名称である。本列の値は個々の検索条件の識別子としても用いられるため、他の検索条件と同じ名称を付与することはできないものとする。
【００３１】
ユーザＩＤ列１２３２は、検索条件名列１２３１の値で識別される検索条件を登録したユーザのユーザＩＤ１２２１を保持する。
【００３２】
検索条件列１２３３は、検索条件名列１２３１の値で識別される検索条件の内容を保持する。具体的には、情報リソース３００が格納しているデータベース内のデータを検索するためのＳＱＬ文などを、バイナリ形式で保持する。
【００３３】
公開先権限グループ列１２３４は、検索条件名列１２３１の値で識別される検索条件を公開する権限グループの識別子を保持する。検索条件を公開するか否かについては、後述の図５で改めて説明する。
【００３４】
登録日時列１２３５は、検索条件名列１２３１の値で識別される検索条件が登録された日時を保持する。
【００３５】
図４は、アクセス権限データ１２４の構成とデータ例を示す図である。ここでは説明の便宜のためマークアップ言語形式のデータとして記載したが、データ形式はこれに限られるものではない。図４では、情報リソース３００が格納している「商品マスタ」データベースについてのアクセス権限を定義するデータ例を示した。
【００３６】
図４に示した例では、「商品マスタ」データベースは「商品テーブル」を有し、「商品テーブル」は「商品名」列と「単価」列を有する。図４に示すデータ例では、この階層関係を、マークアップ言語のタグの階層構造で表現している。
【００３７】
図４に示す「参照権限」「更新権限」は、各項目について参照権限を有する権限グループと更新権限を有する権限グループを記述している。例えば「商品マスタ」全体に対する更新権限は、権限グループＸのみ有し、参照権限は権限グループＸ、Ｙ、Ｚ、Ｗが有することが記述されている。同様に、「商品テーブル」の「単価」列に対しては、権限グループＸのみ更新権限を有し、参照権限は権限グループＸ、Ｚが有する。
【００３８】
例えば、図２におけるユーザ「jiro-soft」は権限グループＹに属するため、「商品マスタ」データベースの「商品テーブル」の「商品名」列を参照することはできるが、「単価」列を参照することはできない。
【００３９】
以上、情報検索システム１０００の構成について説明した。以下では、情報検索サーバ１００がクライアント端末２００上に対して提供する各画面について説明する。
【００４０】
図５は、ユーザが検索条件を情報検索サーバ１００の検索情報データ１２３に登録するために用いる検索条件登録画面２１０の構成例を示す図である。検索条件登録画面２１０は、検索条件名入力欄２１１、説明入力欄２１２、情報リソース入力欄２１３、テーブル入力欄２１４、列入力欄２１５、検索条件入力欄２１６、公開先グループ選択欄２１７、登録ボタン２１８を有する。
【００４１】
検索条件名入力欄２１１は、登録する検索条件の名称を入力する欄である。
【００４２】
説明入力欄２１２は、登録する検索条件の内容説明を入力する欄である。
【００４３】
情報リソース入力欄２１３は、登録する検索条件が検索対象とする情報リソース名、例えば情報リソース３００が格納しているデータベース名などを入力する欄である。
【００４４】
テーブル入力欄２１４、列入力欄２１５は、登録する検索条件が検索対象とするテーブル名、列名をそれぞれ入力する欄である。
【００４５】
検索条件入力欄２１６は、検索条件の内容（例えばＳＱＬ文）を入力する欄である。検索条件入力欄２１６の内容のみで検索条件の検索対象を記述できるときは、情報リソース入力欄２１３、テーブル入力欄２１４、列入力欄２１５には何も入力しなくともよい。
【００４６】
公開先グループ選択欄２１７は、検索条件登録画面２１０上で作成する検索条件をどの権限グループに対して公開するかを選択する欄である。検索条件登録画面２１０で作成した検索条件は、ここで選択された権限グループに対して公開されることになる。ただし、公開先の権限グループが情報リソースに対してアクセス権限を有するか否かは、チェックされない。公開先権限グループを選択できるようにしているのは、ユーザが作成した検索条件を他のユーザに使わせたくない場合もあることを想定したものである。
【００４７】
登録ボタン２１８は、検索条件登録画面２１０で作成した検索条件を確定して情報検索サーバ１００に送信するためのボタンである。
【００４８】
図６は、検索条件データ１２３が保持している検索条件から所望のものを検索する過程を示す図である。以下、図６の画面遷移について説明する。
【００４９】
検索条件データ検索画面２２０は、検索条件データ１２３が保持している検索条件を検索するためのキーワード等を入力する画面である。ここではキーワードとして、「商品マスタ」データベースを指定した。なお、検索条件データ検索画面２２０を使用するためにはあらかじめ情報検索サーバ１００にログインしておかなければならないものとする。ここでは図２に示すユーザ「jiro-soft」がログインしている例を示した。
【００５０】
検索条件一覧出力画面２３０は、検索条件データ検索画面２２０で入力したキーワード等を基に検索条件データ１２３が保持している検索条件を検索した結果を一覧出力する画面である。情報検索サーバ１００のＣＰＵ１１０は、情報検索プログラム１２１を実行してキーワードに合致する検索条件を検索する。情報検索プログラム１２１は、以下の制約条件の下で検索を実行する。
【００５１】
（制約条件１：公開先権限グループ）
ユーザ「jiro-soft」は権限グループ「Ｙ」に属するため、情報検索プログラム１２１は同グループに対して公開されている検索条件のみを検索対象とする。図３の公開先権限グループ列１２３４の値によれば、「在庫数の確認」「売上確認（日次）」「店舗別売上確認（日次）」のみが検索対象となる。
【００５２】
（制約条件２：情報リソースに対するアクセス権限）
情報検索プログラム１２１は、権限グループ「Ｙ」がアクセス権限を有する情報リソースのみを検索対象とする。図４によれば、同グループは「商品マスタ」データベース内の「商品テーブル」の「商品名」列に対してのみアクセス権限を有するので、同列以外にアクセスする検索条件は、検索対象外となる。
【００５３】
情報検索プログラム１２１は、以上の制約条件の下で検索条件データ１２３が保持する検索条件を検索し、検索条件一覧出力画面２３０としてクライアント端末２００に送信する。ユーザは、検索条件一覧出力画面２３０に表示されている検索条件からいずれかを選択してその検索条件を実行するよう情報検索サーバ１００に指示する。情報検索プログラム１２１は、指定された検索条件を実行し、クライアント端末１００にその実行結果を送信する。
【００５４】
以上の動作により、クライアント端末２００のユーザは、アクセス権限を有する情報リソースに対して検索を実行する検索条件のみを実行することになるので、検索条件を実行した後になって初めてアクセス権限エラーとなる不都合を回避することができる。
【００５５】
以上、情報検索サーバ１００がクライアント端末２００に対して提供する各画面について説明した。以下では、情報検索プログラム１２１が検索条件一覧出力画面２３０をクライアント端末に送信する際の詳細動作を説明する。本実施の形態１では、アクセス権限データ１２４は「データベース」「テーブル」「列」の順に階層構造になっているので、情報検索プログラム１２１はこの順でユーザのアクセス権限をチェックする。
【００５６】
図７は、情報検索プログラム１２１がデータベースに対するアクセス権限をチェックする処理フローを示す図である。以下、図７の各ステップについて説明する。
【００５７】
（図７：ステップＳ７００）
クライアント端末２００のユーザは、キーワード等を指定し、検索条件データ１２３が保持する検索条件の一覧を出力するよう、情報検索サーバ１００に対して指示する。ＣＰＵ１１０がその指示を受け取ると、本動作フローが開始される。なお本動作フローが開始される時点で、情報検索プログラム１２１は情報検索サーバ１００にログインしているユーザＩＤを取得しているものとする。
【００５８】
（図７：ステップＳ７０１）
情報検索プログラム１２１は、検索条件データ１２３が保持している検索条件のうち、検索条件の一覧を出力するよう要求したユーザが属する権限グループに対して公開されているものを全て取得し、検索条件一覧出力画面２３０に表示する候補として、表示候補リストに入れる。以下の処理で、ユーザがアクセス権限を持たない情報リソースにアクセスする検索条件を除外していく。
【００５９】
（図７：ステップＳ７０２）
情報検索プログラム１２１は、以下のステップＳ７０３〜Ｓ７０５を、表示候補リスト内の全ての検索条件に対して繰り返す。
【００６０】
（図７：ステップＳ７０３）
情報検索プログラム１２１は、表示候補リストから検索条件を１件取得する。
【００６１】
（図７：ステップＳ７０４）
情報検索プログラム１２１は、ステップＳ７０３で取得した検索条件の内容、すなわち検索条件列１２３３の内容を取得し、その検索条件がいずれのデータベースに対してアクセスするかを判断する。情報検索プログラム１２１は、アクセス権限データ１２４に基づき、ユーザがそのデータベースに対してアクセス権限を有するか否かをチェックする。アクセス権限を有さない場合はステップＳ７０５へ進み、アクセス権限を有する場合はステップＳ７０２の繰り返しループを次に進める。
【００６２】
（図７：ステップＳ７０５）
情報検索プログラム１２１は、ステップＳ７０４でアクセス権限をチェックした検索条件を、表示候補リストから削除する。これにより、ユーザがアクセス権限を有さないデータベースにアクセスする検索条件は、検索条件一覧出力画面２３０に表示されないことになる。
【００６３】
図８は、情報検索プログラム１２１がテーブルに対するアクセス権限をチェックする処理フローを示す図であり、図７の処理フローに続いて実行する処理フローである。以下、図８の各ステップについて説明する。
【００６４】
（図８：ステップＳ８００）
情報検索プログラム１２１は、図７の処理フローが終了すると、本処理フローを開始する。表示候補リストは図７の処理フローで作成済みであるので、本処理フローではステップＳ７０１に相当するステップはない。
【００６５】
（図８：ステップＳ８０１〜Ｓ８０２）
これらのステップは、図７のステップＳ７０２〜Ｓ７０３と同様である。
【００６６】
（図８：ステップＳ８０３）
情報検索プログラム１２１は、ステップＳ８０２で取得した検索条件の内容、すなわち検索条件列１２３３の内容を取得し、その検索条件がいずれのテーブルに対してアクセスするかを判断する。情報検索プログラム１２１は、アクセス権限データ１２４に基づき、ユーザがそのテーブルに対してアクセス権限を有するか否かをチェックする。アクセス権限を有さない場合はステップＳ８０４へ進み、アクセス権限を有する場合はステップＳ８０１の繰り返しループを次に進める。
【００６７】
（図８：ステップＳ８０４）
情報検索プログラム１２１は、ステップＳ８０３でアクセス権限をチェックした検索条件を、表示候補リストから削除する。これにより、ユーザがアクセス権限を有さないテーブルにアクセスする検索条件は、検索条件一覧出力画面２３０に表示されないことになる。
【００６８】
図９は、情報検索プログラム１２１が列に対するアクセス権限をチェックする処理フローを示す図であり、図８の処理フローに続いて実行する処理フローである。以下、図９の各ステップについて説明する。
【００６９】
（図９：ステップＳ９００）
情報検索プログラム１２１は、図８の処理フローが終了すると、本処理フローを開始する。表示候補リストは図７の処理フローで作成済みであるので、本処理フローではステップＳ７０１に相当するステップはない。
【００７０】
（図９：ステップＳ９０１〜Ｓ９０２）
これらのステップは、図７のステップＳ７０２〜Ｓ７０３と同様である。
【００７１】
（図９：ステップＳ９０３）
情報検索プログラム１２１は、ステップＳ９０２で取得した検索条件の内容、すなわち検索条件列１２３３の内容を取得し、その検索条件がいずれの列に対してアクセスするかを判断する。情報検索プログラム１２１は、アクセス権限データ１２４に基づき、ユーザがその列に対してアクセス権限を有するか否かをチェックする。アクセス権限を有さない場合はステップＳ９０４へ進み、アクセス権限を有する場合はステップＳ９０１の繰り返しループを次に進める。
【００７２】
（図９：ステップＳ９０４）
情報検索プログラム１２１は、ステップＳ９０３でアクセス権限をチェックした検索条件を、表示候補リストから削除する。これにより、ユーザがアクセス権限を有さない列にアクセスする検索条件は、検索条件一覧出力画面２３０に表示されないことになる。
【００７３】
（図９：ステップＳ９０５）
情報検索プログラム１２１は、表示候補リストに残っている検索条件に基づき検索条件一覧出力画面２３０を生成し、クライアント端末２００に送信する。以上の処理により、検索条件一覧出力画面２３０に表示される検索条件は、ユーザがアクセス権限を有するデータベース、テーブル、列に対してアクセスする検索条件のみを含むことになる。
【００７４】
以上、情報検索プログラム１２１が検索条件一覧出力画面２３０をクライアント端末に送信する際の詳細動作を説明した。
【００７５】
以上のように、本実施の形態１によれば、情報検索プログラム１２１は、検索条件データ１２３が保持する検索条件の一覧を出力するよう指示を受けると、検索条件データ１２３から該当する検索条件を抽出して検索条件一覧出力画面２３０を生成しクライアント端末２００に送信する。このとき情報検索プログラム１２１は、ユーザがアクセス権限を有さない情報リソースに対してアクセスする検索条件を検索条件一覧から除外する。これにより、ユーザはアクセス権限を有する情報リソースに対してアクセスする検索条件のみを得ることができるので、検索条件を実行した後になって初めてアクセス権限エラーとなり再度検索条件を指定するという不都合を強いられることがなくなる。
【００７６】
＜実施の形態２＞
実施の形態１では、検索条件一覧出力画面２３０を生成する際に、ユーザのアクセス権限をチェックし、アクセス権限を有さない情報リソースに対してアクセスする検索条件を検索条件一覧出力画面２３０上に表示しないようにした。本発明の実施の形態２では、これに加えて検索条件を登録する時点でアクセス権限をチェックする動作例を説明する。なお情報検索システム１０００の構成は実施の形態１と同様である。
【００７７】
図１０は、情報検索プログラム１２１が新規の検索条件を検索条件データ１２３に登録する処理フローを示す図である。以下、図１０の各ステップについて説明する。
【００７８】
（図１０：ステップＳ１０００）
クライアント端末２００のユーザは、検索条件登録画面２１０上で新規の検索条件を入力し、登録ボタン２１８を押下して、検索条件データ１２３に登録するよう情報検索サーバ１００に対して指示する。ＣＰＵ１１０がその指示を受け取ると、本動作フローが開始される。なお本動作フローが開始される時点で、情報検索プログラム１２１は情報検索サーバ１００にログインしているユーザＩＤを取得しているものとする。
【００７９】
（図１０：ステップＳ１００１）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の公開先グループ選択欄２１７で指定した各公開先権限グループがデータベースに対して有するアクセス権限をアクセス権限データ１２４に基づき把握しておく。
【００８０】
（図１０：ステップＳ１００２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の情報リソース入力欄２１３、検索条件入力欄２１６で入力した検索条件がアクセスするデータベース名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されているデータベース名を取得する。
【００８１】
（図１０：ステップＳ１００３）
情報検索プログラム１２１は、以下のステップＳ１００３〜Ｓ１００５を、全ての公開先権限グループに対して繰り返す。
【００８２】
（図１０：ステップＳ１００４）
情報検索プログラム１２１は、各公開先グループがステップＳ１００２で取得したデータベースに対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１００５へ進み、アクセス権限を有する場合はステップＳ１００３の繰り返しループを次に進める。
【００８３】
（図１０：ステップＳ１００５）
情報検索プログラム１２１は、ステップＳ１００４でアクセス権限をチェックした公開先グループを、エラーリストに追加する。これは、いずれの公開先権限グループがアクセス権限を有さないのかを後にユーザへ報告するためのものである。
【００８４】
図１１は、情報検索プログラム１２１が図１０の処理フローに続いて実行する処理フローである。以下、図１１の各ステップについて説明する。
【００８５】
（図１１：ステップＳ１１００）
情報検索プログラム１２１は、図１０の処理フローが終了すると、本処理フローを開始する。
【００８６】
（図１１：ステップＳ１１０１）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の公開先グループ選択欄２１７で指定した各公開先権限グループがテーブルに対して有するアクセス権限をアクセス権限データ１２４に基づき把握しておく。
【００８７】
（図１１：ステップＳ１１０２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０のテーブル入力欄２１４、検索条件入力欄２１６で入力した検索条件がアクセスするテーブル名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されているテーブル名を取得する。
【００８８】
（図１１：ステップＳ１１０３）
本ステップは、図１０のステップＳ１００３と同様である。
【００８９】
（図１１：ステップＳ１１０４）
情報検索プログラム１２１は、各公開先グループがステップＳ１１０２で取得したテーブルに対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１１０５へ進み、アクセス権限を有する場合はステップＳ１１０３の繰り返しループを次に進める。
【００９０】
（図１１：ステップＳ１１０５）
本ステップは、図１０のステップＳ１００５と同様である。
【００９１】
図１２は、情報検索プログラム１２１が図１１の処理フローに続いて実行する処理フローである。以下、図１２の各ステップについて説明する。
【００９２】
（図１２：ステップＳ１２００）
情報検索プログラム１２１は、図１１の処理フローが終了すると、本処理フローを開始する。
【００９３】
（図１２：ステップＳ１２０１）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の公開先グループ選択欄２１７で指定した各公開先権限グループが列に対して有するアクセス権限をアクセス権限データ１２４に基づき把握しておく。
【００９４】
（図１２：ステップＳ１２０２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の列入力欄２１５、検索条件入力欄２１６で入力した検索条件がアクセスする列名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されている列名を取得する。
【００９５】
（図１２：ステップＳ１２０３）
本ステップは、図１０のステップＳ１００３と同様である。
【００９６】
（図１２：ステップＳ１２０４）
情報検索プログラム１２１は、各公開先グループがステップＳ１２０２で取得した列に対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１２０５へ進み、アクセス権限を有する場合はステップＳ１２０３の繰り返しループを次に進める。
【００９７】
（図１２：ステップＳ１２０５）
本ステップは、図１０のステップＳ１００５と同様である。
【００９８】
（図１２：ステップＳ１２０６）
情報検索プログラム１２１は、エラーリストに登録されているエラーが０件であるか否かを確認する。０件である場合はステップＳ１２０７へ進み、１件以上ある場合はステップＳ１２０８へ進む。
【００９９】
（図１２：ステップＳ１２０７）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０で入力した検索条件を検索条件データ１２３に登録する。
【０１００】
（図１２：ステップＳ１２０８）
情報検索プログラム１２１は、エラーリストに登録されているエラーの内容をクライアント端末２００に送信する。これによりユーザは、いずれの公開先権限グループがいずれの情報リソースに対してアクセス権限を有さなかったかを知ることができるので、改めて各公開先権限グループがアクセス権限を有する検索条件を入力し直すことができる。
【０１０１】
以上のように、本実施の形態２によれば、情報検索プログラム１２１は、ユーザが検索条件登録画面２１０で入力した検索条件を検索条件データ１２３に登録する際に、その検索条件がアクセスする情報リソース（データベース、テーブル、列など）に対して各公開先権限グループがアクセス権限を有するか否かをチェックする。これにより、ユーザがアクセス権限を有する検索条件のみが検索条件データ１２３に登録されることになるので、検索条件一覧出力画面２３０に表示される検索条件は、ユーザがアクセス権限を有する情報リソースに対してアクセスするもののみとなる。したがって、ユーザはアクセス権限を有する情報リソースに対してアクセスする検索条件のみを得ることになり、実施の形態１と同様の効果を発揮することができる。
【０１０２】
また、実施の形態１では検索条件一覧出力画面２３０を生成する時点でアクセス権限をチェックするのに対し、本実施の形態２ではこれに加えて検索条件登録画面２１０でもアクセス権限をチェックする。これにより、検索条件を入力する者にとっては、ユーザが実行できない検索条件であることがより早い時点で判明し、適切な検索条件を改めて入力するよう促すことができる効果がある。
【０１０３】
＜実施の形態３＞
実施の形態２では、ユーザが検索条件登録画面２１０で入力した検索条件についてのアクセス権限をチェックすることを説明した。ただし、アクセス権限をチェックするのは、ユーザが登録ボタン２１８を押下し、検索条件を情報検索サーバ１００に送信した時点である。本発明の実施の形態３では、実施の形態１〜２で説明したチェックに加え、ユーザが登録ボタン２１８を押下して検索条件を情報検索サーバ１００に送信する前の時点でアクセス権限をチェックする動作例を説明する。
【０１０４】
図１３は、検索条件登録画面２１０の画面上でアクセス権限をチェックする際の画面遷移を示す図である。検索条件を登録するユーザは、検索条件登録画面２１０上でデータベース名などを入力して検索条件を作成する。このときユーザは、情報リソース入力欄２１３、テーブル入力欄２１４などに検索条件を入力していく。
【０１０５】
図１３（ａ）は、ユーザが検索条件としてデータベース名を情報リソース入力欄２１３に入力した時点の画面状態を示す。ここでは「商品マスタ」データベースを入力した例を示した。図４に示したアクセス権限データ１２４によれば、全ての権限グループが「商品マスタ」データベースに対してアクセス権限を有するので、この時点では画面上の変化はない。
【０１０６】
図１３（ｂ）は、ユーザが検索条件としてテーブル名をテーブル入力欄２１４に入力した時点の画面状態を示す。ここでは「商品テーブル」を入力した例を示した。図４に示したアクセス権限データ１２４によれば、「商品テーブル」に対して参照権限を有するのは権限グループＸ、Ｙ、Ｚのみであるので、権限グループＷは選択できないように、公開先グループ選択欄２１７の「権限グループＷ」の部分が無効化されている。
【０１０７】
このように、アクセス権限を有さない権限グループは検索条件登録画面２１０上で初めから選択できないようにしておけば、検索条件の登録を試みる前にその旨を知ることができるので、検索条件を登録するユーザにとって便宜である。以下では、図１３の動作を実現するため情報検索サーバ１００とクライアント端末２００それぞれが実行する処理を説明する。
【０１０８】
（クライアント端末２００が実行する処理）
クライアント端末２００は、検索条件登録画面２１０上でユーザが入力する内容をモニタし、その入力内容を情報検索サーバ１００に送信して、入力された情報リソースに対するアクセス権限を有する権限グループのリストを取得する。アクセス権限を有さない権限グループについては、図１３（ｂ）に示すように公開先グループ選択欄２１７の該当箇所を無効化する。
【０１０９】
（クライアント端末２００が実行する処理：補足）
検索条件登録画面２１０をＷｅｂブラウザ上で提供する場合、上記処理はＷｅｂブラウザ上で実行するスクリプトプログラムなどによって実現することができる。スクリプトプログラムは、例えばユーザが入力欄のフォーカスを移動させた時点などで検索条件登録画面２１０上の入力内容を取得し、情報検索サーバ１００に送信する。情報検索サーバ１００よりアクセス権限を有する権限グループのリストを取得すると、公開先グループ選択欄２１７の該当箇所の「ｄｉｓａｂｌｅｄ」属性を「ｔｒｕｅ」に設定するなどの処理によって無効化する。
【０１１０】
（情報検索サーバ１００が実行する処理）
情報検索サーバ１００は、クライアント端末２００より検索条件登録画面２１０上の入力内容を受信すると、以下の図１４〜図１６で説明する処理フローを実行する。
【０１１１】
図１４は、検索条件登録画面２１０上でユーザが入力したデータベースに対するアクセス権限を有する権限グループを、クライアント端末２００が情報検索サーバ１００に対して照会したときの処理フローである。以下、図１４の各ステップについて説明する。
【０１１２】
（図１４：ステップＳ１４００）
クライアント端末２００のユーザは、検索条件登録画面２１０上でデータベース名を入力する。クライアント端末２００は、そのデータベースに対するアクセス権限を有する権限グループを情報検索サーバ１００に照会する。ＣＰＵ１１０がその照会リクエストを受け取ると、本動作フローが開始される。なお本動作フローが開始される時点で、情報検索プログラム１２１は検索条件登録画面２１０を使用しているユーザＩＤを取得しているものとする。
【０１１３】
（図１４：ステップＳ１４０１）
情報検索プログラム１２１は、無効化リストを初期化する。無効化リストとは、いずれの権限グループがアクセス権限を有さないのかをクライアント端末２００へ通知するためのものである。
【０１１４】
（図１４：ステップＳ１４０２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の情報リソース入力欄２１３、検索条件入力欄２１６で入力した検索条件がアクセスするデータベース名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されているデータベース名を取得する。
【０１１５】
（図１４：ステップＳ１４０３）
情報検索プログラム１２１は、以下のステップＳ１４０４〜Ｓ１４０５を、全ての権限グループに対して繰り返す。
【０１１６】
（図１４：ステップＳ１４０４）
情報検索プログラム１２１は、各権限グループがステップＳ１４０２で取得したデータベースに対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１４０５へ進み、アクセス権限を有する場合はステップＳ１４０３の繰り返しループを次に進める。
【０１１７】
（図１４：ステップＳ１４０５）
情報検索プログラム１２１は、ステップＳ１４０４でアクセス権限をチェックした権限グループを、無効化リストに追加する。
【０１１８】
（図１４：ステップＳ１４０６）
情報検索プログラム１２１は、無効化リストをクライアント端末２００に送信する。クライアント端末２００は、無効化リストに含まれている権限グループに相当する公開先グループ選択欄２１７の該当箇所を無効化する。
【０１１９】
図１５は、検索条件登録画面２１０上でユーザが入力したテーブルに対するアクセス権限を有する権限グループを、クライアント端末２００が情報検索サーバ１００に対して照会したときの処理フローである。以下、図１５の各ステップについて説明する。
【０１２０】
（図１５：ステップＳ１５００）
クライアント端末２００のユーザは、検索条件登録画面２１０上でテーブル名を入力する。クライアント端末２００は、そのテーブルに対するアクセス権限を有する権限グループを情報検索サーバ１００に照会する。ＣＰＵ１１０がその照会リクエストを受け取ると、本動作フローが開始される。なお本動作フローが開始される時点で、情報検索プログラム１２１は検索条件登録画面２１０を使用しているユーザＩＤを取得しているものとする。
【０１２１】
（図１５：ステップＳ１５０１）
本ステップは、図１４のステップＳ１４０１と同様である。
【０１２２】
（図１５：ステップＳ１５０２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０のテーブル入力欄２１４、検索条件入力欄２１６で入力した検索条件がアクセスするテーブル名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されているテーブル名を取得する。
【０１２３】
（図１５：ステップＳ１５０３）
本ステップは、図１４のステップＳ１４０３と同様である。
【０１２４】
（図１５：ステップＳ１５０４）
情報検索プログラム１２１は、各権限グループがステップＳ１５０２で取得したテーブルに対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１５０５へ進み、アクセス権限を有する場合はステップＳ１５０３の繰り返しループを次に進める。
【０１２５】
（図１５：ステップＳ１５０５〜Ｓ１５０６）
これらのステップは、図１４のステップＳ１４０５〜Ｓ１４０６と同様である。
【０１２６】
図１６は、検索条件登録画面２１０上でユーザが入力した列に対するアクセス権限を有する権限グループを、クライアント端末２００が情報検索サーバ１００に対して照会したときの処理フローである。以下、図１６の各ステップについて説明する。
【０１２７】
（図１６：ステップＳ１６００）
クライアント端末２００のユーザは、検索条件登録画面２１０上で列名を入力する。クライアント端末２００は、その列に対するアクセス権限を有する権限グループを情報検索サーバ１００に照会する。ＣＰＵ１１０がその照会リクエストを受け取ると、本動作フローが開始される。なお本動作フローが開始される時点で、情報検索プログラム１２１は検索条件登録画面２１０を使用しているユーザＩＤを取得しているものとする。
【０１２８】
（図１６：ステップＳ１６０１）
本ステップは、図１４のステップＳ１４０１と同様である。
【０１２９】
（図１６：ステップＳ１６０２）
情報検索プログラム１２１は、ユーザが検索条件登録画面２１０の列入力欄２１５、検索条件入力欄２１６で入力した検索条件がアクセスする列名を取得する。データベースに対するＳＱＬ文を検索条件として入力した場合は、ＳＱＬ文中に記述されている列名を取得する。
【０１３０】
（図１６：ステップＳ１６０３）
本ステップは、図１４のステップＳ１４０３と同様である。
【０１３１】
（図１６：ステップＳ１６０４）
情報検索プログラム１２１は、各権限グループがステップＳ１６０２で取得した列に対してアクセス権限を有するか否かを、アクセス権限データ１２４に基づきチェックする。アクセス権限を有さない場合はステップＳ１６０５へ進み、アクセス権限を有する場合はステップＳ１６０３の繰り返しループを次に進める。
【０１３２】
（図１６：ステップＳ１６０５〜Ｓ１６０６）
これらのステップは、図１４のステップＳ１４０５〜Ｓ１４０６と同様である。
【０１３３】
以上、検索条件登録画面２１０上で入力された情報リソースに対してアクセス権限のない権限グループを検索条件登録画面２１０上で無効化する処理を説明した。なお、アクセス権限を有さない権限グループをクライアント端末２００に通知することに代えて、アクセス権限を有する権限グループを通知するようにしても、効果は同様である。
【０１３４】
以上の説明では、テーブルに対するアクセス権限がある場合はそのテーブルを有するデータベースに対するアクセス権限も有することを前提とした。一方、テーブルに対するアクセス権限は有するがそのテーブルを有するデータベースに対するアクセス権限を有さない場合があるときは、図１５においてまず図１４の処理フローを実行し、データベースに対するアクセス権限のない権限グループを無効化リストに登録した上で、図１５のステップＳ１５０１で無効化リストを初期化せずに同処理フローを実行する必要がある。図１６についても同様である。
【０１３５】
また、テーブルに対するアクセス権限は有するがそのテーブルを有するデータベースに対するアクセス権限を有さない場合があるときは、検索条件登録画面２１０上でテーブル名のみが入力されている時点では、図１５の処理フローにおいて、そのテーブル名を元にアクセス権限データ１２４の階層関係を上位に遡り、そのテーブルを有するデータベースに対してアクセス権限を有さない権限グループを無効化リストに登録する必要がある。図１６についても同様である。
【０１３６】
以上のように、本実施の形態３によれば、検索条件登録画面２１０上で検索条件を入力していく過程で、情報リソース（データベース、テーブル、列）に対してアクセス権限を有さない権限グループは公開先グループ選択欄２１７上で無効化される。これにより、情報リソースに対するアクセス権限のない権限グループに対して検索条件が公開されることがなくなるので、検索条件一覧出力画面２３０に表示される検索条件は、ユーザがアクセス権限を有する情報リソースに対してアクセスするもののみとなる。したがって、ユーザはアクセス権限を有する情報リソースに対してアクセスする検索条件のみを得ることになり、実施の形態１〜２と同様の効果を発揮することができる。
【０１３７】
また、本実施の形態３によれば、新規の検索条件を作成している途中で上記効果が発揮されるので、新規の検索条件を作成する作業効率を向上させる効果が期待できる。
【０１３８】
＜実施の形態４＞
以上の実施の形態１〜３では、検索条件を実行する前の時点でアクセス権限をチェックすることについて説明した。これにより、ユーザがアクセス権限を有する検索条件のみが実行されるものと想定される。ただし、万全を期すため、検索条件を実行する時点でもアクセス権限をチェックすることが望ましい。アクセス権限のチェック手法については、実施の形態１〜３または公知技術と同様であるため、説明は省略する。
【０１３９】
＜実施の形態５＞
以上の実施の形態１〜４において、権限グループ毎に検索条件を公開するか否かを指定する例を説明したが、その前提として、検索条件自体を公開するか否かを検索条件の作成者が選択できるようにしてもよい。
【０１４０】
この場合、例えば検索条件登録画面２１０において「公開可否」などの欄を設け、作成する検索条件を公開するか否かを選択できるようにする。また検索条件データ１２３において対応する「公開可否」列を設け、公開可否の設定を保持しておく。図７〜図９の処理フローでは、情報検索プログラム１２１は、公開先権限グループとユーザのアクセス権限をチェックすることに加えて、検索条件データ１２３の「公開可否」列をチェックし、公開することが許可されていない検索条件は表示候補リストから除外する必要がある。
【符号の説明】
【０１４１】
１００：情報検索サーバ、１１０：ＣＰＵ、１２０：記憶装置、１２１：情報検索プログラム、１２２：ユーザ情報、１２２１：ユーザＩＤ列、１２２２：ユーザ名列、１２２３：パスワード列、１２２４：権限グループ列、１２３：検索条件データ、１２３１：検索条件名列、１２３２：ユーザＩＤ列、１２３３：検索条件列、１２３４：公開先権限グループ列、１２３５：登録日時列、１２４：アクセス権限データ、２００：クライアント端末、２１０：検索条件登録画面、２１１：検索条件名入力欄、２１２：説明入力欄、２１３：情報リソース入力欄、２１４：テーブル入力欄、２１５：列入力欄、２１６：検索条件入力欄、２１７：公開先グループ選択欄、２１８：登録ボタン、２２０：検索条件データ検索画面、２３０：検索条件一覧出力画面、３００：情報リソース、４００：ネットワーク、１０００：情報検索システム。
【図１】
2011070406.tif 000003
【図２】
2011070406.tif 000004
【図３】
2011070406.tif 000005
【図４】
2011070406.tif 000006
【図５】
2011070406.tif 000007
【図６】
2011070406.tif 000008
【図７】
2011070406.tif 000009
【図８】
2011070406.tif 000010
【図９】
2011070406.tif 000011
【図１０】
2011070406.tif 000012
【図１１】
2011070406.tif 000013
【図１２】
2011070406.tif 000014
【図１３】
2011070406.tif 000015
【図１４】
2011070406.tif 000016
【図１５】
2011070406.tif 000017
【図１６】
2011070406.tif 000018