(57)【要約】【課題】  少ない管理工数でアクセス権の設定を可能にする。【解決手段】  サーバは、アクセスユーザ情報に応じて各テーブル及びビューを構成する列及びレコード単位で設定されたアクセス権に関するアクセス制御情報を保持するアクセス制御情報保持手段と、処理要求したユーザのアクセスユーザ情報に基づいて、前記データベース管理手段に対するデータベースアクセス実行文を生成する実行文生成手段と、生成されたデータベースアクセス実行文を実行して前記データベースにアクセスするデータベース管理手段と、前記データベース管理手段による前記データベースへのアクセス結果をクライアントへ返却する処理結果返却手段と、を有し、クライアントからのアクセス要求に応じて、各テーブル及びビューを構成する列及びレコード単位でユーザの役割に応じたアクセス権を設定可能とした。【選択図】  図１
2005258591.tif 000002
【特許請求の範囲】
【請求項１】
複数のテーブル及びビューが蓄積されたデータベースを備え、クライアントからのユーザのアクセス要求に応じて当該ユーザのアクセス権に従い前記データベースへアクセスするサーバを有し、
前記サーバは、アクセスユーザ情報に応じて各テーブル及びビューを構成する列及びレコード単位で設定されたアクセス権に関するアクセス制御情報を保持するアクセス制御情報保持手段と、処理要求したユーザのアクセスユーザ情報に基づいて、前記データベース管理手段に対するデータベースアクセス実行文を生成する実行文生成手段と、生成されたデータベースアクセス実行文を実行して前記データベースにアクセスするデータベース管理手段と、前記データベース管理手段による前記データベースへのアクセス結果をクライアントへ返却する処理結果返却手段と、を有し、
クライアントからのアクセス要求に応じて、各テーブル及びビューを構成する列及びレコード単位でユーザの役割に応じたアクセス権を設定可能とすることを特徴とするデータベースアクセス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特にユーザの会社組織における属性情報に応じた処理を効率的に実行可能なデータベースアクセス制御システムに関する。
【背景技術】
【０００２】
一般に、会社の基幹業務を担うデータベースは、多くのテーブルやビューで構成されている。そして、そのような会社の基幹業務におけるデータベースに対してデータ入力や入力データの承認、あるいは決裁といった操作を行う場合、例えば部長や課長などのような会社組織に基づく役割に応じ、アクセス可能なデータの範囲を制限する必要がある。
【０００３】
ここで、従来のデータベースアクセス制御システムにおいては、各ユーザ対応のビューを個別に定義し、そのビューに対するアクセス権限を設定している。しかし、上述のように各ユーザ対応のビューを個別に定義し、そのビューに対するアクセス権限を設定したデータベースアクセス制御システムにおいては、各ユーザ対応のビュー定義を数多く設定しなければならないため、設定したビュー定義の管理およびアクセス権の設定・保守に多くの工数を必要とするといった不都合な点があった。
【０００４】
そこで、上述のように個別にビュー定義を設定する代わりにユーザ別にアクセス権を設定することにより、ビューの設定・管理およびアクセス権の設定・保守にかかる工数を減らすことを可能とするものとして、例えば下記特許文献１に記載の方法がある。この方法は、ユーザ毎に設定されたアクセス権に従って、要求ユーザのアクセス可能なテーブルおよび列の情報がユーザ操作のマシン（クライアント）に送られ、そのクライアントマシン内でＳＱＬ文を構成してデータベースにアクセスを行うものである。またこの方法は、データウェアハウスに蓄積された変更されないデータをユーザが特別に参照するのに対応したものである。
【０００５】
また、このような方法の他に、組織構成を考慮したアクセス制御方法として、下記特許文献２に記載のものもある。下記特許文献２には、利用者が属する組織に関する組織情報を格納した認証書を発行すると共に、アプリケーションに、所属または役職に対して許可される権限を定義するアクセス管理情報を用意しておき、アプリケーション利用時には、利用者から送られてくる認証書に格納された利用者の組織情報に基づき、上記アクセス管理情報を参照して、当該利用者に関する所属・組織構成を考慮したアクセス制御を実行するアクセス制御方法が説明されている。
【特許文献１】特開２００３−６１９４号公報
【特許文献２】特開平１１−３３８８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載のデータベースアクセス制御システムによれば、ユーザがアクセス可能なテーブル、レコード、列情報を一旦クライアントマシンに送るオーバーヘッドが発生してしまうといった問題点がある。また、この特許文献１に記載の技術ではユーザ毎に個別にアクセス権の設定を行う必要があるため、アクセス権の設定に工数がかかるという問題点もある。
【０００７】
また、上記特許文献２に記載のアクセス制御方法では、各利用者に発行する認証書を管理・発行するための認証サーバがアプリケーションサーバとは別個に設けられていることから、全社的に統一した権限付与の管理には適しているといえるが、部署内で個別に役割（権限）設定を可能にするという点について考慮されていない。また、上記特許文献２に記載のアクセス制御方法では、アクセス制御する情報の単位がファイルまたはテーブルであり、データベースの列単位のアクセス制御まで考慮されていない。
【０００８】
本発明の目的は、アクセス可能であるテーブルや列などの情報をクライアントに送るオーバーヘッドを発生させることなく、また、ユーザ個別のビューを設定することもなく、少ない管理工数でアクセス権の設定を可能にするデータベースアクセス制御システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のデータベースアクセス制御システムは、複数のテーブル及びビューが蓄積されたデータベースを備え、クライアントからのユーザのアクセス要求に応じて当該ユーザのアクセス権に従い前記データベースへアクセスするサーバを有し、前記サーバは、アクセスユーザ情報に応じて各テーブル及びビューを構成する列及びレコード単位で設定されたアクセス権に関するアクセス制御情報を保持するアクセス制御情報保持手段と、処理要求したユーザのアクセスユーザ情報に基づいて、前記データベース管理手段に対するデータベースアクセス実行文を生成する実行文生成手段と、生成されたデータベースアクセス実行文を実行して前記データベースにアクセスするデータベース管理手段と、前記データベース管理手段による前記データベースへのアクセス結果をクライアントへ返却する処理結果返却手段と、を有し、クライアントからのアクセス要求に応じて、各テーブル及びビューを構成する列及びレコード単位でユーザの役割に応じたアクセス権を設定可能とした。
【発明の効果】
【００１０】
本発明によれば、特別な認証サーバを設けることなくアクセス制御情報をアプリケーションサーバ、またはデータベースサーバマシン内で処理でき、サーバマシンとクライアントマシンとの間で認証書やアクセス制御情報の授受を行う必要がなくなるとともに、要求処理種別およびアクセスするデータベースのテーブルおよび列単位のアクセス制御を、会社組織情報と組み合わせて容易に設定することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態について、図面を参照して説明する。ここで、図１は本発明のデータベースアクセス制御システムのシステム構成図である。
【００１２】
本発明のデータベースアクセス制御システムでは、例えばインターネット等のネットワークを用いる等して、サーバマシン１０１とクライアントマシン１０２との間でデータの送受信が可能となるように構成されている。以下、サーバマシン１０１とクライアントマシン１０２の構成および動作について説明する。
【００１３】
前記クライアントマシン１０２には、サーバマシン１０１内のデータベース１１１に対して各種のアクセス要求を行うためのプログラムである処理１〜処理ｎが予めインストールされている。
【００１４】
また、前記サーバマシン１０１は、各種テーブルおよび各種ビューが格納されたデータベース１１１と、前記データベース１１１の入出力を管理するデータベース管理システム（以下、ＤＢＭＳという）１１０と、クライアントマシン１０２から要求される各処理に対応するサーバ側の処理部１ＳＰ〜ｎＳＰ１０４と、各処理部１ＳＰ〜ｎＳＰ１０４からの要求によってＤＢＭＳ１１０に対するＳＱＬ文の生成と処理結果返却処理を共通的に行うＳＱＬ生成／結果返却部１０５と、アクセス権限テーブル１０６と、処理役割テーブル１０７と、選択条件テーブル１０８と、選択条件修飾テーブル１０９とから構成されている。そして、このサーバマシン１０１では、次のような処理動作が行われる。
【００１５】
まず、前記クライアントマシン１０２から各処理（例えば、図１中の処理ｎ１０３）を実行すると、前記クライアントマシン１０２の処理ｎに対応するサーバ１０１側の処理ｎＳＰ１０４が、各処理で共通のプロシジャであるＳＱＬ文生成／結果返却部１０５に、アクセスユーザ情報として氏名番号、所属、職位の各データと、アクセス先のテーブル名およびビュー名、アクセスを行う列情報およびテーブルやビューにおけるレコードの選択条件や順序条件を渡すように動作する。
【００１６】
次に、前記ＳＱＬ文生成／結果返却部１０５は、渡されたアクセスユーザ情報を用い、処理要求したユーザの役割（入力者、または承認者）を前記処理役割テーブル１０７から求めるとともにアクセス権限テーブル１０６からアクセス可能なテーブルおよびビューの列情報を取得し、ＳＱＬ文の列リスト部分を設定する。
【００１７】
また、アクセス対象のテーブルおよびビューのレコードについては、選択条件テーブル１０８および選択条件修飾テーブル１０９を用いて、アクセス可能なレコードの選択条件のＳＱＬ文を生成し、処理ｎＳＰ１０４から渡された選択条件に追加し、順序条件などと合わせてアクセス権に応じたＳＱＬ文を生成し、ＤＢＭＳ１１０へ渡しデータベース１１１へのアクセスを行う。そして、その結果をＳＱＬ文生成／結果返却部１０５が受け取ることとなる。
【００１８】
そして、このＳＱＬ文生成／結果返却部１０５は、受け取った実行結果を処理ｎＳＰ１０４に戻し、処理ｎＳＰ１０４は、戻された実行結果を使って演算を行い、その結果をクライアントマシン１０２の処理ｎ１０３に戻す。
【００１９】
また、サーバマシン１０１内に格納されている各種テーブルの構成について、図２及び図３を参照して以下説明する。図２は、選択条件テーブル１０８と選択条件修飾テーブル１０９の一例を示すものであり、図３は、処理役割テーブル１０７とアクセス権限テーブル１０６の一例を示すものである。
【００２０】
前記選択条件テーブル１０８は、アクセス制御を行うテーブルおよびビュー情報を格納するテーブル／ビュー名列２０１と、そのテーブル／ビューに対してアクセスを行うＳＱＬに追加する選択条件式の定義情報を格納する選択条件式列２０２とを有している。
【００２１】
また、前記選択条件修飾テーブル１０９は、選択条件テーブルの選択条件式列２０２に格納された’％％’で囲まれた文字列（修飾詞と称する）を格納する修飾詞列２０３と、その修飾詞を置き換える値式を格納する値式列２０４と、を有している。尚、この選択条件式２０２に格納されるアクセスを行うＳＱＬに追加する選択条件式内の’％％’で囲まれた文字列（例えば、％所属％）は、選択条件修飾テーブル１０９内に定義された値式（＜所属値を返却するＤＢＭＳ定義関数＞）で置き換えられて選択条件を生成し、処理から渡された選択条件に追加するものである。
【００２２】
また、前記処理役割テーブル１０７は、業務処理を特定する情報を格納する処理列３０１、所属情報を格納する所属列３０２、割当てられる役割を格納する役割列３０３、および役割を満たすための条件を格納する条件列３０４を有している。そして、前記ＳＱＬ文生成／結果返却部１０５は、渡されたアクセスユーザ情報の氏名番号、職位を使い、条件列３０４を評価して、アクセスユーザに割当てる役割（入力者、承認者、決裁者等）を求めるようになっている。
【００２３】
また、前記アクセス権限テーブル１０６は、アクセス制限を行うテーブル／ビューを定義する情報を格納するテーブル／ビュー名列３０５、列名列３０６、業務処理列３０７、アクセスを許可するユーザの所属を規定する所属列３０８、処理役割テーブルで割当てられた役割に対応する役割列３０９、および、当該テーブル／ビューに許可するアクセス種別（参照、更新、削除、属性変更）を４桁の数値桁位置に割当て、各桁について「０」（不許可）、「１」（許可）の値で定義するアクセス権限列３１０を有している。
【００２４】
尚、アクセス権限の値が‘００００’はアクセス権限なしを示し、‘１０００’は参照のみアクセス可を示すものとする。よって、図３のアクセス権限テーブルにおいて、１行目のアクセス権限＝‘００００’は、「入力者Ａ」は当該処理ｎを実行できるが当該列Ｃｏｌ１のデータについては参照不可を定義した状態を示し、２行目のアクセス権限＝‘１０００’は、１行目と同じ「入力者Ａ」であっても当該列Ｃｏｌ２のデータについては参照可を定義した状態を示すものである。また同様に、１行目のアクセス権限も２行目のアクセス権限も‘１０００’であることから、当該処理ｎを「入力者Ｂ」については、当該列Ｃｏｌ１及び列Ｃｏｌ２のデータについては参照可を定義した状態を示すものである。さらに、「承認者Ｃ」については‘１１１１’であることから、参照、更新、削除、属性変更の全ての処理が可能であることが定義されている。
【００２５】
そして、上記構成の処理役割テーブル１０７を用いて、アクセスユーザに対して業務処理別に割当てられた役割を参照し、その役割に基づいて、アクセス権限テーブル１０６を用いて、アクセス先のテーブルおよびビューの列に対するアクセス権限を得るようになっている。
【００２６】
以上のように構成されたデータベースアクセス制御システムのＳＱＬ文生成／結果返却部１０５における処理手順を、図４を参照して詳細に説明する。図４は、本実施形態に係るデータベースアクセス制御システムのＳＱＬ文生成／結果返却部１０５の処理手順を示すフローチャートである。
【００２７】
まず、要求元の処理名およびアクセスユーザ情報として氏名番号、所属、職位の各データを取得し（４０１）、続けて、処理役割テーブル１０７から要求元の処理に対応するアクセスユーザ別の役割を取得する（４０２）。さらに、アクセス権限テーブル１０６から要求元の処理に応じたアクセスユーザ別の各列に対してのアクセス権情報を取得する（４０３）。こうして各データを取得後、アクセス権のない列の有無を判断し（４０４）、アクセス権限がない列が存在し、且つ要求元の処理が参照だけでない場合（４０５）には、「アクセス権限なし」メッセージを要求元の業務処理対応のプロシジャに戻して処理を終了する。また、このとき要求元の処理が参照（ＳＥＬＥＣＴ）だけの場合には、ＤＢＭＳ１１０へ要求するＳＱＬ文からアクセス権限のない列を除外する（４０６）。そして、処理対象テーブルおよびビューに対して、選択条件テーブル１０８および選択条件修飾テーブル１０９から渡された選択条件に追加する選択条件を求め（４０８）、渡された選択条件にａｎｄ接続して追加してアクセス対象のレコードの制限を行う（４０９）。
【００２８】
こうして生成したＳＱＬ文をＤＢＭＳ１１０に対して発行し、その実行結果を要求元の業務処理対応のプロシジャに返却し（４１０）、ＳＱＬ文生成／結果返却部１０５の処理動作を終了する。
【００２９】
尚、本実施形態では、ＳＱＬ文生成／結果返却部１０５において前記データベース管理システムに対するＳＱＬ文の生成処理と、処理結果の返却処理とを共通的に行うようにしているが、各処理を個別に行うような構成としても良い。例えば、前記ＳＱＬ文生成／結果返却部１０５に替えて、ＳＱＬ文の生成処理を行うＳＱＬ文生成手段と、処理結果の返却処理を行う処理結果返却手段とを別個に設けても良い。
【００３０】
また、処理役割テーブル１０７で定義される会社組織におけるユーザの役割は、ユーザ個人を静的に既定するものではないので、異動などが発生した場合、ユーザ別に役割を割当て直す必要が軽減され、アクセス権の設定に要する工数を軽減できる。
【００３１】
さらに、人事情報データベースと連携することにより、会社組織に則った役割を自動的に付与する拡張も行うことができる。
【図面の簡単な説明】
【００３２】
【図１】本発明のデータベースアクセス制御システムのシステム構成図である。
【図２】図１のシステムにおける選択条件テーブルおよび選択条件修飾テーブルの構成の一例を示す図である。
【図３】図１のシステムにおける処理役割テーブルおよびアクセス権限テーブルの構成の一例を示す図である。
【図４】図１のシステムにおけるＳＱＬ文生成／結果返却部での処理手順を示すフローチャートである。
【符号の説明】
【００３３】
１０１…サーバマシン
１０２…クライアントマシン
１０３…処理ｎ（プログラム）
１０４…処理ｎＳＰ
１０５…ＳＱＬ文生成／結果返却部
１０６…アクセス権限テーブル
１０７…処理役割テーブル
１０８…選択条件テーブル
１０９…選択条件修飾テーブル
１１０…ＤＢＭＳ
１１１…データベース
【図１】
2005258591.tif 000003
【図２】
2005258591.tif 000004
【図３】
2005258591.tif 000005
【図４】
2005258591.tif 000006