3 回答
- 543
JIRAの標準ではそんな機能は無かったような・・・
私たちの環境では、月一でJIRA/Confluenceのログイン履歴をデータベースで確認して、両方3カ月以上ログインしていないユーザーは手動で無効化するようにしています。
https://www.ricksoft.jp/qa/questions/5996980/jiraconfluence%E3%81%AE%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E5%B1%A5%E6%AD%B4%E3%82%92db%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84
こちらのページを参考に、下記の様なSQLを作って実行してます(尚PostgresSQLでの構文です。他のDBだと変わってくるかもしれませんので参考程度に・・・)JIRA 長期未使用者一覧SELECT cwd_user.user_name , cwd_user.email_address , to_char(to_timestamp(CAST(cwd_user_attributes.attribute_value as bigint)/1000), 'yyyy-mm-dd hh24:mi:ss') AS lastlogin FROM cwd_user, cwd_user_attributes WHERE cwd_user_attributes.user_id = cwd_user.id AND cwd_user_attributes.attribute_name = 'login.lastLoginMillis' and to_timestamp(CAST(cwd_user_attributes.attribute_value as bigint)/1000) < TIMESTAMP 'now' -interval '3 month' and cwd_user.active = '1' ORDER BY lastlogin DESC
JIRA 1回もログインしたことがないユーザー一覧select user_name,email_address,created_date from cwd_user where user_name in (select user_name from cwd_user where active = '1' except SELECT cwd_user.user_name FROM cwd_user, cwd_user_attributes WHERE cwd_user_attributes.user_id = cwd_user.id AND (cwd_user_attributes.attribute_name = 'login.lastLoginMillis' or cwd_user.created_date > timestamp 'now'-interval'3month') and cwd_user.active='1') order by created_date desc
もし長期未使用ユーザーを自動的に無効化したいのであれば、上記のような条件で(期間はお好みで)引っかかったcwd_userテーブルのレコードのactive列を0にするようなSQLをWindowsならbatファイル、Linuxならシェルに書いてそれぞれタスクスケジューラ、cronで定期的に実行するというやり方はできるかなと思います。
cwd_userテーブルのactive列だけでいいのかはちょっと自信がないので、詳しい方いらっしゃれば補足お願いします。尚、ひょっとしたら素敵なアドオンが存在するかもしれませんが、私はアドオンの事は詳しくないので、こちらの紹介はできません・・・
- 蒼龍
SQLには不慣れでしたか・・・
調べていただいたらわかるかもしれませんが、SQLというのは、データベースを操作するための文章の事です。JIRA/Confluenceもデータベースを使っているので、データベースから情報を引っ張ろうという話なのですが、いきなりSQLの話が出てきて、わかりづらかったですねw
すみません・・・・・この方法を試すのは、データベースの扱いにある程度慣れてバックアップとかを取れるようになってからにすることを強く推奨します。頑張ってくださいね!
- ayn
ありがとうございます。
いえいえ、大変勉強になり感謝しております。
まだ不慣れなので、少しずつ慣れていきます。
色々とご丁寧に教えていただきありがとうございました。
- 樋口晃
ayn さん
すいませんが、RickCloudでは ユーザーの方がSQLを発行してデータを検索する事ができません。代替案としてREST APIが有りまして、こちらで色々な情報を取得可能です。
ですが、残念な事に最後にログインした日付を REST API 経由では取得する事ができません。対応して下さいという要望は出ているのですが、まだ実現されていません。
https://jira.atlassian.com/browse/JRASERVER-43782
今のところは、 Kengo Ohsaki さんが紹介してくれたアドオンを評価してみるのが良いかと思います。
よろしくお願いします。
コメントを追加... - 432
ちなみに
ユーザが(仮)30日以上、JIRAにログインしていないと自動で非アカウント設定に
処理されるなどの機能はありますでしょうか?
もしくは、(仮)30日以上、JIRAにログインしていないユーザでフィルタを
かけることはできますでしょうか?
どちらも標準機能ではないですね。
Atlasssian Cloud(*.atlassian.netのドメイン) 環境ですとエクスポート機能とかはりますかね。
オンプレ環境(Jira Server/Jira DataCenter)ですと、上記のようなエクスポート機能もありません。
管理画面のユーザーを選択して一つ一つクリックしていけば、ログインの情報は見れますけどね…ユーザーが数百人になったらもう現実的には無理でしょうね。
ライセンスを消費するのがもったいないため、上記のような処理を行い定期的にメンテしたいと考えております。
みなさんの会社では、小まめにユーザ管理をしておりますでしょうか?
ケースバイケースかとは思いますが
大規模なケースであれば、Active DirectoryやSAMLを使って外部ディレクトリと同期することで、アカウント管理はそちら側で集中管理した利するケースが多いかと思います。
※ この場合はどちらかと言うと入社・入場・離職 手続きでアカウントが付与されて、勝手に使用できる・できなくなるだけで、必ずしもJiraやConfluenceのアプリケーションを日々日常使ってないから使用可能者から外す(ライセンス消費者から外す)とは違いますけどね。
全社など大規模で共通ツールとして使用するわけでもなく、限られたメンバーやライセンスも限られているケースだと蒼龍-san紹介している通り、DBから定期的に取得してバッチ処理で無効化したり・手動でしたりするケースが多いかと思います。
DB処理はSQLがわかったり、プログラムが組めると便利ではありますが
技術者以外だと難しい場合もあるので、酒井 祐輔-san 紹介している JIRAでユーザーの棚卸をしたい でも紹介したアドオンなどを利用してみる場合もあるかと思います。
関連QA
- JIRA、Confluenceのログイン履歴をDBから取得したい 蒼龍-san紹介済み
- JIRAでユーザーの棚卸をしたい 酒井 祐輔-san 紹介済み
- ayn
ご回答ありがとうございます。
当社は、リックソフト様の提供するリッククラウドを利用してJIRAを利用しておりますので
ご提案頂いたAtlasssian Cloudでのエクスポートは使用できません・・・。
まずはアドオンを使用して実現したいことが可能か試してみたいと思います。
ご意見ありがとうございました!!
コメントを追加... - 432
サクッとマーケットプレイスを探してみたところ以下のようなアドオンがありました。
https://marketplace.atlassian.com/plugins/com.riadalabs.jira.plugins.userdeactivator/server/overview
評価も可能なようです。
なお、SQLで対応できるのはオンプレ版のみになるかと思います。
おせわになっております。
JIRA管理者の仕事をしております。
ユーザが(仮)30日以上、JIRAにログインしていないと自動で非アカウント設定に
処理されるなどの機能はありますでしょうか?
もしくは、(仮)30日以上、JIRAにログインしていないユーザでフィルタを
かけることはできますでしょうか?
ライセンスを消費するのがもったいないため、上記のような処理を行い定期的にメンテしたいと考えております。
みなさんの会社では、小まめにユーザ管理をしておりますでしょうか?