(57)【要約】【課題】  プログラムの連携によって要求された処理を実行する計算機において、プログラムの使用態様に応じてプログラムに対する実行権限を決定すること。【解決手段】ＣＰＵ１１は、管理プログラムＢ（Ｐｂ）を実行し、管理プログラムＡ（Ｐａ）から送信された認証情報および要求、プログラムＩＤを受信し、認証情報が正しいか否かを判定する。ＣＰＵ１１は、認証情報が正しい場合には認証されたユーザの実行権限情報を取得し、受信したプログラムＩＤと取得した実行権限情報に含まれているプログラムＩＤを対比し、受信したプログラムＩＤに対応する実行権限が定義されているか否かを判定する。ＣＰＵ１１は、受信したプログラムＩＤに実行権限が定義されていると判定した場合には、定義されている実行権限を、管理プログラムＢ（Ｐｂ）に対する実行権限として設定する。【選択図】  図１
2006127205.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの連携によって要求された処理を実行する計算機であって、
処理の要求および認証情報を取得する受信部と、
前記取得された要求に対応する処理を実行するプログラム実行部を呼び出す呼出元プログラム実行部であって、前記呼出元プログラム実行部を識別するための識別情報、前記取得された認証情報を呼び出し先のプログラム実行部に対して送信する、呼出元プログラム実行部と、
前記呼出元プログラム実行部に呼び出されることによって、あるいは、要求を直接受け取ることによって、要求された処理を実行する呼出先プログラム実行部であって、
前記認証情報および前記呼出元プログラム実行部の識別情報を用いて前記呼出先プロ  グラム実行部に対する実行権限を設定する認証部を有する呼出先プログラム実行部とを備える計算機。
【請求項２】
請求項１に記載の計算機において、
前記計算機は１または複数の記憶領域を構成する少なくとも１以上の記憶装置を備える記憶システムと接続されており、
前記呼出先プログラム実行部は、前記記憶システムに対する設定、前記記憶システムにおける記憶領域の変更、前記記憶システムにおける記憶領域の参照を実行する計算機。
【請求項３】
請求項２に記載の計算機において、
前記認証部は、前記呼出元プログラム実行部の識別情報を取得できない場合には、前記記憶システムにおける記憶領域の参照を許容する権限を前記実行権限に設定する計算機。
【請求項４】
請求項２に記載の計算機において、
前記認証部は、前記呼出元プログラム実行部の識別情報を取得できる場合には、前記記憶システムにおける記憶領域の変更を許容する権限を前記実行権限に設定する計算機。
【請求項５】
請求項１ないし請求項４のいずれかに記載の計算機において、
前記呼出元プログラム実行部の識別情報には、レジストリキー、ファイル構成、プログラム名、プログラムＩＤのいずれかが含まれる計算機。
【請求項６】
請求項１ないし請求項４のいずれかに記載の計算機はさらに、
前記認証情報、識別情報を用いて前記呼出先プログラム実行部に対する実行権限を設定するための実行権限設定テーブルを格納する記憶部を備え、
前記認証部は、前記実行権限設定テーブルを参照して、前記呼出先プログラム実行部に対する実行権限を設定する計算機。
【請求項７】
呼出元プログラム実行部と呼出元プログラム実行部によって呼び出される複数の呼出先プログラム実行部を備える計算機であって、
前記呼出元プログラム実行部は、
クライアント計算機から送信された認証情報に基づきアクセスを許容するか否かを決定する第１の認証部と、
アクセスが許容される場合には、前記クライアント計算機から送信された要求を実行するプログラム実行部を前記複数の呼出先プログラム実行部から特定する特定部と、
前記特定した呼出先プログラム実行部に対して、前記呼出元プログラム実行部を識別するための識別情報、前記認証情報を送信する呼出実行部とを備え、
前記呼出先プログラム実行部は、
前記呼出元プログラム実行部から送信された認証情報および識別情報、または前記クライアント計算機から送信された認証情報を用いてユーザ権限を設定する第２の認証部であって、前記識別情報を用いることができる場合には、前記識別情報を用いることができない場合よりも高いユーザ権限を設定する第２の認証部と、
前記第２の認証部によって判定されたユーザ権限に応じて、要求された処理を実行する要求実行部とを備える
計算機。
【請求項８】
請求項７に記載の計算機において、
前記計算機は１または複数の記憶装置から構成されている記憶システムと接続されており、
前記呼出先プログラム実行部は、前記クライアント計算機から要求された処理に応じて、前記記憶システムに対する設定、前記記憶システムにおけるリソースの変更、前記記憶システムにおけるリソースの参照を実行する計算機。
【請求項９】
請求項８に記載の計算機において、
前記第２の認証部によって設定される高いユーザ権限は、前記記憶システムにおけるリソースの変更を許容する権限である計算機。
【請求項１０】
請求項８に記載の計算機において、
前記識別情報を取得できない場合に前記第２の認証部によって設定されるユーザ権限は、前記記憶システムにおけるリソースの参照のみを許容する権限である計算機。
【請求項１１】
クライアント計算機から要求された処理をプログラムの連携によって実行するサーバ計算機と、プログラムに対する実行権限を設定する認証計算機とを備える計算機システムであって、
前記サーバ計算機は、
前記クライアント計算機から、要求および認証情報を取得する第１の受信部と、
前記クライアント計算機からの要求に対応する処理を実行するプログラム実行部を呼び出す呼出元プログラム実行部であって、前記呼出元プログラム実行部を識別するための識別情報、前記取得された認証情報を前記認証計算機に対して送信する、呼出元プログラム実行部と、
前記呼出元プログラム実行部に呼び出されることによって、あるいは、前記計算機システムの外部から要求を直接受け取ることによって、要求された処理を実行する呼出先プログラム実行部とを備え、
前記認証計算機は、
前記呼出元プログラム実行部から送信された識別情報、認証情報を受け取る第２の受信部と、
前記認証情報および前記呼出元プログラム実行部の識別情報を用いて前記呼出先プログラム実行部に対する実行権限を設定する認証部であって、前記識別情報を用いることができる場合には、前記識別情報を用いることができない場合とは異なる実行権限を設定する認証部と
を備える計算機システム。
【請求項１２】
請求項１１に記載の計算機システムはさらに、
前記計算機とネットワークを介して接続される記憶システムを備え、
前記サーバ計算機が備える、
前記呼出元プログラム実行部は、前記クライアント計算機からの要求に対応する処理  を、前記記憶システムに対して指示するプログラム実行部を呼び出すとともに、前記呼出元プログラム実行部を識別するための識別情報、前記取得された認証情報を前記呼び出し先のプログラム実行部に対して送信し、
前記呼出先プログラム実行部は、前記呼出元プログラム実行部に呼び出されることに  よって、あるいは、前記クライアント計算機からの要求を直接受け取ることによって、要求された処理の実行を前記記憶システムに対して指示すると共に、前記認証情報および前記呼出元プログラム実行部の情報を用いて前記呼出先プログ    ラム実行部における実行権限を設定する認証部を有し、
前記記憶システムは、
複数のディスク装置と、
前記呼出先プログラム実行部から送信された指示に応じて、前記複数のディスク装置  に対するアクセスを制御するアクセス制御部とを備える、
計算機システム。
【請求項１３】
請求項１２に記載の計算機システムにおいて、
前記認証部は、前記識別情報を用いることができる場合には、前記識別情報を用いることができない場合よりも、高い実行権限を設定する、計算機システム。
【請求項１４】
第１のプログラムと第２のプログラムの連携によって要求された処理を実行する計算機におけるアクセス制御方法であって、
処理の要求および認証情報を取得し、
前記取得した要求に対応する処理を実行するプログラムを呼び出すために、前記第１のプログラムを識別するための識別情報、前記取得した認証情報を取得し、
前記取得した認証情報および前記識別情報を用いて前記第２のプログラムに対する実行権限を設定し、
前記設定された実行権限に応じて、要求された処理を実行するアクセス制御方法。
【請求項１５】
請求項１４に記載のアクセス制御方法において、
前記第２のプログラムは第３のプログラムを呼び出すプログラムであり、
前記アクセス制御方法はさらに、
前記第３のプログラムを呼び出すために前記第２のプログラムを識別するための識別情報を取得し、
前記第２のプログラムの呼出先である前記第１のプログラムの識別情報と、前記第２のプログラムの識別情報と、前記第１のプログラムと第２のプログラムとの呼出関係とに基づいて前記第３のプログラムに対する実行権限を設定し、
前記設定された実行権限に応じて、要求された処理を実行するアクセス制御方法。
【請求項１６】
呼出元プログラムによって呼び出される複数の呼出先プログラム実行部を備える計算機におけるアクセス制御方法であって、
クライアント計算機から送信された認証情報に基づき前記呼出元プログラムの実行を許容するか否かを決定し、
実行が許容される場合には、前記クライアント計算機から送信された要求を実行するプログラムを前記複数の呼出先プログラムから特定し、
前記特定した呼出先プログラムに対して、前記呼出元プログラムを識別するための識別情報、前記認証情報を取得し、
前記取得した認証情報および識別情報、または前記クライアント計算機から送信された認証情報を用いて前記呼出先プログラム実行部に対するユーザ権限を設定するアクセス制御方法。
【請求項１７】
請求項１６に記載のアクセス制御方法において、
前記ユーザ権限を設定する際には、前記識別情報を用いることができる場合には、前記識別情報を用いることができない場合よりも高いユーザ権限を設定するアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムが連携して要求された処理を実行する計算機、連携する複数のプログラムについてのアクセス制御方法に関する。
【背景技術】
【０００２】
記憶システム（ストレージアレイ装置）はそれぞれ独自のストレージ管理プログラムを備えており、ユーザから要求された種々の処理はストレージ管理プログラムを介して記憶装置に対して実行される。記憶システムが統合して運用される際には、各記憶システムが備えているストレージ管理プログラムを統括的に管理する統合管理プログラムが導入される。統合管理プログラムは、該当するストレージ管理プログラムを呼び出し、呼び出したストレージ管理プログラムを介してユーザから要求された処理を実行する。
【０００３】
複数の記憶システムが統合された環境においては、個々のストレージ管理プログラムを介して直接、あるいは、該当するストレージ管理プログラムを呼び出す統合管理プログラムを介して間接的に、記憶システムの同一のリソースにアクセスすることができる。この場合、個々のストレージ管理プログラムによって直接、記憶システムのリソースの状態が変更されると、統合管理プログラムが保有しているリソースの状態と矛盾を起こすことがある。また、複数のストレージ管理プログラムによって、記憶システムの同一のリソースの状態が同時に変更されると、各ストレージ管理プログラムが保有しているリソースの状態と矛盾を起こすことがある。
【０００４】
これに対して、ストレージ管理プログラムを直接使用したリソースの変更を禁止する運用、使用を制限するストレージ管理プログラムのアカウントを非公開とし、統合管理プログラムのみが内部に保有するといった対応が取られてきた。この他にも、プログラムの連携を考慮することなくユーザ権限を制限する技術は種々知られている。
【０００５】
【特許文献１】特開２００４−４６４６０号公報
【特許文献２】特開２００４−６２２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ストレージ管理プログラムを直接使用したリソースの変更を禁止する運用により対処する場合には、運用に従わないユーザが存在する限り、所期の効果を得ることができないという問題がある。また、使用を制限するストレージ管理プログラムのアカウントを非公開とし、統合管理プログラムのみが内部に保有して対応する場合には、ユーザまたは権限毎に非公開アカウントを作成しなければならず、管理コストが増大するという問題がある。さらに、従来のユーザ権限を制限する技術では、プログラムの連携が考慮されておらず、複数の記憶システムが統合された環境における上記問題点を解決することができない。
【０００７】
本発明は上記課題を解決するためになされたものであり、プログラムの連携によって要求された処理を実行する計算機において、プログラムの使用態様に応じてプログラムに対する実行権限を決定することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、プログラムの連携によって要求された処理を実行する計算機を提供する。本発明に係る計算機は、処理の要求および認証情報を取得する受信部と、前記取得された要求に対応する処理を実行するプログラム実行部を呼び出す呼出元プログラム実行部であって、前記呼出元プログラム実行部を識別するための識別情報、前記取得された認証情報を呼び出し先のプログラム実行部に対して送信する、呼出元プログラム実行部と、前記呼出元プログラム実行部に呼び出されることによって、あるいは、要求を直接受け取ることによって、要求された処理を実行する呼出先プログラム実行部であって、前記認証情報および前記呼出元プログラム実行部の識別情報を用いて前記呼出先プログラム実行部に対する実行権限を設定する認証部を有する呼出先プログラム実行部とを備えることを特徴とする。
【０００９】
本発明に係る計算機によれば、呼出元プログラム実行部を識別するための識別情報、取得された認証情報を呼び出しプログラム実行部に対して送信し、認証情報および呼出元プログラム実行部の識別情報を用いて呼出先プログラム実行部に対する実行権限を設定するので、プログラムの連携によって要求された処理を実行する計算機において、プログラムの使用態様に応じてプログラムに対する実行権限を決定することができる。
【００１０】
本発明に係る計算機は、この他にアクセス制御方法、アクセス制御プログラム、およびアクセス制御プログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
【発明を実施するための最良の形態】
【００１１】
以下、本発明に係る計算機およびアクセス制御方法について図面を参照しつつ、いくつかの実施例に基づいて説明する。
【００１２】
・第１の実施例：
システムの構成：
図１および図２を参照して第１の実施例に係る計算機システムについて説明する。図１は第１の実施例に係る計算機システムの概略構成を示す説明図である。図２は第１の実施例における計算機が備えるメモリに格納されるモジュールを示す説明図である。
【００１３】
第１の実施例における計算機１０は、記憶装置に対する管理、例えば、記憶装置におけるボリュームの作成、ホストへの割り当て、ゾーニング、ＬＵＮマスキングの設定を実行する管理計算機（管理サーバコンピュータ）であり、１または複数の記憶装置２０およびネットワーク４０と接続されている。ネットワーク４０は、イーサネット（登録商標）によって構築されているローカルエリアネットワーク（ＬＡＮ）であり、通信プロトコルとしてＴＣＰ／ＩＰプロトコルを用いてデータの伝送が実行される。ネットワーク４０には、クライアントコンピュータ３０、３１、３２が接続されており、クライアントコンピュータ３０〜３２は、管理計算機１０を介して、記憶装置２０に対する管理を実行する。
【００１４】
ネットワーク４０には、業務ホストコンピュータ５０が接続されており、業務ホストコンピュータ５０はＳＡＮ（Storage Area Network）４１を介して記憶装置２０と接続されている。業務ホストコンピュータ５０は、クライアントコンピュータ３０〜３２の要求に応じて、データベース管理システム（ＤＢＭＳ）などの業務プログラムを実行し、処理結果を記憶装置２０に対して書き込み、あるいは、記憶装置２０に格納されている情報資源を活用する。ＳＡＮではファイバチャネル、ｉＳＣＳＩといった通信プロトコルが用いられる。
【００１５】
計算機１０は、ＣＰＵ１１、メモリ１２、リアエンドＩ／Ｏインターフェース１３、フロントエンドＩ／Ｏインターフェース１４を備えている。ＣＰＵ１１、メモリ１２、リアエンドＩ／Ｏインターフェース１３、フロントエンドＩ／Ｏインターフェース１４は相互にバスを介して接続されている。ＣＰＵ１１は、メモリ１２に格納されている各種プログラム、モジュールを実行する演算処理装置である。メモリ１２は、いわゆる内部記憶装置であり、各種モジュール等を記憶する不揮発性メモリおよび演算処理結果を一時的に格納する揮発性メモリの双方を含む。リアエンドＩ／Ｏインターフェース１３は、ローカルエリアネットワーク（ＬＡＮ）を介して記憶装置２０と接続されている。フロントＩ／Ｏインターフェース１４は、ネットワーク４０に接続されており、ＴＣＰ／ＩＰプロトコルによってクライアントコンピュータ３０〜３２との間でコマンド、データの授受を実行する。
【００１６】
記憶装置２０は、ディスアレイコントローラ２１、キャッシュ２２、複数のディスク装置２３、Ｉ／Ｏインターフェース２４を備えている。ディスクアレイコントローラ２１は、記憶装置２０に対する各種制御処理を実行する制御回路であり、ＣＰＵ２１１、メモリ２１２およびＩ／Ｏポートを備えている。キャッシュ２２は、ディスク装置２３に対して書き込むべきデータ、あるいは、ディスク装置２３から読み出したデータを一時的に格納するメモリ装置の一種である。
【００１７】
ディスク装置２３は、複数の磁気ハードディスクドライブによってＲＡＩＤ構成されるディスクアレイ装置であり、複数のハードディスクドライブによって１または複数の論理ユニット（ＬＵ）を提供し、あるいは、１つのハードディスクドライブによって１または複数の記憶領域、すなわち、論理ユニット（ＬＵ）を提供する。各論理ユニット（ＬＵ）に対するアクセスは、論理ユニット番号（ＬＵＮ）と論理ブロックアドレス（ＬＢＡ）を用いて実行される。Ｉ／Ｏインターフェース２４は、管理計算機１０のリアＩ／Ｏインターフェース１３と信号線を介して接続されている。
【００１８】
クライアントコンピュータ３０〜３２は、例えば、各種データを入力または出力するための端末装置であり、業務ホストサーバ５０を介して、例えば、データベース管理処理を実行し、記憶装置２０に対する処理済みデータの書き込み、記憶装置２０からのデータの読み出しを実行する。また、クライアントコンピュータ３０〜３２は、管理計算機１０を介して、記憶装置２０に対する管理を実行する。なお、クライアントコンピュータ３０〜３２は、１つであってもよく、あるいは、４つ以上備えられてもよい。
【００１９】
図１および図２を参照して、メモリ１２に格納されている各種プログラム、モジュールについて説明する。メモリ１２には、クライアントコンピュータとのデータ、要求のやりとりを実行する送受信処理プログラムＰｒ１、管理プログラムＡ（Ｐａ）、管理プログラムＢ（Ｐｂ）、管理プログラムＣ、並びに各管理プログラムによって利用されるユーザ情報が各管理プログラムに対応して格納されている。図２には、例示として、管理プログラムＡ（Ｐａ）および管理プログラムＡ（Ｐａ）によって利用されるユーザ情報Ｕｉａを詳細に示している。
【００２０】
管理プログラムＡ（Ｐａ）は、記憶装置２０毎に備えられている管理プログラムＢ（Ｐｂ）、Ｃ（Ｐｃ）を統合して取り扱うための統合ストレージ管理プログラムであり、呼出元（第１の）プログラムに相当する。管理プログラムＡ（Ｐａ）では、記憶装置２０毎に備えられている個別の管理プログラムＢ（Ｐｂ）、Ｃ（Ｐｃ）によっては管理することができない、複数の記憶装置に跨る情報の管理を行う。例えば、複数の記憶装置を１つの仮想的な記憶装置として管理するストレージプール機能や、記憶装置の各論理ボリューム（論理ユニット）のバックアップスケジュールの管理、各論理ボリュームに対するアクセスの制限管理を提供する。
【００２１】
管理プログラムＡ（Ｐａ）には、クライアントコンピュータ３０からの要求、認証情報を受信する要求受信モジュールＭａ１、受信された認証情報を取得する認証情報取得モジュールＭａ２、認証情報を用いてユーザの認証を実行するユーザ認証モジュールＭａ３、プログラムＩＤを用いて呼出先プログラムに対する実行権限を設定する実行権限設定モジュールＭａ４、クライアントコンピュータ３０から入力された要求を実行する要求実行モジュールＭａ５、呼出先プログラムの特定、呼出先プログラムの呼び出しを実行する外部プログラム呼出モジュールＭａ６を備えている。
【００２２】
ユーザ情報Ｕｉａは、後述するユーザ管理テーブルＵｉａ１、実行権限定義テーブルＵｉａ２、操作定義テーブルＵｉａ３を備えている。
【００２３】
管理プログラムＢ（Ｐｂ）、Ｃ（Ｐｃ）も同様のモジュールを備えている。管理プログラムＢ（Ｐｂ）、Ｃは、任意の１つの記憶装置に対して１つずつ割り当てられており、該当する記憶装置における種々の管理処理を実行する。また、記憶装置毎に備えられている管理プログラムＢ（Ｐｂ）、Ｃ（Ｐｃ）は、呼出先（第２の）プログラムに相当する。さらに、ＣＰＵ１１は、呼出先プログラム実行部並びに呼出元プログラム実行部に該当する。あるいは、ＣＰＵ１１によって実行される各管理プログラムＡ（Ｐａ）、Ｂ（Ｐｂ）、Ｃを管理プログラム実行部Ａ（Ｐａ）、Ｂ（Ｐｂ）、Ｃとみなすことで、管理プログラムＡ実行部Ｐａを呼出元プログラム実行部、管理プログラムＢ、Ｃ実行部Ｐｂ、Ｐｃを呼出先プログラム実行部と見なすことができる。
【００２４】
一般的に、記憶装置２０が増設されるたびに管理プログラムＢ（Ｐｂ）、Ｃが順次、管理計算機１０に導入されるため、各記憶装置２０は各管理プログラムによって管理されるため、複数の記憶装置２０を一元的に（統合して）管理することができない。かかる状況において、統合管理プログラムＡ（Ｐａ）を管理計算機１０に導入することで、統合管理プログラムＡ（Ｐａ）を介して、各記憶装置を一元的に管理することができる。
【００２５】
図３〜図８を参照して管理計算機１０におけるプログラム連携処理に際して実行されるアクセス制御処理について説明する。図３は第１の実施例に係る管理計算機によって実現される機能ブロックを示す説明図である。図４は管理プログラムＢ（Ｐｂ）におけるユーザ管理テーブルの一例を示す説明図である。図５は定義された実行権限によって実行可能な操作を定義する実行権限定義テーブルの一例を示す説明図である。図６は定義された各操作によって実行可能な操作内容を定義する操作定義テーブルの一例を示す説明図である。図７は管理プログラムＡ（Ｐａ）（呼出元プログラム）によって実行される処理ルーチンを示すフローチャートである。図８は管理プログラムＢ（Ｐｂ）（呼出先プログラム）によって実行される処理ルーチンを示すフローチャートである。なお、各プログラムおよびモジュールはＣＰＵ１１によって実行される。
【００２６】
図７に示す処理ルーチンは、例えば、クライアントコンピュータ３０から管理プログラムＡ（Ｐａ）が起動されることにより開始する。ＣＰＵ１１は要求受信モジュールＭａ１を実行して、クライアントコンピュータ３０から入力された認証情報と処理要求を受信する。認証情報は、例えば、ユーザ名、パスワードといった認証に必要なアカウント情報であり、処理要求は、例えば、記憶装置２０における新規論理ボリュームの作成の要求である。
【００２７】
ＣＰＵ１１は認証情報取得モジュールＭａ２を実行して、受信した認証情報を取得する。ＣＰＵ１１は、ユーザ認証モジュールＭａ３を実行して、管理プログラムＡ（Ｐａ）に対する認証を実行する（ステップＳ１００）。具体的には、ＣＰＵ１１は、ユーザ情報を検索して、該当する管理プログラムＡ（Ｐａ）に対する認証情報が存在するか否かを判定する。ＣＰＵ１１は、該当する認証情報の存在を確認できる場合には、すなわち認証が成功した場合には（ステップＳ１００：Ｙｅｓ）、実行権限設定モジュールＭａ４を起動する。一方、ＣＰＵ１１は、該当する認証情報の存在を確認できない場合には、すなわち認証が成功しない場合には（ステップＳ１００：Ｎｏ）、認証が失敗した旨をクライアントコンピュータ３０に対して通知して、本処理ルーチンを終了する。
【００２８】
ＣＰＵ１１は、実行権限設定モジュールＭａ４を実行して、ユーザ管理テーブルに基づき、管理プログラムＡ（Ｐａ）において、ユーザに割り当てる実行権限を設定する。例えば、管理プログラムＡ（Ｐａ）を介した管理プログラムＢ（Ｐｂ）を呼び出す権限、管理プログラムＡ（Ｐａ）における設定を変更する権限、これらいずれか一方または双方の権限を認めない権限設定が設定される。
【００２９】
ＣＰＵ１１は、要求実行モジュールＭａ５を実行して、設定された実行権限に応じて、クライアントコンピュータ３０から入力された要求を実行する。クライアントコンピュータ３０から入力された要求が管理プログラムＢ（Ｐｂ）の呼び出しであり、管理プログラムＡ（Ｐａ）を介した管理プログラムＢ（Ｐｂ）の呼び出し権限が認められている（設定されている）場合には、ＣＰＵ１１は、外部プログラム呼出モジュールＭａ６を実行する。
【００３０】
ＣＰＵ１１は、クライアントコンピュータ３０からの要求によって呼び出すべき呼出先プログラムを特定する（ステップＳ１１０）。具体的には、クライアントコンピュータ３０からの要求入力に伴い、アクセスが要求されているターゲットおよびＬＵＮによって要求されている処理の実行対象となる記憶装置２０が特定されているので、特定された記憶装置２０を管理している管理プログラム、本実施例では管理プログラムＢ（Ｐｂ）を特定することができる。ＣＰＵ１１は、さらに、クライアントコンピュータ３０から入力された認証情報が呼出元管理プログラムと呼出先管理プログラムの間で共通化されているか否かを判定する（ステップＳ１２０）。例えば、呼出先管理プログラムが呼出元管理プログラムと統合されているか否かによって判断することができる。
【００３１】
管理プログラムＡ（Ｐａ）と管理プログラムＢ（Ｐｂ）とが統合されている場合には、１つの認証情報が呼出元の管理プログラムＡ（Ｐａ）と呼出先の管理プログラムＢ（Ｐｂ）とにおいて共通して用いられる。一方、管理プログラムＡ（Ｐａ）と管理プログラムＢ（Ｐｂ）とが統合されていない場合には、それぞれ個別の識別情報が必要となるので、管理プログラムＢ（Ｐｂ）に対応した認証情報に変換する必要がある。変換は、例えば、管理プログラムＡ（Ｐａ）のユーザ情報として、同一ユーザに対する、管理プログラムＡ（Ｐａ）における認証情報と管理プログラムＢ（Ｐｂ）における認証情報を関連付けるテーブルを利用することによって実行される。
【００３２】
ＣＰＵ１１は、認証情報が共通化されている場合には（ステップＳ１２０：Ｙｅｓ）、呼出先プログラムで有効な認証情報として、クライアントコンピュータ３０から入力された認証情報を取得する（ステップＳ１３０）。
【００３３】
ＣＰＵ１１は、認証情報が共通化されていない場合には（ステップＳ１２０：Ｎｏ）、クライアントコンピュータ３０から入力された認証情報を呼出先管理プログラムにおいて有効な認証情報に変換する（ステップＳ１４０）。
【００３４】
ＣＰＵ１１は、管理プログラムＢ（Ｐｂ）を呼び出し、取得した、あるいは、変換した認証情報および要求、管理プログラムＡ（Ｐａ）を識別するための識別情報（プログラムＩＤ）を管理プログラムＢ（Ｐｂ）に送信して（ステップＳ１５０）、本処理ルーチンを終了する。プログラムＩＤとしては、例えば、プログラム名、プログラムのプロダクトＩＤ、フォルダ構成（例えば、バージョンを示すファイル）、レジストリキー等のうち、少なくとも１つが用いられる。
【００３５】
管理プログラムＢ（Ｐｂ）は、管理プログラムＡ（Ｐａ）からの呼出しによって、図８に示す処理ルーチンを開始する。ＣＰＵ１１は、要求受信モジュールＭｂ１を実行して、管理プログラムＡ（Ｐａ）から送信された認証情報および要求、プログラムＩＤを受信する（ステップＳ２００）。ＣＰＵ１１は、認証情報取得モジュールＭｂ２を実行して、受信した認証情報を取得し、ユーザ認証モジュールＭｂ３を実行して、認証情報が正しいか否かを判定する（ステップＳ２１０）。具体的には、ユーザ情報を検索して、該当する認証情報が存在するか否かを検索する。
【００３６】
ユーザ情報としては、例えば、図４に示すユーザ管理テーブルが用いられる。すなわち、ユーザ情報には、ユーザを特定するためのユーザＩＤ、ユーザＩＤが正当なユーザによって入力されたものであるかを判定（認証）するためのパスワードが含まれている。ＣＰＵ１１は、認証情報が正しくない、すなわち、該当する認証情報が存在しないと判定した場合には（ステップＳ２１０：Ｎｏ）、処理を中断して、クライアントコンピュータ３０に対して認証失敗のステータスを返して（ステップＳ２２０）、本処理ルーチンを終了する。
【００３７】
ＣＰＵ１１は、認証情報が正しい、すなわち、該当する認証情報が存在すると判定した場合には（ステップＳ２１０：Ｙｅｓ）、実行権限設定モジュールＭｂ４を起動する。ＣＰＵ１１は、認証されたユーザの実行権限情報（ユーザ管理テーブル）を取得し（ステップＳ２３０）、受信したプログラムＩＤと取得した実行権限情報に含まれているプログラムＩＤを対比し（ステップＳ２４０）、受信したプログラムＩＤに対応する実行権限が定義されているか否かを判定する（ステップＳ２５０）。プログラムＩＤとしては、既述の通り、プログラム名、プログラムのプロダクトＩＤ、フォルダ構成（例えば、バージョンを示すファイル）、レジストリキー等が用いられるので、これらプログラムＩＤと対比、確認することができる情報が、管理プログラムＢ（Ｐｂ）のユーザ情報として格納されている。
【００３８】
具体的には、図４に示すユーザ管理テーブルを用いて、受信したプログラムＩＤに対応するプログラムＩＤがユーザ管理テーブルに存在するか否かが判定される。判定の手法としては、ユーザ管理テーブルに記述されているプログラムＩＤに対しては必ず何らかの実行権限を割り当てることとして、受信したプログラムＩＤに対応するプログラムＩＤがユーザ管理テーブルに存在するか否かによって判定されても良い。あるいは、ユーザ管理テーブルには関連する全てのプログラムＩＤを記述すると共に、プログラムＩＤ毎に詳細に実行権限を割り当てることとして、プログラムＩＤに割り当てられている実行権限に基づいて判定されても良い。
【００３９】
ＣＰＵ１１は、受信したプログラムＩＤに実行権限が定義されていると判定した場合には（ステップＳ２５０：Ｙｅｓ）、定義されている実行権限を、管理プログラムＢ（Ｐｂ）に対する実行権限として設定する（ステップＳ２６０）。一方、ＣＰＵ１１は、受信したプログラムＩＤに実行権限が定義されていないと判定した場合には（ステップＳ２５０：Ｎｏ）、処理を中断し、認証失敗のステータスをクライアントコンピュータ３０に返して（ステップＳ２２０）、本処理ルーチンを終了する。
【００４０】
図４の例では、プログラムＩＤとしてプログラムＡ（Ｐａ）が入力された場合には、実行権限として「Administrator」が設定され、プログラムＩＤが入力されない場合、すなわち、クライアントコンピュータ３０によって管理プログラムＢ（Ｐｂ）が直接起動された場合には、実行権限として「User」が設定される。一般的に、「Administrator」は管理者に対して割り当てられる実行権限であり、管理プログラムに対する全ての実行権限が認められる。一方、「User」は単なる利用者に対して割り当てられる実行権限であり、管理プログラム対する一部の実行権限が認められる。
【００４１】
本実施例においては、図５に示すとおり、「Administrator」に対しては、システム操作設定、リソース操作、リソース参照の全ての操作が認められており、一方、「User」に対しては、リソース参照の操作のみが認められている。また、図６に示すとおり、システム操作設定は、ホスト名、ポート番号等のサーバの設定を始めとするプログラムを動作させるための設定であるシステム設定の実行が許容されており、リソース操作は論理ユニットの作成、修正、削除といったリソースの変更およびリソースの参照の双方が許容されており、リソース参照操作はリソース参照のみが許容されている。
【００４２】
ＣＰＵ１１は、要求実行モジュールＭｂ５を実行して、設定された実行権限に応じて、クライアントコンピュータ３０から入力された要求を実行して（ステップＳ２７０）、本処理ルーチンを終了する。なお、管理プログラムＢ（Ｐｂ）を介して、更なる管理プログラムＣが呼び出される場合には、管理プログラムＣを呼び出すために、外部プログラム呼出モジュールＭｂ６が備えられていても良い。
【００４３】
図９〜図１１を参照して、第１の実施例におけるプログラム連携処理に際してのアクセス制御処理についてより詳細に説明する。図９は計算機システムの概略構成を示す説明図である。図１０は管理プログラムＡ（Ｐａ）を介してクライアントコンピュータから管理プログラムＢ（Ｐｂ）を実行する場合に実行される処理ルーチンを示すフローチャートである。図１１はクライアントコンピュータから直接、管理プログラムＢ（Ｐｂ）を実行する場合に実行される処理ルーチンを示すフローチャートである。
【００４４】
計算機システムの構成について簡単に説明すると、計算機システムは、クライアントコンピュータ３０、管理計算機１０、第１及び第２の記憶装置２０１、２０２を備えている。クライアントコンピュータ３０には、計算機１０に格納されている、ストレージ統合運用管理プログラムＰａ（呼出元プログラム）を実行する統合管理クライアントプログラム３１、および第１及び第２記憶装置管理プログラムＰｂ、Ｐｃ（呼出先管理プログラム）を実行する第１及び第２個別管理クライアントプログラム３２、３３が備えられている。クライアントコンピュータ３０に備えられているＣＰＵは、これらクライアントプログラムを実行するクライアントプログラム実行部として動作する。
【００４５】
計算機１０には、第１及び第２の記憶装置２０１、２０２の管理を実行するための第１及び第２記憶装置管理プログラムＰｂ１、Ｐｃ１、第１及び第２記憶装置管理プログラムＰｂ、Ｐｃを統合管理するためのストレージ統合運用管理プログラムＰａ１がそれぞれ格納されている。ストレージ統合運用管理プログラムＰａ１は、ユーザ認証を実行する認証モジュールＭｐａ１、記憶装置に対する操作を実行するストレージ操作モジュールＭｐａ２、ストレージを運用するための情報を管理するストレージ運用情報管理モジュールＭｐａ３、認証に必要な認証情報を含むユーザ情報を格納するユーザ情報格納部Ｍｐａ４を備えている。ストレージ運用情報管理モジュールＭｐａ３には、第１及び第２の記憶装置２０１、２０２のリソースの状態・作動状態についての装置情報、ホスト、業務サーバについてのシステム構成情報、バックアップスケジュール・障害発生時の対応・セキュリティポリシーを含む運用ポリシーが格納されている。
【００４６】
第１及び第２の記憶装置管理プログラムＰｂ１、Ｐｃ１は、それぞれ、ユーザ認証を実行する認証モジュールＭｐｂ１、Ｍｐｃ１、記憶装置２０１、２０２に対する操作を実行するストレージ操作モジュールＭｐｂ２、Ｍｐｃ２、認証に必要な認証情報を含むユーザ情報を格納するユーザ情報格納部Ｍｐｂ３、Ｍｐｃ３を備えている。
【００４７】
第１及び第２の記憶装置２０１、２０２は、それぞれ複数のディスク装置からＲＡＩＤ構成され、１または複数の論理ユニット（ＬＵ）を備えている。
【００４８】
図１０を参照して、管理プログラムＡ（ストレージ統合運用管理プログラムＰａ１）を介してクライアントコンピュータから管理プログラムＢ（Ｐｂ）を実行する場合について説明する。
【００４９】
ユーザ１は、管理プログラムＡ（Ｐａ１）にログインするための認証情報および、第１記憶装置２０１に対する新規なボリュームの作成要求をクライアントコンピュータ３０に入力する（ステップＵ１）。クライアントコンピュータ３０の統合管理クライアントプログラム３１は入力された認証情報およびボリューム作成要求を管理プログラムＡ（Ｐａ１）に対して送信する（ステップＣ１）。管理計算機１０（ＣＰＵ）は、管理プログラムＡ（Ｐａ１）を実行して、認証モジュールＭｐａ１によってユーザ認証を行う（ステップＰａＳ１）。管理計算機１０は、ユーザ認証に成功した場合には、ストレージ運用情報管理モジュールＭｐａ３によって、対象となる記憶装置を管理する管理プログラム、例えば、管理プログラムＢ（Ｐｂ１）を起動し、管理プログラムＢ（Ｐｂ１）に対して管理プログラムＢ（Ｐｂ１）の認証情報および管理プログラムＡ（Ｐａ１）の識別情報（プログラムＩＤ）を送信する（ステップＰａＳ２）。管理計算機１０は、ユーザ認証に失敗した場合には、クライアントコンピュータ３０に対して認証失敗を通知し、ユーザ１は、例えば、管理計算機１０の表示画面を介して管理プログラムＡ（Ｐａ１）に対する認証の失敗を知ることができる。
【００５０】
管理計算機１０は、管理プログラムＢ（Ｐｂ１）を実行して、管理プログラムＢ（Ｐｂ１）に対する認証情報および管理プログラムＡ（Ｐａ１）のＩＤを用いて認証モジュールＭｐｂ１によってユーザ認証を行い（ステップＰｂＳ１）、認証に失敗した場合には（ステップＰｂＳ２：Ｎｏ）、管理プログラムＡ（Ｐａ１）に対して認証失敗を通知する。認証失敗の通知を受けた管理プログラムＡ（Ｐａ１）は、クライアントコンピュータ３０に対して認証失敗通知を送信する（ステップＰａＳ３）。ユーザ１は、クライアントコンピュータ３０の表示画面を通じて、管理プログラムＢ（Ｐｂ１）に対する認証の失敗を知ることができる。
【００５１】
管理計算機１０は、管理プログラムＢ（Ｐｂ１）に対する認証に成功した場合には（ステップＰｂＳ２：Ｙｅｓ）、ユーザ１に割り当てるユーザ実行権限を「リソース変更権限」を有する実行権限に設定する（ステップＰｂＳ３）。管理計算機１０は、ストレージ操作モジュールＭｐｂ２を実行して、第１の記憶装置２０１に対してボリューム作成を要求する。ボリューム作成要求を受けた第１の記憶装置２０１は、例えば、ディスクアダプタを介して、要求されたボリュームを作成する（ステップＳＳ１）。第１の記憶装置２０１は、ボリューム作成処理を終えると、ボリューム作成通知を管理プログラムＢ（Ｐｂ１）に対して送信する（ステップＳＳ２）。
【００５２】
管理プログラムＢ（Ｐｂ１）は、管理プログラムＡ（Ｐａ１）に対して、ボリューム作成が成功した旨を通知する（ステップＰｂＳ４）。管理プログラムＡ（Ｐａ１）は、新たに作成されたボリュームの情報を装置情報としてストレージ運用情報管理モジュールＭｐａ３に格納し、ボリューム作成成功表示画面の表示をクライアントコンピュータ３０に対して要求する（ステップＰａＳ４）。ユーザ１は、クライアントコンピュータ３０の表示画面に表示されたボリューム作成成功表示を確認することによって、第１の記憶装置２０１に対する新規なボリュームの作成の成功を知ることができる。
【００５３】
図１１を参照して、クライアントコンピュータから直接、第１記憶装置管理プログラムＰｂ（管理プログラムＢ）を実行する場合について説明する。
【００５４】
ユーザ１は、管理プログラムＢ（Ｐｂ１）にログインするための認証情報および、第１記憶装置２０１に対する新規なボリュームの作成要求をクライアントコンピュータ３０に入力する（ステップＵ１０）。クライアントコンピュータ３０の第１個別管理クライアントプログラム３２は、入力された認証情報およびボリューム作成要求を管理プログラムＢ（Ｐｂ１）に対して送信する（ステップＣ１０）。管理計算機１０は、管理プログラムＢ（Ｐｂ１）を実行し、管理プログラムＢ（Ｐｂ１）の認証情報を用いて認証モジュールＭｐｂ１によってユーザ認証を行い（ステップＰｂＳ１０）、認証に失敗した場合には（ステップＰｂＳ１１：Ｎｏ）、クライアントコンピュータ３０に対して認証失敗を通知する。クライアントコンピュータ３０は、認証失敗を表示画面に表示し、ユーザ１は、クライアントコンピュータ３０の表示画面を通じて、管理プログラムＢ（Ｐｂ１）に対する認証の失敗を知ることができる。
【００５５】
管理計算機１０は、管理プログラムＢ（Ｐｂ１）に対する認証に成功した場合には（ステップＰｂＳ１１：Ｙｅｓ）、ユーザ１に割り当てるユーザ実行権限を「リソース参照権限」を有する実行権限に設定する（ステップＰｂＳ１２）。すなわち、管理プログラムＡ（Ｐａ１）のプログラムＩＤ（識別情報）がないため、リソースの状態を変更できる高い権限は設定されない。管理計算機１０は、ユーザ１がリソース参照の権限しか与えられていないため、クライアントコンピュータ３０に対してユーザ１がボリューム作成の権限がないことを通知する（ステップＰａＳ１３）。ユーザ１は、クライアントコンピュータ３０の表示画面を通じて、ボリュームの作成が許可されていないことを知ることができる。
【００５６】
以上説明したように、第１の実施例に係る管理計算機１０によれば、複数の管理プログラムが連携する場合に、プログラムの連携の態様（プログラムの起動の態様、呼出の態様）に応じて所望のアクセス制御を実行することができる。より具体的には、呼出元プログラム（ストレージ統合運用管理プログラムＰａ、Ｐａ１）によって呼出先プログラム（記憶装置管理プログラムＰｂ、Ｐｂ１、Ｐｃ１）を呼び出すことによって、記憶装置に対する管理が実行される場合にユーザに割り当てられる実行権限を高く、呼出先プログラムによって直接記憶装置に対する管理が実行される場合にユーザに割り当てられる実行権限を低くすることができる。すなわち、呼出元プログラムを介して呼出先プログラムが実行される場合には、記憶装置２０に対するリソースの変更、システムの設定の変更を許容し、呼出先プログラムが直接実行される場合には、記憶装置２０のリソースの参照のみを許容するといった実行権限を設定することができる。
【００５７】
この結果、例えば、記憶装置管理プログラムＰｂが直接起動され、記憶装置２０のリソースが変更された場合に、ストレージ統合運用管理プログラムＰａに対してリソースの変更が通知されておらず、ストレージ統合運用管理プログラムＰａの実行に支障が発生する事態を回避することができる。具体的には、記憶装置管理プログラムＰｂが直接起動され、ストレージ統合運用管理プログラムＰａによってバックアップスケジュールの対象とされているボリュームが削除された場合には、バックアップスケジュールの対象とされているボリュームの削除がストレージ統合運用管理プログラムＰａに対して通知されていなければ、バックアップ処理実行時にエラーが発生してしまう。あるいは、記憶装置管理プログラムＰｂが直接起動され、ボリュームに対するアクセスアドレスが変更された場合には、ストレージ統合運用管理プログラムＰａによって、所望のアドレスにアクセスすることができないという問題が生じる。
【００５８】
これに対して、第１の実施例に係る管理計算機１０では、ストレージ統合運用管理プログラムＰａを介して記憶装置管理プログラムＰｂが起動された場合には、記憶装置２０に対するリソース変更が許容されるが、記憶装置管理プログラムＰｂが直接起動された場合には、記憶装置２０に対するリソース変更が許容されないので、上記問題の発生を抑制、回避することができる。
【００５９】
また、呼出先プログラムにおける認証処理において、呼出元プログラムの識別情報を利用するので、呼出先プログラムが呼出元プログラムを介して実行されているのか、あるいは、呼出先プログラムが直接実行されているかの判定を迅速かつ正確に行うことができる。さらに、呼出元プログラムに応じて幅広い実行権限の設定を行うことができる。
【００６０】
なお、実行権限の付与は以下の例によっても良い。
（ａ）プログラムＩＤがない場合と比較して呼出先プログラムの実行権限が同一の場合。
呼出先プログラムを直接実行しても呼出元プログラムに影響がない場合（呼出元プログラムの処理に影響がない場合）には、呼出先プログラムの呼び出し経路によらず、呼出先プログラムのアクセス制制限は同一であっても良い。
（ｂ）プログラムＩＤがない場合と比較して呼出先プログラムに低い実行権限を設定する場合。
プログラムＩＤが取得できた場合でも、未登録のプログラムの場合や、サポートが打ち切られたプログラムＩＤの場合には、そのプログラムからの起動を許可しない。
（ｃ）プログラム連携時には固有の制限が付与される場合。
呼出元プログラムが監視用のプログラムであった場合に、呼出元プログラムから起動される場合には、一律に参照権限しか付与しない。
【００６１】
・第２の実施例：
図１２および図１３を参照して、第２の実施例に係る計算機システムについて説明する。図１２は第２の実施例に係る計算機システムの概略構成を示す説明図である。図１３は第２の実施例に係る管理計算機によって実行される機能ブロックを示す説明図である。なお、第２の実施例に係る管理計算機１００は、各管理プログラムに格納されるモジュールの構成が異なる点を除いて基本的な構成は第１の実施例に係る管理計算機１０と同様であり、第２の実施例における記憶装置の構成は第１の実施例における記憶装置２０の構成と同様であるから、第１の実施例において用いた符号と同一の符号を付すことで、詳細な構成の説明は省略する。
【００６２】
第２の実施例に係る計算機システムでは、管理計算機１００とは別に、認証計算機６０を備え、各管理プログラムＰａ２、Ｐｂ２に対する認証処理が、認証計算機６０において実行される。認証計算機６０は、認証処理を実行するＣＰＵ６１、認証に利用する認証情報または認証結果を一時的に格納するキャッシュ６２、認証プログラムＰｄおよびユーザ情報Ｕｉｄを格納するメモリ６３、ローカルエリアネットワーク４０を介して管理計算機１００並びにクライアントコンピュータ３０、３１、３２との通信を実行するためのＩ／Ｏインターフェース６４を備えている。
【００６３】
本実施例では、認証計算機６０が管理計算機１００とは別に備えられているので、図１３に示すとおり、管理プログラムＡ（Ｐａ２）、管理プログラムＢ（Ｐｂ２）には、ユーザ認証に必要なモジュールが備えられていない。代わりに、認証計算機６０の認証プログラムＰｄには、管理計算機１００における各管理プログラムと認証情報および認証結果を送受信するための送受信モジュールＭＬ１、受信された認証情報を取得する認証情報取得モジュールＭＬ２、ユーザ認証を実行するユーザ認証モジュールＭＬ３、プログラムの実行順序に応じて実行権限を設定する実行権限設定モジュールＭＬ４、ユーザ情報Ｕｉｄが備えられている。
【００６４】
第２の実施例に係る計算機システムにおけるプログラム連携時におけるアクセス制御処理について以下に説明する。
【００６５】
例えば、クライアントコンピュータ３０から管理プログラムＡ（Ｐａ２）が起動されると、ＣＰＵ１１は要求受信モジュールＭａ１を実行して、クライアントコンピュータ３０から入力された認証情報と処理要求を受信する。認証情報は、例えば、ユーザ名、パスワードといった認証に必要なアカウント情報であり、処理要求は、例えば、記憶装置２０における新規論理ボリュームの作成の要求である。ＣＰＵ１１は認証情報取得モジュールＭａ２を実行して、受信した認証情報を取得し、取得した管理プログラムＡ（Ｐａ２）についての認証情報を認証計算機６０に送信する。
【００６６】
認証計算機６０では、ＣＰＵ６１は、送受信モジュールＭＬ１を実行して、管理プログラムＡ（Ｐａ２）から送信された識別情報を受信する。ＣＰＵ６１は、認証情報取得モジュールＭＬ２を実行して受信された認証情報を取得する。ＣＰＵ６１は、ユーザ認証モジュールＭＬ３を実行して、管理プログラムＡ（Ｐａ２）に対する認証を実行する。具体的には、ＣＰＵ６１は、ユーザ情報を検索して、該当する管理プログラムＡ（Ｐａ２）に対する認証情報が存在するか否かを判定する。ＣＰＵ６１は、認証が成功した場合には、実行権限設定モジュールＭＬ４を起動する。一方、ＣＰＵ６１は、認証が成功しない場合には、認証が失敗した旨を管理プログラムＡ（Ｐａ２）を介してクライアントコンピュータ３０に対して通知する。
【００６７】
ＣＰＵ６１は、実行権限設定モジュールＭＬ４を実行すると、ユーザ管理テーブルに基づき、管理プログラムＡ（Ｐａ２）において、ユーザに割り当てる実行権限を設定する。例えば、管理プログラムＡ（Ｐａ２）を介した管理プログラムＢ（Ｐｂ２）を呼び出す権限、管理プログラムＡ（Ｐａ２）における設定を変更する権限、これらいずれか一方または双方の権限を認めない権限設定が設定される。ＣＰＵ６１は、設定した実行権限を送受信モジュールＭＬ１を介して管理プログラムＡ（Ｐａ２）の要求実行モジュールＭａ５に送信する。
【００６８】
ＣＰＵ１１は、要求実行モジュールＭａ５を実行して、設定された実行権限に応じて、クライアントコンピュータ３０から入力された要求を実行する。クライアントコンピュータ３０から入力された要求が管理プログラムＢ（Ｐｂ２）の呼び出しであり、管理プログラムＡ（Ｐａ２）を介した管理プログラムＢ（Ｐｂ２）の呼び出し権限が認められている（設定されている）場合には、ＣＰＵ１１は、外部プログラム呼出モジュールＭａ６を実行する。
【００６９】
ＣＰＵ１１は、クライアントコンピュータ３０からの要求によって、第１の実施例において説明したように、呼び出すべき呼出先プログラムを特定する。ＣＰＵ１１は、特定した呼出先プログラム、例えば、管理プログラムＢ（Ｐｂ２）を呼出し、呼出先プログラムに対する認証情報、管理プログラムＡ（Ｐａ２）のプログラム識別情報（プログラムＩＤ）、要求を送信する。
【００７０】
管理プログラムＢ（Ｐｂ２）は、管理プログラムＡ（Ｐａ２）からの呼出しによって起動される。ＣＰＵ１１は、要求受信モジュールＭｂ１を実行して、管理プログラムＡ（Ｐａ２）から送信された認証情報および要求、プログラムＩＤを受信する。ＣＰＵ１１は、認証情報取得モジュールＭｂ２を実行して、受信した認証情報を取得し、取得した管理プログラムＢ（Ｐｂ２）についての認証情報を認証計算機６０に送信する。
【００７１】
認証計算機６０では、ＣＰＵ６１は、送受信モジュールＭＬ１を実行して、管理プログラムＢ（Ｐｂ２）から送信された識別情報を受信する。ＣＰＵ６１は、認証情報取得モジュールＭＬ２を実行して受信された認証情報を取得する。ＣＰＵ６１は、ユーザ認証モジュールＭＬ３を実行して、管理プログラムＢ（Ｐｂ２）に対する認証を実行する。具体的には、ＣＰＵ６１は、ユーザ情報を検索して、該当する管理プログラムＢ（Ｐｂ２）に対する認証情報が存在するか否かを判定する。ＣＰＵ６１は、認証が成功した場合には、実行権限設定モジュールＭＬ４を起動する。一方、ＣＰＵ６１は、認証が成功しない場合には、認証が失敗した旨を管理プログラムＢ（Ｐｂ２）を介してクライアントコンピュータ３０に対して通知する。
【００７２】
ＣＰＵ６１は、実行権限設定モジュールＭＬ４を実行すると、プログラムＩＤを用いて、ユーザに割り当てる実行権限を設定する。本実施例では、第１の実施例と同様にして、管理プログラムＡ（Ｐａ２）のプログラムＩＤが認証情報と共に受信された場合には、記憶装置２０におけるリソースの変更を許容する実行権限が設定される。
【００７３】
これに対して、クライアントコンピュータ３０から直接管理プログラムＢ（Ｐｂ２）が起動された場合には、認証計算機６０には、認証情報のみが送信されプログラムＩＤは送信されないので、記憶装置２０におけるリソースの参照のみを許容する実行権限が設定される。すなわち、プログラムＩＤは、呼出元プログラムによって呼出先プログラムに与えられる識別情報なので、呼出先プログラムが直接が起動された場合には利用することができない。
【００７４】
ＣＰＵ６１は、設定した実行権限を送受信モジュールＭＬ１を介して管理プログラムＢ（Ｐｂ２）の要求実行モジュールＭｂ５に送信する。管理プログラムＢ（Ｐｂ２）には、実行権限に対応する実行可能な操作処理内容を定義する操作定義テーブルが用意されている。
【００７５】
設定された実行権限を受信したＣＰＵ１１は、要求実行モジュールＭａ５を実行し、操作定義テーブルを参照して設定された実行権限に対して許容される操作処理を決定し、クライアントコンピュータ３０から入力された要求を実行する。クライアントコンピュータ３０によって直接、管理プログラムＢ（Ｐｂ２）が起動された場合には、クライアントコンピュータ３０から入力された要求が記憶装置２０におけるリソースの変更であったとしても、リソース参照の操作処理しか認められていないため、要求は実行されない。一方、管理プログラムＢ（Ｐｂ２）が管理プログラムＡ（Ｐａ２）を介して、起動された場合には、要求されたリソースの変更処理が実行される。
【００７６】
以上説明したように、第２の実施例に係る計算機システムによれば、第１の実施例に係る計算機システム（管理計算機）によって得られる効果に加えて、管理計算機１０とは別に認証計算機６０を備えるので、管理計算機１０の負荷を軽減することができる。すなわち、認証計算機６０において各管理プログラムに対する認証処理を実行することができるので、管理計算機１０には認証処理に必要なモジュールを備える必要がなく、また、認証処理を実行するために演算リソースを割り当てる必要もない。
【００７７】
さらに、認証計算機６０において、認証に必要なユーザ情報を一元的に管理するので、認証情報の管理、更新を容易化することができる。
【００７８】
・その他の実施例：
（１）第１および第２の実施例では、２つの管理プログラムの連携を例にとって説明したが、３つ以上の管理プログラムが連携する場合にも、同様にして記憶装置２０に対する実行権限を使い分けることができる。例えば、図１４に示すユーザ管理テーブルを備えることによって、対応することができる。図１４は４つの管理プログラムが連携して記憶装置２０の管理を実行する際に管理プログラムＢにおける実行権限を設定するために用いられるユーザ管理テーブルの一例を示す説明図である。
【００７９】
３つ以上の管理プログラムが連携する場合には、プログラム起動経路を判定することによって、管理プログラムＢが実行される前に実行された管理プログラムに応じた実行権限を設定することができる。また、プログラムＩＤに時間情報、すなわち、順序情報を付すことができる場合には、管理プログラムＢが実行される前における管理プログラムの起動順序に応じた実行権限を設定することができる。具体的には、順序情報は、例えば、管理プログラムＢが外部プログラムＣと連携する場合であって、管理プログラムＢが他のプログラム（例えば、プログラムＡ）からプログラムＩＤを取得している場合には、管理プログラムＰｂの外部プログラム呼出モジュールによって、取得したプログラムＩＤの末尾にカンマを付加した後、管理プログラムＢのプログラムＩＤを連結することにより生成される。このようにして生成された順序情報は、プログラムＣに送信される。管理プログラムＢが取得したプログラムＩＤの管理は、管理プログラムＢ内の所定のフィールドに記憶されており、外部プログラム呼出モジュールは、フィールドを参照して、プログラムＩＤが存在する場合には、上述の処理を実行し、存在しない場合には、管理プログラムＢのプログラムＩＤのみをプログラムＣに対して送信する。この場合には、管理プログラムの実行環境に応じて、より細かく実行権限を設定することができる。
【００８０】
（２）第１および第２の実施例では、１つの管理テーブル、すなわち、ユーザ管理テーブルによって認証情報とプログラムＩＤとを管理していたが、複数の管理テーブルによって認証情報およびプログラムＩＤを管理しても良い。一例を図１５および図１６に示す。図１５は認証情報を管理する認証情報管理テーブルの一例を示す説明図である。図１６はプログラム情報を管理するプログラム情報管理テーブルの一例を示す説明図である。
【００８１】
図１５に示す認証情報管理テーブルは、ユーザＩＤ、パスワードの組合せによって実行権限を設定するために用いられる。図１６に示すプログラム情報管理テーブルは、プログラムの起動経路と実行権限によって実行可能な操作を定義するために用いられる。例えば、実行権限が「User」の場合には、プログラムの起動経路によらず、記憶装置２０のリソースを変更は許されず、リソースの参照のみが許容される。
【００８２】
これに対して、実行権限が「Administrator」に設定された場合には、管理プログラムＡを介して、管理プログラムＢが起動された場合には、記憶装置２０のリソースの変更が許容されるが、管理プログラムＢが直接起動された場合には、記憶装置２０のリソースを参照することしか許されない。すなわち、ユーザＩＤとパスワードによって決定される実行権限に加えて、管理プログラムの起動経路によって、記憶装置２０のリソースに対する最終的な実行可能な操作が決定される。
【００８３】
（３）上記各実施例では、１つのＣＰＵ１１によって、呼出元プログラムを実行することにより呼出元プログラム実行部および呼出先プログラムを実行することにより呼出先実行部が実現されているが、複数のＣＰＵを備え、各ＣＰＵによって呼出元プログラム実行部および呼出先プログラム実行部がそれぞれ実現されても良い。
【００８４】
（４）上記各実施例では、管理プログラムＢ（Ｐｂ）が管理プログラムＡ（呼出元プログラム）のプログラムＩＤ（プログラム起動経路）との照合情報を備えているが、管理プログラムＡにおいてインターフェースを管理プログラム毎に用意しておき、インターフェースに応じて管理プログラムＡがプログラムＩＤ（プログラム起動経路）を提供するようにしてもよい。
【００８５】
（５）第２の実施例では、認証計算機６０は、管理プログラムＢ（Ｐｂ２）に対して設定した実行権限を送信しているが、実行権限に代えて、クライアントコンピュータ３０から入力された要求の実行を許可する・許可しないのいずれかを通知しても良い。この場合には、管理プログラムＢ（Ｐｂ２）において、実行権限と実行可能な操作処理とを対応付けるテーブルを備える必要がないという利点がある。
【００８６】
（６）上記各実施例では、１つの管理計算機１０、１００に複数の管理プログラムがインストールされている場合を例にとって説明したが、単一の管理プログラムがインストールされている複数の管理計算機が連携して、クライアントコンピュータによって要求された処理を実行する場合にも同様にして本発明を適用することができる。
【００８７】
（７）上記各実施例では、ＳＡＮを構成する記憶装置２０に対する管理計算機を例にとって説明したが、ＮＡＳ（Network Attached Storage）に対しても同様に適用することができる。この場合には、ＮＡＳに対する管理ポートを経由することで、上述の管理処理およびアクセス制限を実行することができる。
【００８８】
以上、実施例に基づき本発明に係る計算機、計算機におけるアクセス制御方法、計算機システムを説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
【図面の簡単な説明】
【００８９】
【図１】第１の実施例に係る計算機システムの概略構成を示す説明図である。
【図２】第１の実施例における計算機が備えるメモリに格納されるモジュールを示す説明図である。
【図３】第１の実施例に係る管理計算機によって実現される機能ブロックを示す説明図である。
【図４】管理プログラムＢにおけるユーザ管理テーブルの一例を示す説明図である。
【図５】定義された実行権限によって実行可能な操作を定義する実行権限定義テーブルの一例を示す説明図である。
【図６】定義された各操作によって実行可能な操作内容を定義する操作定義テーブルの一例を示す説明図である。
【図７】管理プログラムＡ（呼出元プログラム）によって実行される処理ルーチンを示すフローチャートである。
【図８】管理プログラムＢ（呼出先プログラム）によって実行される処理ルーチンを示すフローチャートである。
【図９】計算機システムの概略構成を示す説明図である。
【図１０】管理プログラムＡを介してクライアントコンピュータから管理プログラムＢを実行する場合に実行される処理ルーチンを示すフローチャートである。
【図１１】クライアントコンピュータから直接、管理プログラムＢを実行する場合に実行される処理ルーチンを示すフローチャートである。
【図１２】第２の実施例に係る計算機システムの概略構成を示す説明図である。
【図１３】第２の実施例に係る管理計算機によって実行される機能ブロックを示す説明図である。
【図１４】４つの管理プログラムが連携して記憶装置２０の管理を実行する際に管理プログラムＢにおける実行権限を設定するために用いられるユーザ管理テーブルの一例を示す説明図である。
【図１５】認証情報を管理する認証情報管理テーブルの一例を示す説明図である。
【図１６】プログラム情報を管理するプログラム情報管理テーブルの一例を示す説明図である。
【符号の説明】
【００９０】
１０、１００…管理計算機
１１…ＣＰＵ（中央演算装置）
１２…メモリ
１３…リアエンドＩ／Ｏインターフェース
１４…フロントエンドＩ／Ｏインターフェース
２０…記憶装置
２１…ディスクアレイコントローラ
２２…キャッシュ
２３…ディスク装置
２４…Ｉ／Ｏインターフェース
２５…Ｉ／Ｏインターフェース
３０、３１、３２…クライアントコンピュータ
４０…ネットワーク
４１…ストレージエリアネットワーク（ＳＡＮ）
５０…業務ホスト
６０…認証計算機
６１…ＣＰＵ
６２…キャッシュ
６３…メモリ
６４…Ｉ／Ｏインターフェース
Ｐｒ１…送受信処理プログラム
Ｐａ、Ｐａ１、Ｐａ２…管理プログラムＡ
Ｐｂ、Ｐｂ１、Ｐｂ２…管理プログラムＢ
Ｐｃ、Ｐｃ１…管理プログラムＣ
Ｍａ１、Ｍｂ１…要求受信モジュール
Ｍａ２、Ｍｂ２…認証情報取得モジュール
Ｍａ３、Ｍｂ３…ユーザ認証モジュール
Ｍａ４、Ｍｂ４…実行権限設定モジュール
Ｍａ５、Ｍｂ５…要求実行モジュール
Ｍａ６、Ｍｂ６…外部プログラム呼出モジュール
Ｕｉａ、Ｕｉｂ、Ｕｉｃ…ユーザ情報
Ｕｉａ１…ユーザ管理テーブル
Ｕｉａ２…実行権限定義テーブル
Ｕｉａ３…操作定義テーブル
【図１】
2006127205.tif 000003
【図２】
2006127205.tif 000004
【図３】
2006127205.tif 000005
【図４】
2006127205.tif 000006
【図５】
2006127205.tif 000007
【図６】
2006127205.tif 000008
【図７】
2006127205.tif 000009
【図８】
2006127205.tif 000010
【図９】
2006127205.tif 000011
【図１０】
2006127205.tif 000012
【図１１】
2006127205.tif 000013
【図１２】
2006127205.tif 000014
【図１３】
2006127205.tif 000015
【図１４】
2006127205.tif 000016
【図１５】
2006127205.tif 000017
【図１６】
2006127205.tif 000018