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