オブジェクト専用権限を保存して、リストアする
実動ライブラリーをテスト・システムまたはバックアップ・システムにリストアしようとしたときに、テスト・システムの権限が実動システムの権限と一致していないことがわかり、うろたえたことが何度あったでしょうか。
2 つのシステム間で権限が一致していない理由を探ろうとする電話を、お客様から何度もらったかわかりません。あるシステムから別のシステムにオブジェクトをリストアし、すべてのセキュリティー関連の属性と権限が損なわれていない状態を保つのは大変なプロセスです。オブジェクトがどのように保存され、どのようにリストアされるのかにより、多数のルールが動き始めます。
IBM は 5.4 で、リストアされたオブジェクト上の権限を取得しようとする際に痛みを和らげる素晴らしい機能拡張を Save(SAVxxx) コマンドと Restore(RSTxxx) コマンドに行いました。それでもオブジェクトを保存し、リストアするときのルールと制限については注意する必要がありますが、この新しいサポートがリストアに関する多くの難題に対する答えになるでしょう。
5.4 で提供された拡張サポートを徹底的に調べる前に、オブジェクト専用権限に関して Save/Restore オペレーションがどのように動作するのか例を見てみましょう。
オブジェクトとともに保存、リストアされる唯一のオブジェクト権限は、オブジェクト所有者の権限、*PUBLIC 権限、オブジェクト Primary グループです。これらの権限はオブジェクト内に格納されているため、オブジェクトとともに保存されます。ただし、オブジェクトの専用権限すべてがオブジェクト内に格納されているわけではありません。オブジェクトへの専用権限を持っているユーザーのユーザー・プロファイル内に格納されています。
5.4 拡張サポート以前は、これらのオブジェクト専用権限は Save Security Data (SAVSECDTA) コマンドまたは Save System (SAVSYS) コマンドを使用してユーザー・プロファイルが保存された場合のみ保存されていました。
図1 は、PAYFILE というファイルのオブジェクト権限の表示を示しています。このファイルは、ファイルに対して *ALL 権限のある PAYOWNER により所有されています。ファイルには *EXCLUDE という *PUBLIC 権限があります。ファイルには Primary Group は割り当てられていません。これら 3 つの権限はすべてオブジェクト内に格納されており、Save オペレーションでオブジェクトとともに保存されます。しかし GROUP_PAY と GROUP_ACT の専用権限はオブジェクト内に格納されていないため、ファイル・オブジェクトが保存されるときに保存されません。GROUP_PAY の *CHANGE 権限は GROUP_PAY ユーザー・プロファイルに格納されています。GROUP_ACT の *USE 権限も同様に GROUP_ACT ユーザー・プロファイルに格納されています。
こうした専用権限は Save Security Data (SAVSECDTA) コマンドまたは Save System (SAVSYS) コマンドを実行した場合のみ保存されます。SAVSECDTA および SAVSYS は、とりわけ、プロファイル内に格納されている専用権限を含む、ユーザー・プロファイルを保存します。オブジェクト専用権限を別のシステムにリストアするには 2 段階のステップが必要です。まず、ユーザー・プロファイルをリストアする必要があります。コマンド Restore User Profile (RSTUSRPRF) はその目的のために設計されています。いったん選択したユーザー・プロファイルをリストアすると、共通の Restore Authority (RSTAUT) を使用して、選択したユーザー・プロファイルから専用権限をオブジェクトにリストアできます。
この例では、GROUP_PAY と GROUP_ACT が保持している専用権限だけをリストアする場合、次のコマンドを実行します。
RSTUSRPRF ... USRPRF(GROUP_PAY GROUP_ACT) SECDTA(*PVTAUT)
RSTAUT USRPRF(GROUP_PAY GROUP_ACT)
5.4 では IBM は Save コマンドと Restore コマンドに Private Authority (PVTAUT) パラメーターを導入しました。専用権限をオブジェクトとともに保存またはリストアするかはPVTAUT パラメーターの設定により決まります。
この新機能は、専用権限を損なわずに、オブジェクトをあるシステムから別のシステムに移動する際の時間、努力、いらだたしさを著しく減らすことができます。Save オペレーションや Restore オペレーションのルールや制限に従わなければならないのは当然ですが、この 5.4 PVTAUT サポートを使用すると、ユーザー・プロファイルを保存し、リストアする必要がなくなり、選択されたオブジェクトの専用権限を同期させるために RSTAUT オペレーションを行う必要もありません。
したがって、例にある PAYFILE を保存してリストアする場合、専用権限を PAYFILE オブジェクトとともに保存およびリストアできます。
SAVOBJ OBJ(PAYFILE) LIB(PAYLIB) . . . PVTAUT(*YES)
RSTOBJ OBJ(PAYFILE) SAVLIB(PAYLIB) . . . PVTAUT(*YES)
すべての Save コマンドおよび Restore コマンドのデフォルト値 PVTAUT は *NO に設定されているため、専用権限をオブジェクトとともに保存してリストアする場合、PVTAUT(*YES) を指定する必要があります。
PVTAUT(*YES) を指定した RSTxxx コマンドを使用して専用権限をリストアするには、まず SAVxxx . . . PVTAUT(*YES) で作成されたメディアを保存しておく必要があります。
この PVTAUT サポートは、選択されたライブラリーやオブジェクトを、あるシステムから別のシステムに移動する場合に威力を発揮しますが、SAVLIB *NONSYS または SAVLIB *ALLUSR など一括で Save オペレーションを実行するときにはお勧めしません。
リカバリーのシナリオとして、システム全体をリカバリーしたり、バックアップやテスト目的で既存のシステムのコピーをインストールする必要がある場合、ユーザー・プロファイルをリストアし、PVTAUT(*NO) を指定したライブラリーをリストアし、次にRSTAUT コマンドを使用して専用権限をリストアしたくなるでしょう。