サポート > よくある質問と回答 > トラブルシューティング > アカウントのプリンシパルが変更されている

プリンシパルの追加や削除をしたところ、アカウントが持つプリンシパルが変更されてしまいました。

この現象は R5.7.1 以前の Wagby で発生します。

Wagby によるいったん開発を完了し、本番稼働します。 再び開発を行った際、権限(プリンシパル)を追加・削除した場合に次のような現象が発生します。

エクスポートしたデータをインポートすると、ユーザアカウントに設定していた権限情報が規則的にずれてしまう。

原因

Wagby 内部では、ユーザーアカウントは「juser」という内部モデルに格納されます。また、権限(プリンシパル)は「jprincipal」という内部モデルに格納されます。

ここで、jprincipal モデルの ID 値はビルドのタイミングで自動採番されます。これは "モデル名(英語)" のソート順で行われます。

juser は jprincipal の ID 値を参照する仕組みですが、新たに jprincipal が追加された場合、juser がもっている ID 値に変更がないにもかかわらず、jprincipal の ID 値が降り直されるため、「ずれ」が生じます。


図1 juser と jprincipal の関係

対応策

この問題に対応する方法は次のとおりです。

過去の定義ファイルが残っている場合

過去版の定義ファイルで生成したデータベースにおいて、$(DEVHOME)\env\appschema\acl.xml というファイルがあります。まずこれを退避します。 次に新しい定義ファイルでビルドを行い、同じ acl.xml を保存します。

新旧二つの acl.xml を弊社サポートまでお送りください。弊社にて「ずれ」を算出し、これを変更するための SQL スクリプトを作成致します。お手数ですが、同スクリプトを貴社運用データベースに適用してください。

過去の定義ファイルが残っていない場合

ご面倒をおかけしますが、貴社運用データベースにおける「juser」テーブルを直接、編集してください。具体的には同テーブル内の項目である jprincipalId に格納されている値を、新しい「jprincipal」テーブルの id 値と比較し、適切に変更します。

R5.7.1へのアップグレード

R5.7.1 より、データのインポート時に(以前の jprincipal テーブル情報を保持、参照しながら)適切な ID 値を割り当てる機能が追加されました。

次のケースにおいては R5.7.1 (以降)へのアップグレードが有効です。

  • 現在、この問題は発生していないが、開発途中である。
  • 現在、安定運用しているが、将来的に権限情報の追加/削除を伴う再開発を行う予定がある。

なお、すでに「ずれ」が発生した場合は、アップグレードを行っても、この問題を解決できるものではありません。 上記手順に従って「ずれ」を修正した上で、次回に同じ問題に遭遇しないためにアップグレードの適用をご検討ください。

このページは役に立ちましたか?