How to get a list of users with their last logon times
Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.
Summary
Sometime you may need to know how active your user base is, whom, and how many users logged in into Confluence during specific time frame.
Environment
Confluence 6.x, 7.x
Solution
Bellow query will return a list of users who last logged in to Confluence on the timeframe interval you define.
Replace '<group-name>' with a group name, i.e. 'confluence-users'
WITH last_login_date AS
(SELECT user_id
, to_timestamp(CAST(cua.attribute_value AS double precision)/1000) AS last_login
FROM cwd_user_attribute cua
WHERE cua.attribute_name = 'lastAuthenticated'
AND to_timestamp(CAST(cua.attribute_value AS double precision)/1000) < (CURRENT_DATE))
SELECT c.user_name
, c.lower_user_name
, c.email_address
, c.display_name
, c.last_name
, g.group_name
, l.last_login
FROM cwd_user c
INNER JOIN last_login_date l ON (c.id = l.user_id)
INNER JOIN cwd_membership m ON (c.id = m.child_user_id)
INNER JOIN cwd_group g ON (m.parent_id = g.id)
WHERE g.group_name = '<group-name>' ;
Related Content
How to identify inactive users in Confluence