(57)【特許請求の範囲】
【請求項１】
対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、
ログイン時のユーザ名に対して利用者のタイプを対応付けた第１テーブルと、
前記複数のアプリケーションプログラムについて、前記利用者のタイプ毎に、各アプリケーションプログラムが有する各単位機能に対して使用の許可または禁止を定義する第２テーブルと、
利用者がログインした時、前記第１テーブルを参照してユーザ名から利用者タイプを決定し、前記第２テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを生成する機能使用の許可設定機構と、
前記対話形式の操作によるプログラム実行時に、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して、利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理が組み込まれた前記アプリケーションプログラムと、
を備えることを特徴とするコンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
利用者がログインした時にログイン時のユーザ名に対して利用者のタイプを対応づけた前記第１テーブルに該当するユーザ名が登録されていなかった時に、予め定めておいた利用者タイプを設定する手段、
を備えることを特徴とするコンピュータシステム。
【請求項３】
対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、
前記複数のアプリケーションプログラムについて、ログイン時のユーザ名に対して各アプリケーションプログラムが持つ単位機能の使用の許可または禁止を定義するテーブルと、
利用者がログインした時、前記テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを生成する機能使用の許可設定機構と、
前記対話形式の操作によるプログラム実行時に、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して、利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理が組み込まれた前記アプリケーションプログラムと、
を備えることを特徴とするコンピュータシステム。
【請求項４】
対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、
ログイン時のユーザ名に対して利用者のタイプを対応付けた第１テーブルと、
前記複数のアプリケーションプログラムについて、前記利用者のタイプ毎に、各アプリケーションプログラムが有する各単位機能に対して使用の許可または禁止を定義する第２テーブルと、
バッチ処理にて前記第２テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを全ての利用者のタイプに対して生成するとともに、前記第２テーブルが更新された場合に前記アプリケーションプログラム毎に機能使用の許可テーブルを更新する機能使用の許可設定機構と、
前記対話形式の操作によるプログラム実行時に、ログイン時の利用者のタイプを前記第１テーブルを参照して確認する処理と、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理とが組み込まれた前記アプリケーションプログラムと、
を備えることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、対話形式の操作によりアプリケーションプログラムを実行するコンピュータシステムに係り、特に実装するアプリケーションプログラムの構成方式に関する。
【０００２】
【従来の技術】
対話形式の操作によりアプリケーションプログラムを実行するコンピュータシステムでは、利用者のログイン名に対応して利用できる機能を制限する方法が広く採用されている。このログイン名に対応して各機能の使用の許可／禁止を設定する場合、従来では、まとまった機能の集合体を単位として使用の許可／禁止を設定する場合が多かった。
【０００３】
しかし、最近は、機能の多様化やＧＵＩの進歩などにより、単一機能毎に許可／禁止の設定が必要になるとともに、これらの設定を運用中に自由に追加・変更したいという要求が高まってきている。
【０００４】
例えば、通常の利用者にはデータベースの参照・更新の双方の操作を許す一方で、トレーニングモードでの利用者には、データベースのデータ参照及び画面上のみでのデータ更新の操作は許すが、データベースヘの書き込みは禁止するなどの事例がある。
【０００５】
また、ＧＵＩに関連する事項では、例えば対象の削除機能は、ドラッグ＆ドロップ形式による指示，プルダウンメニュー形式による指示，ポップアップメニュー形式による指示により実現される。このうち、プルダウンメニューやポップアップメニューでは、表示される「削除」のメニューをカスケードすることで操作を禁止することが行われている。なお、カスケードとは、文字の色をメニューの背景色と同じにして選択できないようにすることである。
【０００６】
【発明が解決しようとする課題】
しかし、こうした要求をアプリケーションプログラム側で実現するとすれば、アプリケーションプログラム中に利用者を識別し、小さな機能単位に使用の許可／禁止を判定する制御部分を埋め込まなければならないので、利用者の分類が増加し、アプリケーションプログラムが煩雑になるという問題があった。
【０００７】
また、運用途中で、利用者の分類の追加や或る利用者に対する使用できる機能の許可／禁止を変更しようとした場合、アプリケーションプログラムを広範囲に渡って改造しなければならなかった。したがって、従来では、不都合があっても運用上の制約として回避することが多かった。
【０００８】
こうした事情から利用者の分類は、例えば、正規オペレータ、臨時オペレータ、訓練オペレータ、責任者、システム管理者などの職種によるものが多く、個人毎に設定することは現実的に困難であった。
【０００９】
本発明の目的は、職種毎ではなく、個人の利用者毎にできるだけ小さい機能単位での使用の許可／禁止を任意に設定できるようにするとともに、利用者の分類の追加や利用者に対して使用の許可／禁止の設定変更が随時行える構成を有するアプリケーションプログラムを実装したコンピュータシステムを提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明のコンピュータシステムは、対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、ログイン時のユーザ名に対して利用者のタイプを対応付けた第１テーブルと、前記複数のアプリケーションプログラムについて、前記利用者のタイプ毎に、各アプリケーションプログラムが有する各単位機能に対して使用の許可または禁止を定義する第２テーブルと、利用者がログインした時、前記第１テーブルを参照してユーザ名から利用者タイプを決定し、前記第２テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを生成する機能使用の許可設定機構と、前記対話形式の操作によるプログラム実行時に、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して、利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理が組み込まれた前記アプリケーションプログラムと、を備えることを特徴とする。
【００１１】
かかる構成によれば、機能使用の許可設定機構が、個々のアプリケーションプログラム毎に機能使用の許可テーブルを生成することができる。したがって、実装する各アプリケーションプログラムは、予め決められた最低限のルールでプログラムを作成しておくことで、他のアプリケーションプログラムとは独立した形でプログラムの改造が可能となる。
【００１２】
上記本発明のコンピュータシステムでは、利用者がログインした時にログイン時のユーザ名に対して利用者のタイプを対応づけた前記第１テーブルに該当するユーザ名が登録されていなかった時に、予め定めておいた利用者タイプを設定する手段、を備える。
【００１３】
かかる構成によれば、ユーザ名が登録されていなかった時には予め定めておいた利用者タイプを使用できるので、特に利用者タイプに対して許可を与える利用者タイプのみテーブルのメンテナンスを行えばよいことになり、システム管理者の負担が軽減できるようになる。
【００１４】
また、本発明のコンピュータシステムは、対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、前記複数のアプリケーションプログラムについて、ログイン時のユーザ名に対して各アプリケーションプログラムが持つ単位機能の使用の許可または禁止を定義するテーブルと、利用者がログインした時、前記テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを生成する機能使用の許可設定機構と、前記対話形式の操作によるプログラム実行時に、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して、利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理が組み込まれた前記アプリケーションプログラムと、を備えることを特徴とする。
【００１５】
かかる構成によれば、ログイン時のユーザ名を利用者タイプ名として運用するので、利用者タイプの決定テーブルを不要とすることができ、メンテナンスの簡素化が図れるようになる。
【００１６】
また、本発明のコンピュータシステムは、対話形式の操作により複数のアプリケーションプログラムを実行するコンピュータシステムにおいて、
ログイン時のユーザ名に対して利用者のタイプを対応付けた第１テーブルと、
前記複数のアプリケーションプログラムについて、前記利用者のタイプ毎に、各アプリケーションプログラムが有する各単位機能に対して使用の許可または禁止を定義する第２テーブルと、
バッチ処理にて前記第２テーブルを参照して前記アプリケーションプログラム毎に機能使用の許可テーブルを全ての利用者のタイプに対して生成するとともに、前記第２テーブルが更新された場合に前記アプリケーションプログラム毎に機能使用の許可テーブルを更新する機能使用の許可設定機構と、
前記対話形式の操作によるプログラム実行時に、ログイン時の利用者のタイプを前記第１テーブルを参照して確認する処理と、前記機能使用の許可設定機構が生成した前記機能使用の許可テーブルを参照して利用者に対して該当機能の使用を許可するかどうかのチェックを行う処理とが組み込まれた前記アプリケーションプログラムと、を備えることを特徴とする。
【００１７】
かかる構成によれば、機能使用の許可設定機構がアプリケーションプログラム用の機能使用の許可テーブルをバッチ処理として予め作成しておくので、ログイン時に毎回、機能使用の許可テーブルを生成することがなくなる。したがって、システムの規模が大規模化し、１回のログインで多くのアプリケーションプログラムを動作させる場合に、テーブル作成などによる準備時間を減らすことができるようになる。
【００２０】
【発明の実施の形態】
（第１の実施の形態）
図１は、本発明の第１の実施の形態によるコンピュータシステムの構成ブロック図である。図１において、ログイン時の利用者毎の動作環境設定機構１は、ユーザ名とパスワードの管理及びチェックを行い、ユーザ名に対応した動作環境を設定する働きをする既存の機能である。
【００２１】
利用者タイプの決定テーブル２は、ログイン時のユーザ名に対し利用者のタイプ名を対応付けたテーブルである。利用者タイプ別の機能使用の許可定義テーブル３は、各アプリケーションプログラムが持つ単位機能毎に使用を許可または禁止する利用者タイプ名を定義したテーブルである。
【００２２】
利用者毎の機能使用の許可設定機構４ａは、ログイン時の利用者毎の動作環境設定機構１に付加されるものである。すなわち、利用者毎の機能使用の許可設定機構４ａは、ログイン時の利用者毎の動作環境設定機構１から与えられたログイン時のユーザ名を検索キーにして利用者タイプの決定テーブル２から利用者タイプ名を決定する。決定した利用者タイプ名に対して利用者タイプ別の機能使用の許可定義テーブル３を参照して使用の「許可」「禁止」を拾い出し、各アプリケーションプログラム毎に機能使用の許可テーブルを生成する。
【００２３】
図１では、アプリケーションプログラムは、Ａ８，Ｂ９，Ｃ１０の３つが示されている。したがって、アプリケーションプログラム用の機能使用の許可テーブルは、アプリケーションプログラムＡ用の機能使用の許可テーブル５と、アプリケーションプログラムＢ用の機能使用の許可テーブル６と、アプリケーションプログラムＣ用の機能使用の許可テーブル７との３つが示されている。
【００２４】
アプリケーションプログラムＡ８は、処理時の制御を行うが、処理時にアプリケーションプログラムＡ用の機能使用の許可テーブル５を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【００２５】
アプリケーションプログラムＢ９は、処理時の制御を行うが、処理時にアプリケーションプログラムＡ用の機能使用の許可テーブル６を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【００２６】
アプリケーションプログラムＣ１０は、処理時の制御を行うが、処理時にアプリケーションプログラムＡ用の機能使用の許可テーブル７を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【００２７】
図２は、利用者タイプ決定テーブル２の構成例を示す。図２において、ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ），・・・は、ログイン時のユーザ名に対応している。
【００２８】
ユーザ名＃１の利用者タイプ名（３．１．Ｔ），ユーザ名＃２の利用者タイプ名（３．２．Ｔ），ユーザ名＃３の利用者タイプ名（３．３．Ｔ），・・・は、ユーザ名に対応した利用者タイプ名を示している。
【００２９】
図２の例では、役割／資格／権限に対応した利用者タイプ名を示している。利用者タイプ名「ＯＰＥＲＡＴＯＲ」は、一般の操作者である。利用者タイプ名「ＴＲＡＩＮＩＮＧ」は、訓練者である。利用者タイプ名「ＭＡＩＮＴＡＩＮ」は、システムの保守担当者である。利用者タイプ名「ＭＡＮＡＧＥＲ」は、管理者である。
【００３０】
図２の例では、ユーザ名＃１（ＹＡＭＡＤＡ）に対しユーザ名＃１の利用者名（ＯＰＥＲＡＴＯＲ）が決定され、ユーザ名＃２（ＷＡＴＡＮＡＢＥ）に対しユーザ名＃１の利用者名（ＴＲＡＩＮＩＮＧ）が決定される。以下同様に、ユーザ名＃５（ＫＯＢＡＹＡＳＨＩ）に対しユーザ名＃１の利用者名（ＭＡＮＡＧＥＲ）が決定されることが示されている。
【００３１】
図３は、利用者タイプ別の機能使用の許可／禁止の規定例である。図３において、「機能名」「単位機能名」「利用者タイプ名」に分けて規定されている。「機能名」には、機能Ａと機能Ｂと機能Ｃとが規定されている。機能Ａは、アプリケーションプログラムＡ８に対応する。機能Ｂは、アプリケーションプログラムＢ９に対応する。機能Ｃは、アプリケーションプログラムＣ１０に対応している。
【００３２】
「単位機能名」は、アプリケーションプログラムの単位機能名を示している。機能Ａ（アプリケーションプログラムＡ８）に対する単位機能名として、（Ａ０）（Ａ１）（Ａ２）（Ａ３）（Ａ４）が規定されている。機能Ｂ（アプリケーションプログラムＢ９）に対する単位機能名として、（Ｂ０）（Ｂ１）が規定されている。機能Ｃ（アプリケーションプログラムＣ１０）に対する単位機能名として、（Ｃ０）（Ｃ１）（Ｃ２）（Ｃ３）が規定されている。
【００３３】
なお、（Ａ０）（Ａ１）（Ａ２）（Ａ３）（Ａ４）等の単位機能名の決め方は、それぞれのアプリケーション毎に任意に設定すれば良い。例えば、機能Ｄに、独立した機能が８つあるのであればそれぞれを（Ｄ１）〜（Ｄ８）と決めれば良い。但し、利用者タイプにより、機能Ｄの全体を禁止したり、或る機能群をまとめて禁止したりするようなことが想定される場合には、アプリケーションプログラム側の処理を簡素化するため、例えば図４に示すように階層的に決める方が良い。
【００３４】
図４において、フラグＤ０には３つのフラグＤ１０，Ｄ２０，Ｄ３０が設けられている。フラグＤ１０には２つのフラグＤ１，Ｄ２が設けられ、フラグＤ２０には３つのフラグＤ３，Ｄ４，Ｄ５が設けられ、フラグＤ３０には３つのフラグＤ６，Ｄ７，Ｄ８が設けられている。
【００３５】
フラグＤ０は、機能Ｄ全体を許可するフラグである。フラグＤ１０は、機能Ｄのうち、フラグＤ１とＤ２を許可するフラグである。フラグＤ２０は、機能Ｄのうち、フラグＤ３とＤ４とＤ５を許可するフラグである。Ｄ３０は、機能Ｄのうち、フラグＤ６とＤ７とＤ８を許可するフラグである。フラグＤ１〜Ｄ８は、機能Ｄのうち個々の機能を許可するフラグである。
【００３６】
以下の説明では、機能Ａについては、単位機能名（Ａ０）が機能全体を意味し、単位機能名（Ａ１）〜（Ａ４）が個々の機能を意味する。機能Ｂについては、単位機能名（Ｂ０）が機能全体を意味し、単位機能名（Ｂ１）（Ｂ２）が個々の機能を意味する。機能Ｃについては、単位機能名（Ｃ０）が機能全体を意味し、単位機能名（Ｃ１）〜（Ｃ３）が個々の機能を意味するものとする。
【００３７】
図３に戻って、「利用者タイプ名」には、「ＯＰＥＲＡＴＯＲ」「ＴＲＡＩＮＩＮＧ」「ＭＡＩＮＴＡＩＮ」「ＭＡＮＡＧＥＲ」が規定されている。各利用者タイプについて、単位機能の使用を許可する場合には「ＹＥＳ」、許可しない場合には「ＮＯ」と規定されている。
【００３８】
図５，図６は、利用者タイプ別の機能使用の許可定義テーブル３の構成例である。図５，図６では、図３の利用者タイプ別の機能許可／禁止の規定例を反映させた例を示している。
【００３９】
図５、図６において、機能名（４．Ａ）には、アプリケーションプログラムＡのプログラム名が登録されている。単位機能名＃０（４．Ａ．０．Ｆ）には、単位機能名である（Ａ０）が登録されている。単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），単位機能名＃０の許可された利用者タイプ名３（４．Ａ．０．Ｔ３），単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＴＲＡＩＮＩＮＧ、ＭＡＩＮＴＡＩＮ、ＭＡＮＡＧＥＲが登録されている。
【００４０】
単位機能名＃１（４．Ａ．１．Ｆ）には、単位機能名である（Ａ１）が登録されている。単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名３（４．Ａ．１．Ｔ３），単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＴＲＡＩＮＩＮＧ、ＭＡＩＮＴＡＩＮ、ＭＡＮＡＧＥＲが登録されている。
【００４１】
単位機能名＃２（４．Ａ．２．Ｆ）には、単位機能名である（Ａ２）が登録されている。単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１），単位機能名＃２の許可された利用者タイプ名２（４．Ａ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ａ．２．Ｔ３）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＴＲＡＩＮＩＮＧ、ＭＡＮＡＧＥＲが登録されている。
【００４２】
単位機能名＃３（４．Ａ．３．Ｆ）には、単位機能名である（Ａ３）が登録されている。単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＩＮＴＡＩＮが登録されている。
【００４３】
単位機能名＃４（４．Ａ．４．Ｆ）には、単位機能名である（Ａ４）が登録されている。単位機能名＃４の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＮＡＧＥＲが登録されている。
【００４４】
次の機能名（４．Ｂ）には、アプリケーションプログラムＢのおプログラム名が登録されている。単位機能名＃０（４．Ｂ．０．Ｆ）には、単位機能名である（Ｂ０）が登録されている。単位機能名＃０の許可された利用者タイプ名１（４．Ｂ．０．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＩＮＴＡＩＮが登録されている。
【００４５】
単位機能名＃１（４．Ｂ．１．Ｆ）には、単位機能名である（Ｂ１）が登録されている。単位機能名＃１の許可された利用者タイプ名１（４．Ｂ．１．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＩＮＴＡＩＮが登録されている。
【００４６】
単位機能名＃２（４．Ｂ．２．Ｆ）には、単位機能名である（Ｂ２）が登録されている。単位機能名＃２の許可された利用者タイプ名１（４．Ｂ．２．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＩＮＴＡＩＮが登録されている。
【００４７】
また、機能名（４．Ｃ）には、アプリケーションプログラムＣのプログラム名が登録されている。単位機能名＃０（４．Ｃ．０．Ｆ）には、単位機能名である（Ｃ０）が登録されている。単位機能名＃０の許可された利用者タイプ名１（４．Ｃ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ｃ．０．Ｔ２），単位機能名＃０の許可された利用者タイプ名３（４．Ｃ．０．Ｔ３），単位機能名＃０の許可された利用者タイプ名４（４．Ｃ．０．Ｔ４）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＴＲＡＩＮＩＮＧ、ＭＡＩＮＴＡＩＮ、ＭＡＮＡＧＥＲが登録されている。
【００４８】
単位機能名＃１（４．Ｃ．１．Ｆ）には、単位機能名である（Ｃ１）が登録されている。単位機能名＃１の許可された利用者タイプ名１（４．Ｃ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ｃ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名３（４．Ｃ．１．Ｔ３），単位機能名＃１の許可された利用者タイプ名４（４．Ｃ．１．Ｔ４）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＴＲＡＩＮＩＮＧ、ＭＡＩＮＴＡＩＮ、ＭＡＮＡＧＥＲが登録されている。
【００４９】
単位機能名＃２（４．Ｃ．２．Ｆ）には、単位機能名である（Ｃ２）が登録されている。単位機能名＃２の許可された利用者タイプ名１（４．Ｃ．２．Ｔ１），単位機能名＃２の許可された利用者タイプ名２（４．Ｃ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ｃ．２．Ｔ３）には、それぞれ機能使用が許可された利用者タイプ名ＯＰＥＲＡＴＯＲ、ＭＡＩＮＴＡＩＮ、ＭＡＮＡＧＥＲが登録されている。
【００５０】
単位機能名＃３（４．Ａ．３．Ｆ）には、単位機能名である（Ｃ３）が登録されている。単位機能名＃３の許可された利用者タイプ名１（４．Ｃ．３．Ｔ１）には、機能使用が許可された利用者タイプ名ＭＡＮＡＧＥＲが登録されている。
【００５１】
図７，図８，図９は、それぞれアプリケーションプログラムＡ用の機能使用許可テーブル５の構成例である。図７に示すように、利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＡ用の機能使用の許可テーブル５は、単位機能名＃０（５１．０．Ｆ）に対する単位機能名＃０の許可サイン（５１．０．Ｓ），単位機能名＃１（５１．１．Ｆ）に対する単位機能名＃１の許可サイン（５１．１．Ｓ），・・・，単位機能名＃４（５１．４．Ｆ）に対する単位機能名＃４の許可サイン（５１．４．Ｓ）から構成されている。
【００５２】
例えば、単位機能名＃０の許可サイン（５１．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ａ０）〜＃２（Ａ２）に対する許可サインが値「ＯＮ」で、単位機能名＃３（Ａ３）、＃４（Ａ４）に対する許可サインが値「ＯＦＦ」となっている。
【００５３】
図８に示すように、利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＡ用の機能使用の許可テーブル５は、単位機能名＃０（５２．０．Ｆ）に対する単位機能名＃０の許可サイン（５２．０．Ｓ），単位機能名＃１（５２．１．Ｆ）に対する単位機能名＃１の許可サイン（５２．１．Ｓ），・・・，単位機能名＃４（５２．４．Ｆ）に対する単位機能名＃４の許可サイン（５２．４．Ｓ）から構成されている。
【００５４】
例えば、単位機能名＃０の許可サイン（５２．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ａ０）〜＃３（Ａ３）に対する許可サインが値「ＯＮ」で、単位機能名＃４（Ａ４）に対する許可サインが値「ＯＦＦ」となっている。
【００５５】
また、図９に示すように、利用者タイプ名がＴＲＡＩＮＩＮＧのアプリケーションプログラムＡ用の機能使用の許可テーブル５は、単位機能名＃０（５３．０．Ｆ）に対する単位機能名＃０の許可サイン（５３．０．Ｓ），単位機能名＃１（５３．１．Ｆ）に対する単位機能名＃１の許可サイン（５３．１．Ｓ），・・・，単位機能名＃４（５３．４．Ｆ）に対する単位機能名＃４の許可サイン（５３．４．Ｓ）から構成されている。
【００５６】
例えば、単位機能名＃０の許可サイン（５３．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ａ０）、＃１（Ａ１）に対する許可サインが値「ＯＮ」で、単位機能名＃２（Ａ２）〜＃４（Ａ４）に対する許可サインが値「ＯＦＦ」となっている。
【００５７】
このように、アプリケーションプログラムＡ用の機能使用の許可テーブル５は、テーブル構造は利用者タイプ名に依らず同じであるが、利用者タイプ名に応じて単位機能名＃０の許可サイン〜単位機能名＃４の許可サインの値が一部異なっている。
【００５８】
図１０，図１１，図１２は、アプリケーションプログラムＢ用の機能使用許可テーブル６の構成例である。図１０に示すように、利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＢ用の機能使用の許可テーブル６は、単位機能名＃０（６１．０．Ｆ）に対する単位機能名＃０の許可サイン（６１．０．Ｓ），単位機能名＃１（６１．１．Ｆ）に対する単位機能名＃１の許可サイン（６１．１．Ｓ），単位機能名＃２（６１．２．Ｆ）に対する単位機能名＃２の許可サイン（６１．２．Ｓ）から構成されている。
【００５９】
例えば、単位機能名＃０の許可サイン（６１．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｂ０）〜＃２（Ｂ２）に対する許可サインの値が全て「ＯＦＦ」となっている。
【００６０】
図１１に示すように、利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＢ用の機能使用の許可テーブル６は、単位機能名＃０（６２．０．Ｆ）に対する単位機能名＃０の許可サイン（６２．０．Ｓ），単位機能名＃１（６２．１．Ｆ）に対する単位機能＃１の許可サイン（６２．１．Ｓ），単位機能名＃２（６２．２．Ｆ）に対する単位機能名＃２の許可サイン（６２．２．Ｓ）から構成されている。
【００６１】
例えば、単位機能名＃０の許可サイン（６２．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｂ０）〜＃２（Ｂ２）に対する許可サインの値が全て「ＯＮ」となっている。
【００６２】
また、図１２に示すように、利用者タイプ名がＴＲＡＩＮＩＮＧのアプリケーションプログラムＢ用の機能使用の許可テーブル６は、単位機能名＃０（６３．０．Ｆ）に対する単位機能名＃０の許可サイン（６３．０．Ｓ），単位機能名＃１（６３．１．Ｆ）に対する単位機能名＃１の許可サイン（６３．１．Ｓ），単位機能名＃２（６３．２．Ｆ）に対する単位機能名＃４の許可サイン（６３．２．Ｓ）から構成されている。
【００６３】
例えば、単位機能名＃０の許可サイン（６３．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｂ０）〜＃２（Ｂ２）に対する許可サインの値が全て「ＯＦＦ」となっている。
【００６４】
このように、アプリケーションプログラムＢ用の機能使用の許可テーブル６は、テーブル構造は利用者タイプ名に依らず同じであるが、利用者タイプ名に応じて単位機能名＃０の許可サイン〜単位機能名＃２の許可サインの値が一部異なっている。
【００６５】
図１３，図１４，図１５は、アプリケーションプログラムＣ用の機能使用許可テーブル６の構成例である。図１３に示すように、利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＣ用の機能使用の許可テーブル７は、単位機能名＃０（７１．０．Ｆ）に対する単位機能名＃０の許可サイン（７１．０．Ｓ），単位機能名＃１（７１．１．Ｆ）に対する単位機能名＃１の許可サイン（７１．１．Ｓ），・・・，単位機能名＃３（７１．３．Ｆ）に対する単位機能名＃３の許可サイン（７１．３．Ｓ）から構成されている。
【００６６】
例えば、単位機能名＃０の許可サイン（７１．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｃ０）〜＃２（Ｃ２）に対する許可サインが値「ＯＮ」で、単位機能名＃３（Ｃ３）に対する許可サインが値「ＯＦＦ」となっている。
【００６７】
図１４に示すように、利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＣ用の機能使用の許可テーブル７は、単位機能名＃０（７２．０．Ｆ）に対する単位機能名＃０の許可サイン（７２．０．Ｓ），単位機能名＃１（７２．１．Ｆ）に対する単位機能名＃１の許可サイン（７２．１．Ｓ），・・・，単位機能名＃３（７２．４．Ｆ）に対する単位機能名＃３の許可サイン（７２．４．Ｓ）から構成されている。
【００６８】
例えば、単位機能名＃０の許可サイン（７２．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｃ０）〜＃２（Ｃ２）に対する許可サインが値「ＯＮ」で、単位機能名＃３（Ｃ３）に対する許可サインが値「ＯＦＦ」となっている。
【００６９】
また、図１５に示すように、利用者タイプ名がＴＲＡＩＮＩＮＧのアプリケーションプログラムＣ用の機能使用の許可テーブル７は、単位機能名＃０（７３．０．Ｆ）に対する単位機能名＃０の許可サイン（７３．０．Ｓ），単位機能名＃１（７３．１．Ｆ）に対する単位機能名＃１の許可サイン（７３．１．Ｓ），・・・，単位機能名＃３（７３．４．Ｆ）に対する単位機能名＃３の許可サイン（７３．４．Ｓ）から構成されている。
【００７０】
例えば、単位機能名＃０の許可サイン（７３．０．Ｓ）は，値が「ＯＮ」のとき許可、値が「ＯＦＦ」のとき禁止と解釈する。図示例では、単位機能名＃０（Ｃ０）、＃１（Ｃ１）に対する許可サインが値「ＯＮ」で、単位機能名＃２（Ｃ２）、＃３（Ｃ３）に対する許可サインが値「ＯＦＦ」となっている。
【００７１】
このように、アプリケーションプログラムＣ用の機能使用の許可テーブル７は、テーブル構造は利用者タイプ名に依らず同じであるが、利用者タイプ名に応じて単位機能＃０の許可サイン〜単位機能＃３の許可サインの値が一部異なっている。
【００７２】
次に、第１の実施の形態の動作を図１６〜図１９を参照して説明する。なお、図１６は、利用者毎の機能使用の許可設定機構４ａの動作を示すフローチャートである。図１７〜図１９は、アプリケーションプログラム９Ａの動作を示すフローチャートである。図１７〜図１９では、アプリケーションプログラム８Ａの動作を示すが、アプリケーションプログラム９Ｂ，１０Ｃの動作も同様である。
【００７３】
図１６において、まず、利用者がログインしたとき、ユーザ名とパスワードのチェックがログイン時の利用者毎の動作環境設定機構１により実施される（ステップＳ１）。チェックがＯＫであれば、ユーザ名がログイン時の利用者毎の動作環境設定機構１から利用者毎の機能使用の許可設定機構４ａに伝えられる。
【００７４】
利用者毎の機能使用の許可設定機構４ａは、利用者タイプの決定テーブル２を検索してユーザ名に対応した利用者タイプを次のようにして探すことを行う（ステップＳ２）。
【００７５】
例えば、ユーザ名が、「ＴＡＮＡＴＡ」の場合について説明する。［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２］ユーザ名＃３（３．３．Ｎ）が「ＴＡＮＡＫＡ」と一致することを検出する。［３］ユーザ名＃３（３．３．Ｎ）に対応したユーザ名＃３の利用者タイプ名（３．３．Ｔ）を取り出し、利用者タイプ名＝ＯＰＥＲＡＴＯＲとする。
【００７６】
次に、利用者タイプ名が見つかったかどうかを判断し（ステップＳ３）、指定されたユーザ名が利用者タイプの決定テーブル２に登録されていた場合には、利用者タイプ別の機能使用許可定義テーブル３を読み込み（ステップＳ４）、アプリケーションプログラムｉ用の機能使用許可テーブルを作成する（ステップＳ５）。このテーブルは、ログイン時のユーザ名毎に指定された動作環境内に次のようにして生成される。
【００７７】
［１］最初の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ａ）からアプリケーションプログラムＡ用の機能使用の許可テーブル５を作成する。2回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｂ）からアプリケーションプログラムＢ用の機能使用の許可テーブル６を作成する。３回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｃ）からアプリケーションプログラムＣ用の機能使用の許可テーブル７を作成する。
【００７８】
［２］単位機能名＃０（４．Ａ．０．Ｆ）から単位機能名（Ａ０）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．０．Ｆ）に書き込む。［３］単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），・・・，単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）を順次検索し、利用者タイプ名がＯＰＥＲＡＴＯＲのレコードが登録されているかを調べる。
【００７９】
［４］登録されている場合は、単位機能＃０の許可サイン（５１．０．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能＃０の許可サイン（５１．０．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＯＰＥＲＡＴＯＲは、単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）に登録されているので、単位機能＃０の許可サイン（５１．０．Ｓ）に値「ＯＮ」を書き込む。［５］次に、単位機能名＃１（４．Ａ．１．Ｆ）から単位機能名（Ａ１）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．１．Ｆ）に書き込む。
【００８０】
［６］単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），・・・，単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）を順次検索し、利用者タイプ名がＯＰＥＲＡＴＯＲのレコードが登録されているかを調べる。
【００８１】
［７］登録されている場合は、単位機能＃１の許可サイン（５１．１．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能＃０の許可サイン（５１．１．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＯＰＥＲＡＴＯＲは、単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１）に登録されているので、単位機能＃１の許可サイン（５１．１．Ｓ）に値「ＯＮ」を書き込む。
【００８２】
［８］順次、単位機能＃ｉを処理し、単位機能＃４（４．Ａ．４．Ｆ）の処理が終わった時点で機能名（４．Ａ）用、つまりアプリケーションプログラムＡ用のテーブル作成処理は終わる。
【００８３】
以上のようにして、利用者タイプ別の機能使用許可定義テーブル３に登録された全ての機能名（アプリケーションプログラム）に対して、アプリケーションプログラムのテーブル機能使用の許可テーブルが作成できると（ステップＳ６）、リターンステータス（処理結果の状態）に「正常終了」を設定し（ステップＳ７）、終了する。
【００８４】
一方、ステップＳ３において、指定されたユーザ名が利用者タイプの決定テーブル２に登録されていなかった場合には、リターンステータス（処理結果の状態）に「該当する利用者タイプなし」を設定し（ステップＳ８）終了する。
【００８５】
次いで図１７は、アプリケーションプログラムＡ８のコマンドリストメニューの表示時に機能の使用許可を反映させる場合の動作を示すフローチャートである。
【００８６】
図１７において、アプリケーションプログラムＡ用の機能使用の許可テーブル５を読み込み（ステップＳ１０）、表示しようとするコマンドメニューのコマンドのうち、許可されていない単位機能名（コマンド）を次のようにして削除し（ステップＳ１１）、通常処理（コマンドリストメニューの表示処理）へ進む（ステップＳ１２）。
【００８７】
このステップＳ１１では、次の処理が行われる。［１］コマンドメニューとして表示しようとするコマンドのリストを読み込む。［２］コマンドのリスト内のコマンドと一致する単位機能名を検索する。
【００８８】
［３］例えば、コマンド名（単位機能名）＝Ａ１であれば、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．０．Ｆ），単位機能名＃１（５１．１．Ｆ），・・・を検索し、単位機能名＃１（５１．１．Ｆ）に対応した単位機能＃１の許可サイン（５１．１．Ｓ）を調べる。
【００８９】
［４］単位機能＃１（５１．１．Ｓ）が値「ＯＮ」であればコマンドのリストに残し、値「ＯＦＦ」であればコマンドのリストから削除する。［５］コマンドのリストに登録されている全てのコマンド（単位機能）に対して上記［２］〜［４］の処理を実行する。
【００９０】
次いで図１８は、アプリケーションプログラムＡ８のプルダウンメニューまたはポップアップメニューの表示時に機能使用の許可を反映させる動作を示すフローチャートである。
【００９１】
図１８において、アプリケーションプログラムＡ用の機能使用の許可テーブル５を読み込み（ステップＳ１５）、表示しようとするプルダウンメニューまたはポップアップメニュー内の単位機能のうち、許可されていない単位機能名を次のようにして削除またはカスケード（選択できない状態）にし（ステップＳ１６）、通常の処理に進む。
【００９２】
ステップＳ１６では、次の処理が行われる。［１］プルダウンメニューまたはポップアップメニューとして表示しようとするメニューの設定リストを読み込む。［２］設定リスト内の単位機能と一致するアプリケーションプログラムＡ用の機能使用の許可テーブル５内の単位機能名を検索する。
【００９３】
［３］例えば、単位機能名＝Ａ１であれば、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．１．０．Ｆ），単位機能名＃１（５１．１．Ｆ），・・・を検索し、単位機能名＃１（５１．１．Ｆ）に対応した単位機能＃１の許可サイン（５１．１．Ｓ）を調べる。
【００９４】
［４］単位機能＃１（５１．１．Ｓ）が値「ＯＮ」であれば設定リストに残し、値「ＯＦＦ」であれば設定リストから削除またはカスケードを指示する。［５］設定リストに登録されている全ての単位機能に対して上記［２］〜［４］の処理を実行する。
【００９５】
次いで図１９は、アプリケーションプログラムＡ８のドラッグアンドドロップ形式または直接コマンド形式などの実行時に機能使用の許可を反映させる動作を示すフローチャートである。
【００９６】
図１９において、アプリケーションプログラムＡ用の機能使用の許可テーブル５を読み込み（ステップＳ２０）、該当機能の使用は許可されているかどうかを次のようにして判断し（ステップＳ２１）、判断結果に応じてステップＳ２２とＳ２３の処理を行う。
【００９７】
ステップＳ２１では、次の処理が行われる。［１］該当機能の単位機能名と一致するアプリケーションプログラムＡ用の機能使用の許可テーブル５内の単位機能名を検索する。［２］例えば単位機能名＝Ａ１であれば、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．０．Ｆ），単位機能名＃１（５１．１．Ｆ），・・・を検索し、単位機能名＃１（５１．１Ｆ）に対応した単位機能＃１の許可サイン（５１．１．Ｓ）を調べる。
【００９８】
［３］許可テーブル５の単位機能名＃１（５１．１．Ｆ）が値「ＯＮ」であれば、ステップＳ２２へ進み、該当単位機能を実行し、終了する。一方、値「ＯＦＦ」であれば、ステップＳ２３へ進み、該当単位機能は使用許可されていないことをメッセージ表示し、該当機能は実行することなく終了する。
【００９９】
このように本第１の実施の形態では、利用者毎の機能使用の許可設定機能４ａが個々のアプリケーションプログラム毎に機能使用の許可テーブルを生成する。したがって、実装する各アプリケーションプログラムは、予め決められた最低限のルールでプログラムを作成しておくことで、他のアプリケーションプログラムとは独立した形でプログラムの改造が可能となる。
【０１００】
（第２の実施の形態）
図２０は、本発明の第２の実施の形態によるコンピュータシステムの構成ブロック図である。本第２の実施の形態は、第１の実施の形態の簡易な運用への適用例である。したがって、第１の実施の形態（図１）と同一構成部分には、同一符号・名称を付してある。ここでは、本第２の実施の形態に係る部分を中心に説明する。この点は、以下の各実施の形態においても同じである。
【０１０１】
簡易な運用では、ログインのユーザ名＝利用者タイプ名として運用される場合が多い。この場合には、図２０に示すように、第１の実施の形態（図１）における利用者タイプの決定テーブル２が不要となる。図２０に示す利用者毎の機能使用の許可設定機構４ｂは、利用者別の機能使用の許可定義テーブル３のみを参照することになる。
【０１０２】
次に、本第２の実施の形態に係る部分の動作を図２１を参照して説明する。図２１は、利用者毎の機能使用の許可設定機構４ｂの動作を示すフローチャートである。なお、アプリケーションプログラムの動作は、第１の実施の形態（図１７〜図１９）と同様である。
【０１０３】
図２１において、まず、利用者がログインした時、ユーザ名とパスワードのチェックがログイン時の利用者毎の動作環境設定機構１により実施される（ステップＳ３０）。チェックがＯＫであれば、ユーザ名が、ログイン時の利用者毎の動作環境設定機構１から利用者毎の機能使用の許可設定機構４ｂに伝えられる。例えば、ユーザ名＝ＯＰＥＲＡＴＯＲとする。
【０１０４】
ユーザ名（ＯＰＥＲＡＴＯＲ）を受け取ると、利用者毎の機能使用の許可設定機構４ｂは、利用者タイプ別の機能使用許可定義テーブル３を読み込み（ステップＳ３１）、アプリケーションプログラムｉ用の機能使用許可テーブルを作成する（ステップＳ３２）。このテーブルは、ログイン時のユーザ名毎に指定された動作環境内に次のようにして生成される。
【０１０５】
［１］最初の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ａ）からアプリケーションプログラムＡ用の機能使用の許可テーブル５を作成する。２回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｂ）からアプリケーションプログラムＢ用の機能使用の許可テーブル６を作成する。３回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｃ）からアプリケーションプログラムＣ用の機能使用の許可テーブル７を作成する。
【０１０６】
［２］単位機能名＃０（４．Ａ．０．Ｆ）から単位機能名（Ａ０）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．０．Ｆ）に書き込む。［３］単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），・・・，単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）を順次検索し、利用者タイプ名がＯＰＥＲＡＴＯＲのレコードが登録されているかを調べる。
【０１０７】
［４］登録されている場合は、単位機能名＃０の許可サイン（５１．０．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能名＃０の許可サイン（５１．０．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＯＰＥＲＡＴＯＲは、単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）に登録されているので、単位機能名＃０の許可サイン（５１．０．Ｓ）に値「ＯＮ」を書き込む。［５］次に、単位機能名＃１（４．Ａ．１．Ｆ）から単位機能名（Ａ１）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．１．Ｆ）に書き込む。
【０１０８】
［６］単位機能＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），・・・，単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）を順次検索し、利用者タイプ名がＯＰＥＲＡＴＯＲのレコードが登録されているかを調べる。
【０１０９】
［７］登録されている場合は、単位機能名＃１の許可サイン（５１．１．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能名＃０の許可サイン（５１．１．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＯＰＥＲＡＴＯＲは、単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１）に登録されているので、単位機能名＃１の許可サイン（５１．１．Ｓ）に値「ＯＮ」を書き込む。
【０１１０】
［８］順次、単位機能名＃ｉを処理し、単位機能名＃４（４．Ａ．４．Ｆ）の処理が終わった時点で機能名（４．Ａ）用、つまりアプリケーションプログラムＡ用のテーブル作成処理は終わる。
【０１１１】
以上のようにして、利用者タイプ別の機能使用許可定義テーブル３に登録された全ての機能名（アプリケーションプログラム）に対して、アプリケーションプログラムのテーブル機能使用の許可テーブルが作成できると（ステップＳ３３）、リターンステータス（処理結果の状態）に「正常終了」を設定し（ステップＳ３４）、終了する。
【０１１２】
このように本第２の実施の形態では、ログイン時のユーザ名を利用者タイプ名として運用するので、利用者タイプの決定テーブルを不要とすることができ、メンテナンスが簡素化するという利点がある。
【０１１３】
（第３の実施の形態）
図２２は、本発明の第３の実施の形態によるコンピュータシステムの構成ブロック図である。本第３の実施の形態は、第１の実施の形態においてログインしたユーザ名が利用者タイプの決定テーブル２になかった場合に拒絶せずに予めデフォルトとして設定された利用者タイプ名での利用を許す機構を組み込んだ構成例である。
【０１１４】
したがって、構成要素は、第１の実施の形態と同じであるが、利用者毎の機能使用の許可設定機構４ｃの動作が、第１の実施形態の利用者毎の機能使用の許可設定機構４ａと異なるものとなっている。
【０１１５】
次に、本第３の実施の形態に係る部分の動作を図２３を参照して説明する。図２１は、利用者毎の機能使用の許可設定機構４ｃの動作を示すフローチャートである。なお、アプリケーションプログラムの動作は、第１の実施の形態（図１７〜図１９）と同様である。
【０１１６】
図２３において、まず、利用者がログインした時、ユーザ名とパスワードのチェックがログイン時の利用者毎の動作環境設定機構１により実施される（ステップＳ４０）。チェックがＯＫであれば、ユーザ名が、ログイン時の利用者毎の動作環境設定機構１から利用者毎の機能使用の許可設定機構４ｃに伝えられる。
【０１１７】
ユーザ名を受け取ると、利用者毎の機能使用の許可設定機構４ｃは、利用者タイプの決定テーブル２を検索してユーザ名に対応した利用者タイプ名を次のようにして検索する（ステップＳ４１）。
【０１１８】
例えば、ユーザ名が「ＡＫＡＧＡＫＩ」の場合について説明する。［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２］ユーザ名「ＡＫＡＧＡＫＩ」は登録されていないので検出されない。
【０１１９】
利用者毎の機能使用の許可設定機構４ｃは、指定されたユーザ名が利用者タイプの決定テーブル２に登録されていなかった場合には（ステップＳ４２）、利用者タイプ＝デフォルトの利用者タイプ名を設定する（ステップＳ４３）。ユーザ名「ＡＫＡＧＡＫＩ」の場合にはこのケースとなる。例えば、デフォルトの利用者タイプ名として「ＴＲＡＩＮＩＮＧ」が指定されていたとすれば、利用者タイプ名＝ＴＲＡＩＮＩＮＧを設定する。
【０１２０】
次に、利用者毎の機能使用の許可設定機構４ｃは、指定されたユーザ名が利用者タイプの決定テーブル２に登録されていた場合（ステップＳ４２）、または、利用者タイプ＝デフォルトの利用者タイプを設定（ステップＳ４３）後に、利用者タイプ別の機能使用許可定義テーブル３を読み込み（ステップＳ４４）、アプリケーションプログラムｉ用の機能使用許可テーブルを作成する。このテーブルは、ログイン時のユーザ名毎に指定された動作環境内に次のようにして生成される。
【０１２１】
［１］最初の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ａ）からアプリケーションプログラムＡ用の機能使用の許可テーブル５を作成する。２回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｂ）からアプリケーションプログラムＢ用の機能使用の許可テーブル６を作成する。３回目の場合は、利用者タイプ別の機能使用許可定義テーブル３の機能名（４．Ｃ）からアプリケーションプログラムＣ用の機能使用の許可テーブル７を作成する。
【０１２２】
［２］単位機能名＃０（４．Ａ．０．Ｆ）から単位機能名（Ａ０）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．０．Ｆ）に書き込む。［３］単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），・・・，単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）を順次検索し、利用者タイプ名がＴＲＡＩＮＩＮＧのレコードが登録されているかを調べる。
【０１２３】
［４］登録されている場合は、単位機能名＃０の許可サイン（５１．０．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能名＃０の許可サイン（５１．０．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＴＲＡＩＮＩＮＧは、単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）に登録されているので、単位機能名＃０の許可サイン（５１．０．Ｓ）に値「ＯＮ」を書き込む。［５］次に、単位機能名＃１（４．Ａ．１．Ｆ）から単位機能名（Ａ１）を取り出し、アプリケーションプログラムＡ用の機能使用の許可テーブル５の単位機能名＃０（５１．１．Ｆ）に書き込む。
【０１２４】
［６］単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），・・・，単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）を順次検索し、利用者タイプ名がＴＲＡＩＮＩＮＧのレコードが登録されているかを調べる。
【０１２５】
［７］登録されている場合は、単位機能名＃１の許可サイン（５１．１．Ｓ）に「ＯＮ」の値を書き込む。一方、登録されていなければ、単位機能名＃０の許可サイン（５１．１．Ｓ）に「ＯＦＦ」の値を書き込む。利用者タイプ名＝ＴＲＡＩＮＩＮＧは、単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１）に登録されているので、単位機能名＃１の許可サイン（５１．１．Ｓ）に値「ＯＮ」を書き込む。
【０１２６】
［８］順次、単位機能名＃ｉを処理し、単位機能名＃４（４．Ａ．４．Ｆ）の処理が終わった時点で機能名（４．Ａ）用、つまりアプリケーションプログラムＡ用のテーブル作成処理は終わる。
【０１２７】
以上のようにして、利用者タイプ別の機能使用許可定義テーブル３に登録された全ての機能名（アプリケーションプログラム）に対して、アプリケーションプログラムの機能使用の許可テーブルが作成できると（ステップＳ４６）、リターンステータス（処理結果の状態）に「正常終了」を設定し（ステップＳ４７）、終了する。
【０１２８】
このように本第３の実施の形態では、デフォルトの利用者タイプ名が使用できるので、特に利用者タイプに対して許可を与える利用者タイプのみテーブルのメンテナンスを行えばよいことになり、システム管理者の負担が軽減できる利点がある。
【０１２９】
（第４の実施の形態）
図２４は、本発明の第４の実施の形態によるコンピュータシステムの構成ブロック図である。第１の実施の形態では、利用者毎の機能使用の許可設定機構４ａ（図１参照）をログイン時に動作させるので、ログインの度にアプリケーションプログラム用の機能使用の許可テーブル５〜７（図１参照）が生成されることになる。したがって、規模の大きいシステムでは、アプリケーションプログラムの数も多いので、ログイン後にアプリケーションプログラムが使えるようになるまでの待ち時間がかかる恐れがある。
【０１３０】
そこで、本第４の実施の形態では、図２４において利用者毎の機能使用の許可設定機構４ｄが、バッチ処理で予め設定された全ての利用者タイプに対応したアプリケーションプログラムの機能使用の許可テーブルを全てのアプリケーションプログラムに対して用意しておくようしている。また、利用者毎の機能使用の許可設定機構４ｄは、利用者タイプ別の機能使用の許可定義テーブル３が更新された場合に手動でまたは自動的に起動され、各アプリケーションプログラム毎に機能使用の許可テーブルを更新することを行うようにしている。この場合には、アプリケーションプログラムには、利用者タイプを意識した処理を組み込むことになる。
【０１３１】
アプリケーションプログラム用の機能使用の許可テーブルは、利用者タイプに対応して複数件分用意されている。すなわち、利用者タイプ名＝ＯＰＥＲＡＴＯＲ用として、アプリケーションプログラムＡ用の機能使用の許可テーブル５１とアプリケーションプログラムＢ用の機能使用の許可テーブル６１とアプリケーションプログラムＣ用の機能使用の許可テーブル７１が用意されている。
【０１３２】
利用者タイプ名＝ＭＡＩＮＴＡＩＮ用として、アプリケーションプログラムＡ用の機能使用の許可テーブル５２とアプリケーションプログラムＢ用の機能使用の許可テーブル６２とアプリケーションプログラムＣ用の機能使用の許可テーブル７２が用意されている。
【０１３３】
また、利用者タイプ名＝ＴＲＡＩＮＩＮＧＲ用として、アプリケーションプログラムＡ用の機能使用の許可テーブル５３とアプリケーションプログラムＢ用の機能使用の許可テーブル６３アプリケーションプログラムＣ用の機能使用の許可テーブル７３が用意されている。
【０１３４】
アプリケーションプログラムＡ３０８は、処理時の制御を行うが、処理時にアプリケーションプログラムＡ用の機能使用の許可テーブル５１，５２，５３を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【０１３５】
アプリケーションプログラムＢ３０９は、処理時の制御を行うが、処理時にアプリケーションプログラムＢ用の機能使用の許可テーブル６１，６２，６３を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【０１３６】
アプリケーションプログラムＣ３１０は、処理時の制御を行うが、処理時にアプリケーションプログラムＣ用の機能使用の許可テーブル７１，７２，７３を参照し、利用者に対して該当機能の使用を許可するかどうかをチェックする処理が組み込まれている。
【０１３７】
次に、第４の実施の形態の動作を図２５〜図２９を参照して説明する。なお、図２５は、利用者毎の機能使用の許可設定機構４ｄの動作を示すフローチャートである。図２６〜図２９は、アプリケーションプログラム３０８Ａの動作を示すフローチャートである。図２６〜図２９では、アプリケーションプログラム３０８Ａの動作を示すが、アプリケーションプログラム３０９Ｂ，３１０Ｃの動作同様である。
【０１３８】
図２５において、利用者毎の機能使用の許可設定機構４ｄが利用者タイプ別の機能使用の許可定義テーブル３が更新された場合に手動によりまたは自動的に起動される（ステップＳ５０）。起動されると、利用者毎の機能使用の許可設定機構４ｄは、利用者タイプ別の機能使用許可定義テーブル３を読み込み（ステップＳ５１）、アプリケーションプログラムｉの機能使用の許可テーブルを全ての利用者タイプに対して作成する（ステップＳ５２）。
【０１３９】
最初の処理では、アプリケーションプログラムＡ用機能使用の許可テーブル５１，５２，５３，・・が作成される。次の２回目の処理では、アプリケーションプログラムＢ用機能使用の許可テーブル６１，６２，６３，・・が作成される。その次の３回目の処理では、アプリケーションプログラムＣ用機能使用の許可テーブル７１，７２，７３，・・が作成される。
【０１４０】
具体的には、次のようにして作成される。［１］利用者タイプ別の機能使用許可定義テーブル３の単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），単位機能名＃０の許可された利用者タイプ名３（４．Ａ．０．Ｔ３），単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４），単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名３（４．Ａ．１．Ｔ３），単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４），・・・を読み取り、利用者タイプ名が「ＯＰＥＲＡＴＯＲ」「ＴＲＡＩＮＩＮＧ」「ＭＡＮＡＧＥＲ」であることを記録する。
【０１４１】
［２］利用者タイプ別の機能使用許可定義テーブル３の単位機能名＃０（４．Ａ．０．Ｆ），単位機能名＃１（４．Ａ．１．Ｆ），単位機能名＃２（４．Ａ．２．Ｆ），単位機能名＃３（４．Ａ．３．Ｆ），単位機能名＃４（４．Ａ．４．Ｆ）を読み出す。
【０１４２】
［３］アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１の初期状態を次のようにして作成する。＜１＞単位機能名＃０（５１．０．Ｆ）に単位機能名＃０（４．Ａ．０．Ｆ）を設定する。単位機能名＃０の許可サイン（５１．０．Ｓ）を値「ＯＦＦ」に設定する。＜２＞単位機能名＃１（５１．１．Ｆ）に単位機能名＃１（４．Ａ．１．Ｆ）を設定する。単位機能名＃１の許可サイン（５１．１．Ｓ）を値「ＯＦＦ」に設定する。
【０１４３】
＜３＞単位機能名＃２（５１．２．Ｆ）に単位機能名＃２（４．Ａ．２．Ｆ）を設定する。単位機能名＃２の許可サイン（５１．２．Ｓ）を値「ＯＦＦ」に設定する。＜４＞単位機能名＃４（５１．４．Ｆ）に単位機能名＃４（４．Ａ．４．Ｆ）を設定する。単位機能名＃４の許可サイン（５１．４．Ｓ）を値「ＯＦＦ」に設定する。
【０１４４】
［４］アプリケーションプログラムＡ用の機能使用の許可テーブルＭＡＩＮＴＡＩＮ用５２の初期状態を次のようにして作成する。＜１＞単位機能名＃０（５２．０．Ｆ）に単位機能名＃０（４．Ａ．０．Ｆ）を設定する。単位機能名＃０の許可サイン（５２．０．Ｓ）を値「ＯＦＦ」に設定する。＜２＞単位機能名＃１（５２．１．Ｆ）に単位機能名＃１（４．Ａ．１．Ｆ）を設定する。単位機能名＃１の許可サイン（５２．１．Ｓ）を値「ＯＦＦ」に設定する。
【０１４５】
＜３＞単位機能名＃２（５２．２．Ｆ）に単位機能名＃２（４．Ａ．２．Ｆ）を設定する。単位機能名＃２の許可サイン（５２．２．Ｓ）を値「ＯＦＦ」に設定する。＜４＞単位機能名＃４（５２．４．Ｆ）に単位機能名＃４（４．Ａ．４．Ｆ）を設定する。単位機能名＃４の許可サイン（５２．４．Ｓ）を値「ＯＦＦ」に設定する。
【０１４６】
［５］アプリケーションプログラムＡ用の機能使用の許可テーブルＴＲＡＩＮＩＮＧ用５３の初期状態を同様に作成する。［６］利用者タイプ別の機能使用許可定義テーブル３の単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）を読み取り、「ＯＰＥＲＡＴＯＲ」であることを判定し、アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１の単位機能名＃０の許可サイン（５１．０．Ｓ）を「ＯＮ」に設定する。
【０１４７】
［７］利用者タイプ別の機能使用許可定義テーブル３の単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２）を読み取り、「ＴＲＡＩＮＩＮＧ」であることを判定し、アプリケーションプログラムＡ用の機能使用の許可テーブルＴＲＡＩＮＩＮＧ用５３の単位機能名＃０の許可サイン（５３．０．Ｓ）を値「ＯＮ」に設定する。
【０１４８】
［８］利用者タイプ別の機能使用許可定義テーブル３の単位機能名＃０の許可された利用者タイプ名３（４．Ａ．０．Ｔ３）を読み取り、「ＭＡＩＮＴＡＩＮ」であることを判定し、アプリケーションプログラムＡ用の機能使用の許可テーブルＭＡＩＮＴＡＩＮ用５２の単位機能名＃０の許可サイン（５２．０．Ｓ）を値「ＯＮ」に設定する。
【０１４９】
［９］以下、単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４），単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）、単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１），単位機能名＃２の許可された利用者タイプ名２（４．Ａ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ａ．２．Ｔ３），単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１），単位機能名＃４の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）に対して、同様の処理をして該当テーブルの単位機能名の許可サインを値「ＯＮ」に設定する。
【０１５０】
以上のようにして、利用者タイプ別の機能使用許可定義テーブル３に登録された全ての機能名（アプリケーションプログラム）に対して、アプリケーションプログラムの機能使用の許可テーブルを作成し（ステップＳ５３）、テーブル作成処理を終了する。
【０１５１】
次に図２６は、アプリケーションプログラムＡ３０８での初期処理の動作を示したフローチャートである。図２６において、利用者タイプの決定テーブル２を読み込み（ステップＳ５５）、利用者タイプの決定テーブルを検索してユーザ名に対応した利用者のタイプ名を次のようにして探すことを行い（ステップＳ５６、Ｓ５７）、その結果に応じてステップＳ５８とＳ５９の処理を行う。
【０１５２】
例えば、ユーザ名が「ＴＡＮＡＫＡ」の場合について説明する。［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２］ユーザ名＃３（３．３．Ｎ）が「ＴＡＮＡＫＡ」と一致することを検出する。｛３］ユーザ名＃３（３．３．Ｎ）に対応したユーザ名＃３の利用者タイプ（３．３．Ｔ）を取り出し、利用者タイプ名＝ＯＰＥＲＡＴＯＲとする。
【０１５３】
利用者タイプ名が見つかった場合は、その利用者タイプ名を記憶し（ステップＳ５８）、後続の処理へ進む。一方、利用者タイプ名が見つからなかった場合は、機能の使用が許可されていないことをメッセージで表示し（ステップＳ５９）、処理を終了する。
【０１５４】
次に図２７は、アプリケーションプログラムＡ３０８でのコマンドリストメニューの表示時の動作を示したフローチャートである。図２７において、利用者タイプに対応したアプリケーションプログラムＡ用の機能使用の許可テーブル５１，５２，５３，・・のいずれかを読み込む（ステップＳ６０）。ここでは上記のようにして記憶した利用者タイプ名に対応したアプリケーションプログラムＡ用の機能使用の許可テーブルを読み込む。例えば、ユーザ名が「ＴＡＮＡＫＡ」であれば、利用者タイプ名が「ＯＰＥＲＡＴＯＲ」であるので、アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１を読み込む。
【０１５５】
次いで表示しようとするコマンドリストメニューのコマンドのうち、許可されていない単位機能名（コマンド名）を削除する。アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１が図７のように設定されている場合について説明する。
【０１５６】
［１］単位機能名＃０の許可サイン（５１．０．Ｓ）の値は「ＯＮ」であるので、単位機能名「Ａ０」はコマンドリストから削除しない。［２］単位機能名＃１の許可サイン（５１．１．Ｓ）の値は「ＯＮ」であるので、単位機能名（Ａ１）はコマンドリストから削除しない。［３］単位機能名＃２の許可サイン（５１．２．Ｓ）の値は「ＯＮ」であるので、単位機能名（Ａ２）はコマンドリストから削除しない。［４］単位機能名＃３の許可サイン（５１．３．Ｓ）の値は「ＯＦＦ」であるので、単位機能名（Ａ３）はコマンドリストから削除する。［５］単位機能名＃４の許可サイン（５１．４．Ｓ）の値は「ＯＦＦ」であるので、単位機能名（Ａ４）はコマンドリストから削除する。以上のコマンドリストメニューの処理が終わると、コマンドリストメニューの表示処理へ進む（ステップＳ６２）。
【０１５７】
次に、図２８は、アプリケーションプログラムＡ３０８でのプルダウンメニューまたはポップアップメニューの表示時の動作を示したフローチャートである。図２８において、利用者タイプに対応したアプリケーションプログラムＡ用の機能使用の許可テーブル５１，５２，５３，・・・のいずれかを読み込む（ステップＳ６５）。ここでは、上記のように記憶した利用者タイプ名に対応したアプリケーションプログラムＡ用の機能使用の許可テーブルを読み込む。例えば、ユーザ名が「ＴＡＮＡＴＡ」であれば、利用者タイプ名が「ＯＰＥＲＡＴＯＲ」であるので、アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１を読み込む。
【０１５８】
次いで、表示しようとするプルダウンメニューまたはポップアップメニュー内の単位機能名のうち、許可されていない単位機能名を次のようにして削除またはカスケード（選択できない状態）に設定し（ステップＳ６６）。処理を終了する。アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１が図７のように設定されている場合について説明する。
【０１５９】
ステップＳ６６では、次の処理が行われる。［１］単位機能名＃０の許可サイン（５１．０．Ｓ）の値は「ＯＮ」であるので、単位機能名（Ａ０）は削除またはカスケード設定しない。［２］単位機能名＃１の許可サイン（５１．１．Ｓ）の値は「ＯＮ」であるので、単位機能名（Ａ１）は削除またはカスケード設定しない。［３］単位機能名＃２の許可サイン（５１．２．Ｓ）の値は「ＯＮ」であるので、単位機能名（Ａ２）は削除またはカスケード設定から削除しない。［４］単位機能名＃３の許可サイン（５１．３．Ｓ）の値は「ＯＦＦ」であるので、単位機能名（Ａ３）は削除またはカスケード設定する。［５］単位機能名＃４の許可サイン（５１．４．Ｓ）の値は「ＯＦＦ」であるので、単位機能名（Ａ４）は削除またはカスケード設定する。
【０１６０】
次に、図２９は、アプリケーションプログラムＡ３０８でのドラッグアンドドロップ形式または直接コマンド形式などによる実行時の動作を示したフローチャートである。
【０１６１】
図２９において、利用者タイプに対応したアプリケーションプログラムＡ用の機能使用の許可テーブル５１，５２，５３・・・のいずれかを読み込む（ステップＳ６７）。ここでは上記のように記憶した利用者タイプに対応したアプリケーションプログラムＡ用の機能使用の許可テーブルを読み込む。例えば、ユーザ名が「ＴＡＮＡＫＡ」であれば、利用者タイプ名が「ＯＰＥＲＡＴＯＲ」であるので、アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１を読み込む。
【０１６２】
次いで、該当の単位機能の使用は許可されているかどうかを判断し（ステップＳ６８）、その判断結果に応じてステップＳ６９とＳ７０の処理を行う。アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１が図７のように設定されている場合で、単位機能名（Ａ３）が選択された場合の判断処理について説明する。
【０１６３】
［１］アプリケーションプログラムＡ用の機能使用の許可テーブルＯＰＥＲＡＴＯＲ用５１の単位機能名＃０（５１．０．Ｆ），単位機能名＃１（５１．１．Ｆ），単位機能名＃２（５１．２．Ｆ），単位機能名＃３（５１．３．Ｆ），単位機能名＃４（５１．４．Ｆ）をサーチして、単位機能名＝Ａ３のレコードを探す。該当するレコードは、単位機能名＃３（５１．３．Ｆ）である。［２］単位機能名の＃３の許可サイン（５１．３．Ｓ）値は「ＯＦＦ」であるので、単位機能名（Ａ３）は許可されていない。
【０１６４】
該当機能が許可されている場合は、ステップＳ６９へ進み、該当単位機能を実行する。一方、許可されていない場合はステップＳ７０へ進み、該当単位機能は使用を許可されていないことをメッセージ表示し、終了する。
【０１６５】
このように本第４の実施の形態では、利用者毎の機能使用の許可設定機構４ｄがアプリケーションプログラム用の機能使用の許可テーブルをバッチ処理として予め作成しておくので、ログイン時に毎回、機能使用の許可テーブルを生成することがなくなる。したがって、システムの規模が大規模化し、１回のログインで多くのアプリケーションプログラムを動作させる場合に、テーブル作成などによる準備時間を減らすことができ、待ち時間が減少する利点がある。
【０１６６】
（第５の実施の形態）
図３０は、本発明の第５の実施の形態によるコンピュータシステムの構成ブロック図である。本第５の実施の形態は、利用者毎の機能使用の許可設定機構４ａ（図１参照）を実装しないで、個々のアプリケーションプログラムが直接、利用者タイプの決定テーブル２や利用者タイプ別の機能使用の許可定義テーブル３を参照する方式である。この場合には、個々のアプリケーションプログラムには、ユーザ名，利用者タイプを意識した処理が組み込まれることになる。
【０１６７】
図３０において、アプリケーションプログラムＡ４０８、アプリケーションプログラムＢ４０９，アプリケーションプログラムC４１０は、それぞれ、ログイン時の利用者毎の動作環境設定機構１から与えられたログイン時のユーザ名を検索キーにして利用者タイプの決定テーブル２を参照し、ユーザ名を対応する利用者タイプ名を決定する。
【０１６８】
また、アプリケーションプログラムＡ４０８、アプリケーションプログラムＢ４０９，アプリケーションプログラムC４１０は、それぞれ、決定した利用者タイプ名に対して利用者タイプ別の機能使用の許可定義テーブル３を参照して使用の「許可」「禁止」の処理の制御を行う。
【０１６９】
次に、本第５の実施の形態の動作を図３１〜図３３を参照して説明する。なお、図３１〜図３３では、アプリケーションプログラムＡ４０８について示すが、アプリケーションプログラムＢ４０９やＣ４１０についても同様である。
【０１７０】
図３１は、アプリケーションプログラムＡ４０８のコマンドリストメニューの表示時の動作を示したフローチャートである。図３１において、利用者タイプの決定テーブル２を読み込み（ステップＳ７４）、利用者タイプの決定テーブル２を検索してユーザ名に対応した利用者タイプ名を探すことを次のようにして行う（ステップＳ７５）。例えば、ユーザ名が、「ＴＡＮＡＫＡ」の場合について説明する。
【０１７１】
［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２］ユーザ名＃３（３．３．Ｎ）が「ＴＡＮＡＫＡ」と一致することを検出する。［３］ユーザ名＃３（３．３．Ｎ）に対応したユーザ名＃３の利用者タイプ（３．３．Ｔ）を取り出し、利用者タイプ名＝ＯＰＥＲＡＴＯＲとする。
【０１７２】
利用者タイプ名が見つかると（ステップＳ７６）、利用者タイプ別の機能使用の許可定義テーブル３を読み込み（ステップＳ７７）、表示しようとするコマンドリストメニューのコマンドのうち、許可されていない単位機能名（コマンド名）を次のようにして削除する（ステップＳ７８）。
【０１７３】
利用者タイプ別の機能使用の許可定義テーブル３が図５のように設定されている場合について説明する。［１］単位機能名＃０（４．Ａ．０．Ｆ）の値である（Ａ０）における、単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），単位機能名＃０の許可された利用者タイプ名３（４．Ａ．０．Ｔ３），単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［２］単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃０（Ａ０）は許可されているのでコマンドリストから削除しない。
【０１７４】
［３］単位機能名＃１（４．Ａ．１．Ｆ）の値である（Ａ１）における、単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名３（４．Ａ．１．Ｔ３），単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［４］単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃１（Ａ１）は許可されているのでコマンドリストから削除しない。
【０１７５】
［５］単位機能名＃２（４．Ａ．２．Ｆ）の値である（Ａ２）において、単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１），単位機能名＃２の許可された利用者タイプ名２（４．Ａ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ａ．２．Ｔ３）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［６］単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃２（Ａ２）は許可されているのでコマンドリストから削除しない。
【０１７６】
［７］単位機能名＃３（４．Ａ．３．Ｆ）の値である「Ａ３」における、単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［８］単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１）の値は「ＯＰＥＲＡＴＯＲ」と一致しない。したがって、単位機能名＃３（Ａ３）は許可されていないのでコマンドリストから削除する。
【０１７７】
［９］単位機能名＃４（４．Ａ．４．Ｆ）の値である（Ａ４）における、単位機能名＃３の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するか調べる。［１０］単位機能名＃４の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）の値は「ＯＰＥＲＡＴＯＲ」と一致しない。したがって、単位機能名＃４（Ａ４）は許可されていないのでコマンドリストから削除する。
【０１７８】
以上の削除処理を終了すると、コマンドリストメニューの表示処理へ進む（ステップＳ７９）。一方、ステップＳ７６において、利用者タイプ名が見つからなかった場合には、該当機能全体の使用が許可されていないことを意味するメッセージを表示して終了する（ステップＳ８０）。
【０１７９】
次に、図３２は、アプリケーションプログラムＡ４０８のプルダウンメニューまたはポップアップメニューの表示時の動作を示したフローチャートである。図３２において、利用者タイプの決定テーブル２を読み込み（ステップＳ８３）、利用者タイプの決定テーブル２を検索してユーザ名に対応した利用者タイプ名を探すことを次のようにして行う。
【０１８０】
例えば、ユーザ名が「ＴＡＮＡＫＡ」の場合について説明する。［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２」ユーザ名＃３（３．３．Ｎ）が「ＴＡＮＡＫＡ」と一致することを検出する。［３］ユーザ名＃３（３．３．Ｎ）に対応したユーザ名＃３の利用者タイプ（３．３．Ｔ）を取り出し、利用者タイプ名＝ＯＰＥＲＡＴＯＲとする。
【０１８１】
利用者タイプ名が見つかった場合には（ステップＳ８５）、利用者タイプ別の機能使用の許可定義テーブル３を読み込み（ステップＳ８６）、表示しようとするプルダウンメニューまたはポップアップメニュー内の単位機能名のうち、許可されていない単位機能名を削除またはカスケード（選択できない状態）することを次のようにして行う（ステップＳ８７）。
【０１８２】
利用者タイプ別の機能使用の許可定義テーブル３が図５のように設定されている場合について説明する。［１］単位機能名＃０（４．Ａ．０．Ｆ）の値である（Ａ０）における、単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１），単位機能名＃０の許可された利用者タイプ名２（４．Ａ．０．Ｔ２），単位機能名＃０の許可された利用者タイプ名３（４．Ａ．０．Ｔ３），単位機能名＃０の許可された利用者タイプ名４（４．Ａ．０．Ｔ４）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［２］単位機能名＃０の許可された利用者タイプ名１（４．Ａ．０．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃０（Ａ０）は許可されているので削除またはカスケードしない。
【０１８３】
［３］単位機能名＃１（４．Ａ．１．Ｆ）の値である（Ａ１）における、単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１），単位機能名＃１の許可された利用者タイプ名２（４．Ａ．１．Ｔ２），単位機能名＃１の許可された利用者タイプ名３（４．Ａ．１．Ｔ３），単位機能名＃１の許可された利用者タイプ名４（４．Ａ．１．Ｔ４）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［４］単位機能名＃１の許可された利用者タイプ名１（４．Ａ．１．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃１（Ａ１）は許可されているので削除またはカスケードしない。
【０１８４】
［５］単位機能名＃２（４．Ａ．２．Ｆ）の値である「Ａ２」における、単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１），単位機能名＃２の許可された利用者タイプ名２（４．Ａ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ａ．２．Ｔ３）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［６］単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」である。したがって、単位機能名＃２（Ａ２）は許可されているので削除またはカスケードしない。
【０１８５】
［７］単位機能名＃３（４．Ａ．３．Ｆ）の値である（Ａ３）における、単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［８］単位機能名＃３の許可された利用者タイプ名１（４．Ａ．３．Ｔ１）の値は「ＯＰＥＲＡＴＯＲ」と一致しない。したがって、単位機能名＃３（Ａ３）は許可されていないので削除またはカスケードする。
【０１８６】
［９］単位機能名＃４（４．Ａ．４．Ｆ）の値である（Ａ４）における、単位機能名＃３の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するか調べる。［１０］単位機能名＃４の許可された利用者タイプ名１（４．Ａ．４．Ｔ１）の値は「ＯＰＥＲＡＴＯＲ」と一致しない。したがって、単位機能名＃４（Ａ４）は許可されていないので削除またはカスケードする。
【０１８７】
以上の削除処理を終了すると、コマンドリストメニューの表示処理へ進む（ステップＳ８９）。一方、ステップＳ８５において、利用者タイプが見つからなかった場合には、該当機能全体の使用が許可されていないことを意味するメッセージを表示して終了する（ステップＳ９０）。
【０１８８】
次に、図３３は、アプリケーションプログラムＡ４０８のドラッグアンドドロップ形式または直接コマンド形式などの実行時の動作を示したフローチャートである。図３３において、利用者タイプの決定テーブル２を読み込み（ステップＳ９５）、利用者タイプの決定テーブル２を検索してユーザ名に対応した利用者タイプ名を探すことを次のようにして行う（ステップＳ９４）。
【０１８９】
例えば、ユーザ名が「ＴＡＮＡＫＡ」の場合について説明する。［１］ユーザ名＃１（３．１．Ｎ），ユーザ名＃２（３．２．Ｎ），ユーザ名＃３（３．３．Ｎ）の順にサーチする。［２］ユーザ名＃３（３．３．Ｎ）が「ＴＡＮＡＫＡ」と一致することを検出する。［３」ユーザ名＃３（３．３．Ｎ）に対応したユーザ名＃３の利用者タイプ（３．３．Ｔ）を取り出し、利用者タイプ名＝ＯＰＥＲＡＴＯＲとする。
【０１９０】
利用者タイプ名が見つかった場合には（ステップＳ９６）、利用者タイプ別の機能使用の許可定義テーブル３を読み込み（ステップＳ９７）、該当単位機能は許可されているかを次のようにして調べる（ステップＳ９８）。該当機能が（Ａ２）であり、利用者タイプ別の機能使用の許可定義テーブル３が図５のように設定されている場合について説明する。
【０１９１】
［１］単位機能名＃２（４．Ａ．２．Ｆ）の値である（Ａ２）において、単位機能名＃３の許可された利用者タイプ名１（４．Ａ．２．Ｔ１），単位機能名＃３の許可された利用者タイプ名２（４．あ．２．Ｔ２），単位機能名＃２の許可された利用者タイプ名３（４．Ａ．２．Ｔ３）の値が利用者タイプ名「ＯＰＥＲＡＴＯＲ」と一致するかを調べる。［２］単位機能名＃２の許可された利用者タイプ名１（４．Ａ．２．Ｔ１）の値が「ＯＰＥＲＡＴＯＲ」と一致するので、許可されていると判断する。
【０１９２】
該当の利用者タイプ名が許可されている場合は、ステップＳ９９へ進み、該当単位機能を実行する（ステップＳ９９）。一方、ステップＳ９６において利用者タイプ名が見つからなかった場合やステップＳ９８において該当の利用者タイプ名が許可されていない場合は、ステップＳ１００へ進み、該当機能全体の使用が許可されていないことを意味するメッセージを表示し終了する。
【０１９３】
このように本第５の実施の形態では、個々のアプリケーションプログラムが利用者タイプの決定テーブル２や利用者のタイプ別の機能使用の許可定義テーブル３を参照するので、構成が簡素になるという利点がある。但し、全てのアプリケーションプログラムに利用者毎の機能使用の許可設定機構を埋め込むことになるので、冗長性が出るとともに、新規のアプリケーションの追加に関してアプリケーション相互の独立性が低くなるという不利はある。
【０１９４】
【発明の効果】
以上説明したように本発明よれば、利用者毎に任意の機能構成を設定できるアプリケーションプログラムを実装できるので、予め決めた約束毎を守ってアプリケーションプログラムを作り込んでおくことにより、利用者タイプ毎の機能使用の許可の設定を任意に変更できるようになる。また、利用者タイプの追加／変更も任意に行えるようになる。さらに、各アプリケーションプログラムは、他のアプリケーションプログラムとは独立して機能の追加／変更を行うことができるようになる。
【０１９５】
また、本発明によれば、アプリケーションプログラム側では機能使用の許可方法を選択できるようになる。例えば、ポップアップメニューやプルダウンメニューまたはコマンドメニューなどのメニューで許可されていない機能を選択できないように制限する方法が採用できる。また、ドラッグ＆ドロップによる指示またはコマンドラインから直接コマンドを入力することでアプリケーションが起動される場合に、機能の実行処理の受付条件として機能使用の許可をチェックする方法が採用できる。これらの２つの方法は、併用することもができ、また選択的に採用することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態によるコンピュータシステムの構成ブロック図である。
【図２】利用者タイプ決定テーブルの構成例である。
【図３】利用者タイプ別の機能使用の許可／禁止の規定例である。
【図４】機能（アプリケーションプログラム）の階層構成例である。
【図５】利用者タイプ別の機能使用の許可定義テーブルの構成例である。
【図６】利用者タイプ別の機能使用の許可定義テーブルの構成例である。
【図７】利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＡ用の機能使用の許可テーブルの構成例である。
【図８】利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＡ用の機能使用の許可テーブルの構成例である。
【図９】利用者タイプ名がＴＲＡＩＮＩＮＧの場合のアプリケーションプログラムＡ用の機能使用の許可テーブルの構成例である。
【図１０】利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＢ用の機能使用の許可テーブルの構成例である。
【図１１】利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＢ用の機能使用の許可テーブルの構成例である。
【図１２】利用者タイプ名がＴＲＡＩＮＩＮＧの場合のアプリケーションプログラムＢ用の機能使用の許可テーブルの構成例である。
【図１３】利用者タイプ名がＯＰＥＲＡＴＯＲの場合のアプリケーションプログラムＣ用の機能使用の許可テーブルの構成例である。
【図１４】利用者タイプ名がＭＡＩＮＴＡＩＮの場合のアプリケーションプログラムＣ用の機能使用の許可テーブルの構成例である。
【図１５】利用者タイプ名がＴＲＡＩＮＩＮＧの場合のアプリケーションプログラムＣ用の機能使用の許可テーブルの構成例である。
【図１６】第１の実施の形態の利用者毎の機能使用の許可設定機構の動作を示すフローチャートである。
【図１７】第１の実施の形態のアプリケーションプログラムのコマンドリストメニューの表示時の動作を示すフローチャートである。アプリケーションプログラムＡ８について示すが、Ｂ９，Ｃ１０についても同様である。
【図１８】第１の実施の形態のアプリケーションプログラムのプルダウンメニューまたはポップアップメニューの表示時の動作を示すフローチャートである。アプリケーションプログラムＡ８について示すが、Ｂ９，Ｃ１０についても同様である。
【図１９】第１の実施の形態のアプリケーションプログラムのドラッグアンドドロップ形式または直接コマンド形式などの実行時の動作を示すフローチャートである。アプリケーションプログラムＡ８について示すが、Ｂ９，Ｃ１０についても同様である。
【図２０】本発明の第２の実施の形態によるコンピュータシステムの構成ブロック図である。
【図２１】第２の実施の形態の利用者毎の機能使用の許可設定機構の動作を示すフローチャートである。
【図２２】本発明の第３の実施の形態によるコンピュータシステムの構成ブロック図である。
【図２３】第３の実施の形態の利用者毎の機能使用の許可設定機構の動作を示すフローチャートである。
【図２４】本発明の第４の実施の形態によるコンピュータシステムの構成ブロック図である。
【図２５】第４の実施の形態の利用者毎の機能使用の許可設定機構の動作を示すフローチャートである。
【図２６】第４の実施の形態のアプリケーションプログラムの初期処理の動作を示すフローチャートである。アプリケーションプログラムＡ３０８について示すが、Ｂ３０９，Ｃ３１０についても同様である。
【図２７】第４の実施の形態のアプリケーションプログラムのコマンドリストメニューの表示時の動作を示すフローチャートである。アプリケーションプログラムＡ３０８について示すが、Ｂ３０９，Ｃ３１０についても同様である。
【図２８】第４の実施の形態のアプリケーションプログラムのプルダウンメニュいまたはポップアップメニューの表示時の動作を示すフローチヤートである。アプリケーションプログラムＡ３０８について示すが、Ｂ３０９，Ｃ３１０についても同様である。
【図２９】第４の実施の形態のアプリケーションプログラムのドラッグアンドドロップ形式または直接コマンド形式などの実行時の動作を示すフローチャートである。アプリケーションプログラムＡ３０８について示すが、Ｂ３０９，Ｃ３１０についても同様である。
【図３０】本発明の第５の実施の形態のコンピュータシステムの構成ブロック図である。
【図３１】第５の実施の実施の形態のアプリケーションプログラムのコマンドリストメニューの表示時の動作を示すフローチャートである。アプリケーションプログラムＡ４０８について示すが、Ｂ４０９，Ｃ４１０についても同様である。
【図３２】第５の実施の形態のアプリケーションプログラムのプルダウンメニューまたはポップアップメニューの表示時の動作を示すフローチャートである。アプリケーションプログラムＡ４０８について示すが、Ｂ４０９，Ｃ４１０についても同様である。
【図３３】第５の実施の形態のアプリケーションプログラムのドラッグアンドドロップ形式または直接コマンド形式などの実行時の動作を示すフローチャートである。アプリケーションプログラムＡ４０８について示すが、Ｂ４０９，Ｃ４１０についても同様である。
【符号の説明】
１  ログイン時の利用者毎の動作環境設定機構
２  利用者タイプの決定テーブル
３  利用者タイプ別の機能使用の許可定義テーブル
４ａ，４ｂ，４ｃ，４ｄ  利用者毎の機能使用の設定機構
５  アプリケーションプログラムＡ用の機能使用の許可テーブル
６  アプリケーションプログラムＢ用の機能使用の許可テーブル
７  アプリケーションプログラムＣ用の機能使用の許可テーブル
８、３０８，４０８  アプリケーションプログラムＡ
９，３０９，４０９  アプリケーションプログラムＢ
１０，３１０，４１０  アプリケーションプログラムＣ
５１  アプリケーションプログラムＡ用の機能使用の許可テーブル（ＯＰＥＲＡＴＯＲ用）
５２  アプリケーションプログラムＡ用の機能使用の許可テーブル（ＭＡＩＮＴＡＩＮ用）
５３  アプリケーションプログラムＡ用の機能使用の許可テーブル（ＴＲＡＩＮＩＮＧ用）
６１  アプリケーションプログラムＢ用の機能使用の許可テーブル（ＯＰＥＲＡＴＯＲ用）
６２  アプリケーションプログラムＢ用の機能使用の許可テーブル（ＭＡＩＮＴＡＩＮ用）
６３  アプリケーションプログラムＢ用の機能使用の許可テーブル（ＴＲＡＩＮＩＮＧ用）
７１  アプリケーションプログラムＣ用の機能使用の許可テーブル（ＯＰＥＲＡＴＯＲ用）
７２  アプリケーションプログラムＣ用の機能使用の許可テーブル（ＭＡＩＮＴＡＩＮ用）
７３  アプリケーションプログラムＣ用の機能使用の許可テーブル（ＴＲＡＩＮＩＮＧ用）
【図１】
0004718662.tif 000002
【図２】
0004718662.tif 000003
【図３】
0004718662.tif 000004
【図４】
0004718662.tif 000005
【図５】
0004718662.tif 000006
【図６】
0004718662.tif 000007
【図７】
0004718662.tif 000008
【図８】
0004718662.tif 000009
【図９】
0004718662.tif 000010
【図１０】
0004718662.tif 000011
【図１１】
0004718662.tif 000012
【図１２】
0004718662.tif 000013
【図１３】
0004718662.tif 000014
【図１４】
0004718662.tif 000015
【図１５】
0004718662.tif 000016
【図１６】
0004718662.tif 000017
【図１７】
0004718662.tif 000018
【図１８】
0004718662.tif 000019
【図１９】
0004718662.tif 000020
【図２０】
0004718662.tif 000021
【図２１】
0004718662.tif 000022
【図２２】
0004718662.tif 000023
【図２３】
0004718662.tif 000024
【図２４】
0004718662.tif 000025
【図２５】
0004718662.tif 000026
【図２６】
0004718662.tif 000027
【図２７】
0004718662.tif 000028
【図２８】
0004718662.tif 000029
【図２９】
0004718662.tif 000030
【図３０】
0004718662.tif 000031
【図３１】
0004718662.tif 000032
【図３２】
0004718662.tif 000033
【図３３】
0004718662.tif 000034