バックグラウンドで「sys_user_has_role」テーブルを更新する方法

Yuki21
Tera Expert

お世話になっております。

日によってユーザに付与されるロールを変更する要件があります。
この要件を満たすために「sys_user」テーブルのフォームから、毎回ロールをアサインするのでは運用負荷が高いため、作業を自動化できないか検討中です。

ユーザごとに付与されたロールを保持するテーブルは「sys_user_has_role」テーブルの認識ですが、
scheduled jobsやFlow Designerに設定したスクリプトで「sys_user_has_role」テーブルのレコードを更新することは可能でしょうか?
その他、このようなやり方があるなど、ご意見いただけますと幸いです。

1 件の受理された解決策

Zengame
Kilo Guru

お世話になります。

まず全体像として

  1. ユーザー名と変更するロールの一覧表を作っておく(Excel,CSV,JSONなど)
    想像するにシフト表的なもので事前に決めておく必要があるので、もしかしたら日付や時間もカラムとして必要かもしれません。
  2. インスタンスのワークフローで以下を組む
    1. ファイルの取り込み(FTP/ファイル連携など)
    2. ファイルの検証(失敗したら、再度読み込むか、フローを停止して通知。手動でやらざるを得ない場面もありそうです→時間帯によってはこの手動作業が一番運用負荷が高いと想像します)
    3. ロール変更
    4. ロール変更結果の通知(期待通りになっているかどうかの確認を結果の通知。毎回メールで受け取るのも運用負荷高いですが、最初のうちは必要かなと思います)
  3. インスタンスのScheduled Jobに上記を組み込む

といった流れでしょうか?急遽のシフト変更などには、手動で対応する必要があり、こちらも運用負荷が高そうです。

今回特に 2-3のところができるかどうかかと思いますが、Communityで sys_user_has_role を検索すると削除するためのスクリプトなどが出てくるのでそちらを参考にされるとよろしいかと思います。

心配ごととして

  • AssignedやApprovedには基本個人名が入るので、ロール変更後にそのタスクやケースの表示がどのようになるか?空欄となってしまって、不整合が起きないか?
    いろんなパターンで十分なテストが必要かと思います。
  • 特定の時点で、特定のタスクやケースの閲覧権限や変更権限が付与されたり付与されなかったりするので業務上やセキュリティ観点で問題が発生しないか?
  • 監査観点でのログの管理をどのように行うか?(どれがいつどの権限でどんな変更を行ったか。刻々とチェックが必要であれば結構大変かと)

といったところがあります。
具体的なスクリプトをかけず申し訳ありませんが、参考になれば幸いです。

元の投稿で解決策を見る

2件の返信2

Zengame
Kilo Guru

お世話になります。

まず全体像として

  1. ユーザー名と変更するロールの一覧表を作っておく(Excel,CSV,JSONなど)
    想像するにシフト表的なもので事前に決めておく必要があるので、もしかしたら日付や時間もカラムとして必要かもしれません。
  2. インスタンスのワークフローで以下を組む
    1. ファイルの取り込み(FTP/ファイル連携など)
    2. ファイルの検証(失敗したら、再度読み込むか、フローを停止して通知。手動でやらざるを得ない場面もありそうです→時間帯によってはこの手動作業が一番運用負荷が高いと想像します)
    3. ロール変更
    4. ロール変更結果の通知(期待通りになっているかどうかの確認を結果の通知。毎回メールで受け取るのも運用負荷高いですが、最初のうちは必要かなと思います)
  3. インスタンスのScheduled Jobに上記を組み込む

といった流れでしょうか?急遽のシフト変更などには、手動で対応する必要があり、こちらも運用負荷が高そうです。

今回特に 2-3のところができるかどうかかと思いますが、Communityで sys_user_has_role を検索すると削除するためのスクリプトなどが出てくるのでそちらを参考にされるとよろしいかと思います。

心配ごととして

  • AssignedやApprovedには基本個人名が入るので、ロール変更後にそのタスクやケースの表示がどのようになるか?空欄となってしまって、不整合が起きないか?
    いろんなパターンで十分なテストが必要かと思います。
  • 特定の時点で、特定のタスクやケースの閲覧権限や変更権限が付与されたり付与されなかったりするので業務上やセキュリティ観点で問題が発生しないか?
  • 監査観点でのログの管理をどのように行うか?(どれがいつどの権限でどんな変更を行ったか。刻々とチェックが必要であれば結構大変かと)

といったところがあります。
具体的なスクリプトをかけず申し訳ありませんが、参考になれば幸いです。

Zengame様
 
ご返信ありがとうございます。
詳細な手順をご教示いただきありがとうございます。
参考にさせていただきます。