(57)【特許請求の範囲】
【請求項１】
複数の項目を比較対象として特定し、それらの項目同士の実データをどのような条件で比較するかを示す比較式を定義する定義情報記憶手段と、
複数項目分のデータアクセスが一括要求された際に、前記定義情報によって特定された複数項目に対応する実データを読み出してそれを前記比較式に代入することにより、その比較式の条件を満足するか否かを判別し、この判別結果に応じてアクセス制限項目を決定する決定手段と、
この決定手段によって決定された制限項目に対してそのアクセスを制限するアクセス制御手段とを具備したことを特徴とするアクセス制御装置。
【請求項２】
前記定義情報は、比較対象の複数項目を特定するための項目指定情報を列記して成ると共に、それらの項目同士の実データをどのような条件で比較するかを示す比較演算子を含む比較式から成る定義情報であることを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
前記定義情報は、比較対象の複数項目を特定するための項目指定情報を列記して成ると共に複数の項目を論理演算子で結合した論理式の中に、比較演算子を含めた定義情報であることを特徴とする請求項１記載のアクセス制御装置。
【請求項４】
前記定義情報がアクセスを制限する種類毎に複数記憶されている場合に、この複数の定義情報の関係において前記決定手段はアクセス制限項目を決定するようにしたことを特徴とする請求項１記載のアクセス制御装置。
【請求項５】
前記定義情報は入力操作によって任意に設定された情報であることを特徴とする請求項１記載のアクセス制御装置。
【請求項６】
前記アクセス制御手段は、前記決定手段によって決定されたアクセス制限項目に対してそのデータの出力を禁止するようにしたことを特徴とする請求項１記載のアクセス制御装置。
【請求項７】
コンピュータによって読み取られるプログラムコードを有する記録媒体であって、
複数項目分のデータアクセスが一括要求された際に、複数の項目を比較対象として特定し、それらの項目同士の実データをどのような条件で比較するかを示す比較式を定義する定義情報を参照し、この定義情報によって特定された複数項目に対応する実データを読み出してそれを前記比較式に代入することにより、その比較式の条件を満足するか否かを判別し、この判別結果に応じてアクセス制限項目を決定する機能と、
決定された制限項目に対してそのアクセスを制限する機能を実現するためのプログラムコードを有する記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、項目アクセスを制限するアクセス制御装置およびそのプログラム記録媒体に関する。
【０００２】
【従来の技術】
従来、データベース管理システム（ＤＢＭＳ）においては、データベースへのアクセス権情報をデータベース言語を用いて設定したり、上位のアプリケーション層自体に設定するようにしているが、いずれの設定もユーザ属性等に応じて項目単位毎に行うようにしていた。例えば、給与台帳ファイルのように機密性の高いファイルにおいて、特に権限のない社員に対しては、氏名、性別等の一般項目であれば自由にそのアクセスを許可しているが、基本給、資格手当等の特定項目についてはそのアクセスを制限することによってセキュリティを維持するようにしている。
【０００３】
【発明が解決しようとする課題】
このようにアクセス制限は、項目単位で行われるため、項目毎にアクセス可否を制御することができるが、例えば「基本給」、「資格手当」、「役職手当」等の特定項目については、一律にアクセス可否となってしまうため、柔軟性に欠けるという問題があった。
ところで、特定項目のデータ値はレコード毎に変化する変動データであり、それを一律にアクセス不可とするよりも、項目同士の実データがどのような関係にあるかに応じて項目アクセスを制限した方が、業務内容やユーザの権限にマッチしたものとなり、また、機密性が損われることもなく、実情に即したものとなる。
この発明の課題は、アプリケーション自体にアクセス制限に関する複雑なロジックを組み込まなくても、簡単な定義情報を記述しておくだけで、複数項目の実データの関連において項目アクセスを制限できるようにすることである。
【０００４】
【課題を解決するための手段】
この発明の手段は次の通りである。
請求項１記載の発明は、複数の項目を比較対象として特定し、それらの項目同士の実データをどのような条件で比較するかを示す比較式を定義する定義情報記憶手段と、複数項目分のデータアクセスが一括要求された際に、前記定義情報によって特定された複数項目に対応する実データを読み出してそれを前記比較式に代入することにより、その比較式の条件を満足するか否かを判別し、この判別結果に応じてアクセス制限項目を決定する決定手段と、この決定手段によって決定された制限項目に対してそのアクセスを制限するアクセス制御手段とを具備するものである。
なお、この発明は次のようなものであってもよい。
（１）、前記定義情報は、比較対象の複数項目を特定するための項目指定情報を列記して成ると共に、それらの項目同士の実データをどのような条件で比較するかを示す比較演算子を含む比較式から成る定義情報である。
（２）、前記定義情報は、比較対象の複数項目を特定するための項目指定情報を列記して成ると共に複数の項目を論理演算子で結合した論理式の中に、比較演算子を含めた定義情報である。
（３）、前記定義情報がアクセスを制限する種類毎に複数記憶されている場合に、この複数の定義情報の関係において前記決定手段はアクセス制限項目を決定する。
（４）、前記定義情報は入力操作によって任意に設定された情報である。
（５）、前記アクセス制御手段は、前記決定手段によって決定されたアクセス制限項目に対してそのデータの出力を禁止する。
請求項１記載の発明においては、複数の項目を比較対象として特定し、それらの項目同士の実データをどのような条件で比較するかを示す比較式を定義する定義情報が記憶されている場合において、複数項目分のデータアクセスが要求された際に、前記定義情報によって特定された複数項目に対応する実データを読み出してそれを前記比較式に代入することにより、その比較式の条件を満たすか否かを判別し、この判別結果に応じて制限項目を決定し、決定された制限項目に対してそのアクセスを制御する。
したがって、アプリケーション自体にアクセス制限に関する複雑なロジックを組み込まなくても、簡単な定義情報を記述しておくだけで、複数項目の実データの関連において項目アクセスを制限することができる。
【０００５】
【発明の実施の形態】
以下、図１〜図１１を参照してこの発明の一実施形態を説明する。
図１はデータ処理装置の全体構成を示したブロック図である。
ＣＰＵ１は各種プログラムにしたがってこのデータ処理装置の全体動作を制御する中央演算処理装置である。記憶装置２はデータベース管理システムや各種アプリケーションプログラム、データベース、文字フォントデータ等が予め格納されている記憶媒体３やその駆動系を有している。この記憶媒体３は固定的に設けたもの、もしくは着脱自在に装着可能なものであり、フロッピーディスク、ハードディスク、光ディスク、ＲＡＭカード等の磁気的・光学的記憶媒体、半導体メモリによって構成されている。また、記憶媒体３内のプログラムやデータは、必要に応じてＣＰＵ１の制御により、ＲＡＭ４にロードされる。更に、ＣＰＵ１は通信回線等を介して他の機器側から送信されて来たプログラム、データを受信して記憶媒体３に格納したり、他の機器側に設けられている記憶媒体に格納されているプログラム、データを通信回線等を介して使用することもできる。また、ＣＰＵ１にはその入出力周辺デバイスである入力装置５、表示装置６、印刷装置７がバスラインを介して接続されており、入出力プログラムにしたがってＣＰＵ１はそれらの動作を制御する。
入力装置５は文字列データ等を入力したり、各種コマンドを入力するキーボード、マウス等のポインティングデバイスを有している。ここで、データベース作成時に入力装置５から文字列データが入力されると、表示装置６のテキスト画面に表示出力されると共に、かな漢字変換によって確定された確定文字列は、記憶装置２内に格納される。
【０００６】
図２（Ａ）は記憶装置２内に格納されている給与台帳データベース２−１、権限情報定義ファイル２−２を示し、給与台帳データベース２−１内の各レコードは図１１（Ａ）に示すように各社員毎に「社員番号」、「氏名」、「性別」、「基本給」、「資格手当」、「役職手当」の各項目から成る。権限情報定義ファイル２−２は例えば、給与台帳データベース２−１を構成するレコード内において、複数の項目を特定し、それらの項目同士の実データをどのような条件で比較するかを示す比較式を項目アクセスの制限定義として記憶するもので、図３はその定義例を示している。すなわち、図３（Ａ）はこの制限定義の記述形式を示し、どのような種類のアクセスを制限するかを示す権限種類毎に、論理式を記述した構成となっている。図３（Ｂ）は「権限種類」、「論理式」の内容を説明するための図で、「権限種類」は“Ｒ不可（読み込み不可）”、“Ｗ不可（書き込み不可）”などで表わされる。「論理式」は論理演算子“ＡＮＤ”、“ＯＲ”と、比較演算子“＝”、“＞”、“＜”、“＞＝”、“＜＝”、“！＝”とを用いてアクセス制限の対象項目名を結合したもので、アクセス制限の比較対象となる複数項目を特定し、それらの項目同士の実データをどのような条件で比較するかを定義する。
【０００７】
図３（Ｃ）は制限定義の具体的な記述例を示し、権限種類“Ｒ不可”、論理式（役職手当＞資格手当）ＡＮＤ（性別＝“男”）の制限定義である。ここで、複数項目分のデータアクセスの要求があった際に、この論理式に含まれている各項目の実データを給与台帳データベース２−１から読み出し、そのデータ値を論理式の対応項目に代入することによって論理式全体の真偽を評価し、その評価結果が“真”であれば、論理式中の各項目はアクセス制限の対象となり、“偽”であれば、項目アクセスの対象外となる。したがって、図３（Ｃ）の例では役職手当＞資格手当であり、かつ性別が“男”であるレコードは、論理式の条件を満すため、アクセス要求された対象項目の中に、論理式によって特定された項目が含まれていれば、その項目のアクセスは制限されるが、役職手当が資格手当以下であったり、性別が“女”のレコードは、項目アクセスの対象外となり、アクセス要求された項目の全てのアクセスが許可される。
このような制限定義を入力装置５から入力することによって権限情報定義ファイル２−２に任意の制限定義を設定することができる。この場合、その設定は表形式で簡単な記述で足りるため、プログラム等の専門的な知識を有しない者であってもその設定を行うことができる。また、制限定義は１種類に限らず、権限種類毎に複数の制限定義を設定することができる。なお、上述した例は権限情報定義ファイル２−２を給与台帳データベース２−１に対応付けた場合を示したが、制限定義はデータベース毎に存在し、データベースをオープンするときにそれに対応する制限定義が権限情報定義ファイル２−２から読み込まれる。
【０００８】
図２（Ｂ）はＲＡＭ４に割り当てられている各種のメモリ領域を示している。定義ポインタ４−１は権限情報定義ファイル２−２内に設定されている制限定義の読み出しを指定するもので、権限種類毎に複数の制限定義が設定されている場合に、この定義ポインタ４−１の値に基づいて権限情報定義ファイル２−２内の制限定義は順次指定される。また定義項目数カウンタ４−２は１つの制限定義（論理式中）に記述されている項目名の数をカウントし、更に、対象項目数カウンタ４−３は複数項目分のデータアクセスが要求された際に、要求された対象項目の数をカウントする。ワークメモリ４−４は処理の中間結果等を一時記憶するその他のワーク域である。
【０００９】
次に、このデータ処理装置における項目アクセス制御を図４〜図９に示すフローチャートにしたがって説明する。ここで、これらのフローチャートに記述されている各機能を実現するためのプログラムは、読み取り可能なプログラムコードの形態で記憶媒体３に格納されており、ＣＰＵ１はこのプログラムコードにしたがった動作を逐次実行する。
図４はデータベースをアクセスする前にそれに先立って実行開始される制限定義読み込み処理を示したフローチャートである。権限情報定義ファイル２−２内の制限定義はデータベース毎に存在しており、任意のデータベースをオープンする時、制限定義読み込みルーチンがコールされ、それに対応する制限定義を権限情報定義ファイル２−２から読み込み、それを所定のデータ構造通りにフォーマット化してワークメモリ４−４上に展開する。
【００１０】
すなわち、制限定義のデータ構造を初期化（フォーマット化）したのち、権限情報定義ファイル２−２から制限定義を全て読み込み、それをデータ構造通りに展開してゆく（ステップＡ１〜Ａ３）。図１０（Ｂ）はこの場合のデータ構造を示し、そのフォーマット上には「定義数」をヘッダーとして定義毎に「定義制限種類」、「論理式」、「定義項目数」、「定義項目名」、「項目実データ値」の各展開エリアが割り当てられている。ＣＰＵ１は権限情報定義ファイル２−２から全ての制限定義を読み込んで「定義数」を求めると共に、定義毎に「権限種類」、「論理式」を抽出して対応する展開エリアにフォーマット通りに格納してゆく。そして、ＣＰＵ１は定義ポインタ４−１に初期値「１」を代入し（ステップＡ４）、その値が「定義数」を越えたかを調べるが（ステップＡ５）、いま、定義ポインタ４−１の値は「１」であるからその値で示されるフォーマット上のエリア「論理式」から全ての項目名を抽出し、それを「定義項目名」へコピーすると共に、定義項目数を求めてそれを「定義項目数」へセットする（ステップＡ６）、そして定義ポインタ４−１の値を更新し（ステップＡ７）、その値が「定義数」を越えるまでステップＡ６、Ａ７が繰り返される。
【００１１】
図１１は全体動作を概念的に示した動作概念図である。なお、図中▲１▼〜▲８▼は動作の流れを示し、その順序にしたがってデータは図示の如く順次処理される。ここで、給与台帳データベース２−１に対応する権限情報定義ファイル２−２内の制限定義が図１１（Ｂ）に示すものとすると、その内容は所定のデータ構造通りにフォーマット化されてメモリ上に展開される（図１１▲１▼参照）。この場合、そのフォーマット上に割り当てられている各項目毎の「データ値」は、給与台帳データベース２−１から読み出された１レコード内から「定義項目名」毎に抽出された実データ値が書き込まれる領域で、この制限定義読み込み処理時には項目実データ値の書き込みは行われない。
【００１２】
図５はユーザからアクセス要求が有った際の動作を示したフローチャートである。ここで、ユーザからアクセス要求があった際に、アプリケーションＡＰ（図１１参照）は、レコードの読み込みルーチンやレコードの書き込みルーチンをコールするが、それに先立ってアクセス要求された対象項目の全てをアクセス対象項目の一覧として設定する（図１１▲２▼参照）。すなわち、アクセス対象項目の一覧を所定のデータ構造通りにフォーマット化してワークメモリ４−４上に展開する（ステップＢ１）。図９（Ａ）はこの項目一覧のデータ構造を示し、そのフォーマットは「対象項目数」、「対象項目名」、「対象権限種類」から成り、アクセス要求のあった対象項目毎にその項目名が抽出されたフォーマット上のエリア「対象項目名」に設定されると共に、その項目数が求められて「対象項目数」に設定される。図１１（Ｃ）は、給与台帳データベース２−１内のレコードのうちアクセス対象の項目として設定された項目一覧の具体例を示し、この項目一覧が図９（Ａ）に示すデータ構造にフォーマット化される。
【００１３】
次に、給与台帳データベース２−１の先頭から１レコード分のデータを読み込んだのち、権限判断処理ルーチンをコールする。この権限判断処理（ステップＢ３）は、アプリケーションＡＰから渡されたアクセス対象の項目一覧から対象項目を取得すると共に給与台帳データベース２−１から読み出されたレコードを取得し、制限定義を参照しながら権限判断を行い、その判断結果をアクセス権限情報としてアプリケーションＡＰ側へ引き渡す。なお、図１０（Ａ）に示すようにアクセス対象の項目一覧をフォーマット化することによって確保された「対象権限種類」は、アクセス対象項目毎に判断されたアクセス権限の判断結果が格納される領域であり、「対象項目数」と共に、「対象権限種類」と「対象項目名」とを対応付けた情報がアクセス権限情報としてアプリケーションＡＰ側に引き渡される。つまり、アクセス対象の項目一覧をフォーマット化する際に、「対象権限種類」を「対象項目名」毎に対応して確保しておくことにより、それらの対応関係がそのままアクセス権限情報となる。
【００１４】
図６はこの権限判断処理を示したフローチャートである。先ず、アクセス対象の項目一覧から対象項目を取得すると共に、給与台帳データベース２−１から読み出された１レコード分のデータを取得する（ステップＣ１）。そして、この対象項目一覧のフォーマット上に割り当てられている全ての「対象項目名」に対応する「対象権限種類」として“ＲＷ可”を設定する初期化処理を行い、各項目に対して全ての権限を許可しておく（ステップＣ２）。図１１中「※１」はアクセス対象一覧における権限種類を初期化した状態を示し、各項目には対象権限種類として“ＲＷ可”がそれぞれセットされる。ここで、権限判断処理ルーチンは制限定義を１定義毎に解析する１定義毎のグループとなっており、１番目の定義から全定義分ループするために、先ず、定義ポインタ４−１に初期値「１」を代入する（ステップＣ３）。そして、取得したレコードの項目データを定義ポインタ４−１の値で示される制限定義の対応する項目の「データ値」にセットする（ステップＣ４）。この場合、制限定義には図１１に示すように定義項目名として「役職手当」、「資格手当」、「性別」が定義されているので、各項目に対応する項目実データが今回取得したレコード（先頭レコード）から抽出され、役職手当「３００，０００」、資格手当「２００，０００」、性別「男」が対応する「データ値」にセットされる。次に、定義ポインタ４−１で示される制限定義から「論理式」を取得し（ステップＣ５）、レコードから読み込んだデータ値を、取得した論理式中の各項目の値として代入し、論理式全体を評価する（ステップＣ６）。この場合、役職手当「３００，０００」＞資格手当「２００，０００」であり、かつ性別は“男”であるので、論理式全体の真偽値は“真”となり（ステップＣ７）、権限セット処理に進む（ステップＣ８）。
【００１５】
図７はこの場合の制限セット処理を示したフローチャートである。先ず、アクセス対象項目の項目数をカウントする対象項目数カウンタ４−３に初期値「１」を代入し（ステップＤ１）、その値は項目一覧の「対象項目数」以下かを調べる（ステップＤ２）。いま、「対象項目数」は「３」であるからステップＤ３に進み、今度は制限定義の項目数をカウントする定義項目数カウンタ４−２に初期値「１」を代入し、定義ポインタ４−１で示される制限定義の「定義項目数」以下かを調べる（ステップＤ４）。この場合、定義ポインタ４−１の値は「１」で、それに対応する「定義項目数」は「３」であるから、ステップＤ５に進み、定義項目数カウンタ４−２で指示される「定義項目名」と対象項目数カウンタ４−３で指定される「対象項目名」とを比較し、両者は同じ項目名かを調べる。この場合、定義項目数カウンタ４−２、対象項目数カウンタ４−３の値は共に「１」で定義項目名は“役職手当”、対象項目名は“社員番号”であり、両者の不一致が判断されるため、対象項目数カウンタ４−３の値を固定したまま定義項目数カウンタ４−２の値に「１」を加算してその更新を行う（ステップＤ７）。そして、ステップＤ４に戻るが、この場合「定義項目数」を越えていないので、ステップＤ５に進む。以下、対象項目数カウンタ４−３の値を固定したまま、つまり着目している対象項目名を変えずに、定義項目数カウンタ４−２の値を更新しながら定義項目名を順次指定して項目名の比較を行う。この場合、着目している対象項目名は定義項目名に含まれていないので、全ての定義項目名を指定し終った際に、定義項目数カウンタ４−２の値は「定義項目数」を越えるため、今度は対象項目数カウンタ４−３の値に「１」を加算してその値を更新し（ステップＤ８）、その値が「対象項目名数」以下であれば（ステップＤ２）、定義項目数カウンタ４−２を初期化する（ステップＤ３）。これによって、対象項目名は次の項目に移されると共に、定義項目名は先頭に戻される。以下、同様の動作が繰り返されることにより、対象項目名として「資格手当」を着目したとき、２番目の定義項目名が指定されると、ステップＤ５で項目名の一致が検出されるため、項目一覧の当該項目に対応する「対象権限種類」として「定義権限種類」の内容がそのままコピーされる（ステップＤ６）。以下、最終の対象項目名まで全て着目し終るまで上述の動作が繰り返される。これによって「対象項目名」と「対象権限種類」との対応関係は、図１１（Ｄ）に示す如くとなり、アクセス対象項目のうち、「社員番号」、「氏名」、「基本給」については、初期化された権限種類“ＲＷ可”のままであるが、「資格手当」、「役職手当」については定義制限種類がコピーされるため、共に“Ｒ不可”となる。
【００１６】
このような権限セット処理が終ると、図６のステップＣ９に進み、定義ポインタ４−１の値に「１」を加算してその値を更新し、その値は「定義数」以下かを調べる（ステップＣ１０）。ここで、「定義数」以下であればステップＣ５に戻り、次の制限定義を指定してその論理式を取得し、上述と同様にレコードデータ値を論理式中の各項目に代入して論理式の評価を行うが、いま定義数は「１」であるから、この時点で権限判断処理は終了し、図１１（Ｄ）に示すアクセス権限情報がアプリケーションＡＰに渡される。すると、アプリケーションＡＰはこのアクセス権限情報を取得すると共に、アクセス要求された種別を判別し（図５のステップＢ４）、リードアクセスであればレコード読み込みルーチンをコールする。これによってアクセス対象項目が“Ｒ不可”でないことを確認しながらその項目データを順次表示するレコード読み込み処理が行われる（図１１の▲７▼、▲８▼参照）。また、ライトアクセスであれば、レコードの書き込みルーチンをコールする。これによってアクセス対象項目が“Ｗ不可”でないことを確認しながら項目データを書き換えるレコード書き込み処理が行われる。
【００１７】
図８はレコード読み込み処理を示したフローチャートであり、先ず、対象項目数カウンタ４−３に初期値「１」を代入しておく（ステップＥ１）。そして、権限情報の中からこの対象項目数カウンタ４−３の値で示される項目の「対象権限種類」を抽出し、それが“Ｒ不可”であれば（ステップＥ２）、読み込みレコード内の該当項目に“＊＊＊＊”を挿入し、そのデータをマスクする（ステップＥ３）。次に、対象項目数カウンタ４−３の値に「１」を加算するインクリメント処理を行い（ステップＥ４）、その値が制限情報内の「対象項目数」以下であれば（ステップＥ５）、対象項目数分の処理が終るまでステップＥ２に戻り、上述の動作を対象項目毎に繰り返す。これによって対象項目数分の処理が終ると、読み込みレコードの中からアクセス対象項目を抽出してそれを表示出力させる（ステップＥ６）。この結果、１レコード目の表示内容は図１１（Ｅ）に示すように、「資格手当」、「役職手当」の双方がアスタリスク表示となり、そのデータ値はマスクされる。
【００１８】
このようにして１レコード分の読み込み処理が終ると、図５のステップＢ７に進み、給与台帳データベース２−１内に次のレコードがあれば、そのレコードを読み込み（ステップＢ２）、権限判断処理が行われる（ステップＢ３）。この場合、２番目のレコードが読み出されるので、この２番目のレコードも１番目のレコードと同様に、制限定義（役職手当＞資格手当ａｎｄ性別＝“男”）を満足するため、その論理式の評価結果は“真”となる。このため図７の権限セット処理に移り、「資格手当」、「役職手当」の対象権限種類には、定義権限種類の“Ｒ不可”がコピーされる。したがって、この２番目のレコード読み込み後におけるアクセス権限情報は、図１１の※２に示す如くとなり、このアクセス権限情報に基づいてレコード読み込み処理が実行される（図５のステップＢ５）、この２番目のレコードの表示内容は、１番目と同様に「資格手当」、「役職手当」の双方がアスタリスク表示となる。次に、３番目のレコードが読み込まれるが、この場合、３番目のレコードは、資格手当≧役職手当であるため、論理式の評価結果は“偽”となり、権限セット処理は実行されず、アクセス権限情報の各項目に対応する対象権限種類は、初期設定された“ＲＷ可”のままとなる（図１１の※３参照）。次の４番目のレコードも３番目のレコードと同様であり、また、５番目のレコードは役職手当＞資格手当となるが、性別＝“女”であるため、論理式の評価結果は、“偽”となる。このように図１１で例示した給与台帳データベース２−１内の３番目以降のレコードを読み込んだ際のアクセス権限情報は、全ての項目が“ＲＷ可”となるためその表示内容は図１１に示すように何んらアクセス制限されることなく、全ての項目が表示される。
【００１９】
図９はレコード書き込み処理（図５のステップＢ６）を詳述したフローチャートである。先ず、給与台帳データベース２−１内の先頭レコードを書き換え対象として着目した状態において、対象項目数カウンタ４−３に初期値「１」を代入し（ステップＦ１）、権限情報の中から対象項目数カウンタ４−３の値で示される項目の「対象権限種類」を抽出し、“Ｗ可”が含まれていれば（ステップＦ２）、それを条件に着目レコード内の該当項目に対するデータの書き換えを許可するが（ステップＦ３）、“Ｗ可”が含まれていなければ、項目データの書き換えは禁止される。そして、対象項目数カウンタ４−３の値に「１」を加算するインクリメント処理を行い（ステップＦ４）、その値が「対象項目数」以下であれば（ステップＦ５）、対象項目数分の処理が終るまでステップＦ２に戻り、上述の動作を繰り返す。そして、対象項目分の処理が終るまでステップＦ２に戻り、上述の動作を繰り返す。
【００２０】
以上のようにこの実施形態においては、１レコード内の複数項目を任意に特定し、それらの項目同士の実データをどのような条件で比較するかを示す論理式を定義する制限定義が権限情報定義ファイル２−２に設定されている場合において、複数項目分のデータアクセスが要求された際に、制限定義によって特定された複数項目に対応する実データを論理式に代入することにより、その論理式の条件を満足するか否かを判別し、この判別結果に応じてアクセス制限項目を決定し、決定されたアクセス制限項目に対してそのアクセスを制御するようにしたから、アプリケーション自体にアクセス制限に関する複雑なロジックを組み込まなくても、簡単な定義情報を記述しておくだけで、複数項目の実データの関連において項目アクセスを制限することができる。この場合、複数項目を特定する項目名に論理演算子、比較演算子を組み合せで制限定義を設定することができるので、その設定を容易に行うことが可能となる他、多様なアクセス制限を定義することが可能となる。ここで、論理式として複数項目を“ＡＮＤ”で結合した場合、そのＡＮＤ条件が成立したときのみ項目アクセスが制限されるのであって、ＡＮＤ条件が成立しなければ、いずれの項目もアクセスすることができる。また、どのような種類のアクセスを制限するかを示す権限種類毎に、複数の制限定義を設定することができるので、複雑なアクセス制限であっても簡単な記述で足りるため、その設定が一層容易なものとなる。
【００２１】
なお、上述した一実施形態は、論理演算子として“ＯＲ”、“ＡＮＤ”を例に挙げたが、“ＮＯＴ”を用いてもよい。この場合、論理演算子で結合される項目名は、制限対象を除く項目名とすればよい。また、制限対象を項目名で特定するようにしたが、項目位置を特定するデータであってもよい。また、制限定義は論理式の中に算術演算子や関数を含めてもよい。制限定義はユーザ毎、ユーザレベル毎、ユーザが属するグループ毎に設定することもできる。
更に、上述した一実施形態は、１レコード内に存在する項目としたが、異なるレコード間、ファイル間、データベース間の項目同士の関連を定義するものであってもよい。この場合、「ファイル名・項目名」、「データベース名・項目名」のような表現形式で定義すればよい。また、権限の種類としては“Ｒ”、“Ｗ”に限らず、データベース管理システムが一般的に使用しているＳｅｌｅｃｔ（読み込み）、Ｉｎｓｅｒｔ（追加）、Ｕｐｄａｔｅ（訂正）などであってもよい。
【００２２】
【発明の効果】
この発明によれば、アプリケーション自体にアクセス制限に関する複雑なロジックを組み込まなくても、簡単な定義情報を記述しておくだけで、複数項目の実データの関連において項目アクセスを制限することができるので、実情に即したセキュリティ維持が可能となると共に、汎用性に富んだものとなる。
【図面の簡単な説明】
【図１】データ処理装置の全体構成を示したブロック図。
【図２】（Ａ）は記憶装置２内に格納されている給与台帳データベース２−１、権限情報定義ファイル２−２を示した図、（Ｂ）はＲＡＭ４に割り当てられているメモリ領域を示した図。
【図３】（Ａ）〜（Ｃ）は権限情報定義ファイル２−２に設定される制限定義を説明するための図。
【図４】データベースをアクセスする前にそれに先立って実行される制限定義読み込み処理を示したフローチャート。
【図５】項目アクセスを制限する際のメイン処理を示したフローチャート。
【図６】図５のステップＢ３（権限判断処理）を詳述したフローチャート。
【図７】図６のステップＣ８（権限セット処理）を詳述したフローチャート。
【図８】図５のステップＢ５（レコード読み込み処理）を詳述したフローチャート。
【図９】図５のステップＢ６（レコード書き込み処理）を詳述したフローチャート。
【図１０】（Ａ）はアクセス対象項目の一覧をフォーマット化した際のデータ構造を示した図、（Ｂ）は制限定義をフォーマット化した際のデータ構造を示した図。
【図１１】全体動作を具体的に示した動作概念図。
【符号の説明】
１  ＣＰＵ
２  記憶装置
２−１  給与台帳データベース
２−２  権限情報定義ファイル
３  記憶媒体
４  ＲＡＭ
４−１  定義ポインタ
４−２  定義項目数カウンタ
４−３  対象項目数カウンタ
５  入力装置
６  表示装置
【図１】
0003785841.tif 000002
【図２】
0003785841.tif 000003
【図３】
0003785841.tif 000004
【図４】
0003785841.tif 000005
【図５】
0003785841.tif 000006
【図６】
0003785841.tif 000007
【図７】
0003785841.tif 000008
【図８】
0003785841.tif 000009
【図９】
0003785841.tif 000010
【図１０】
0003785841.tif 000011
【図１１】
0003785841.tif 000012