查找 Bitbucket 中的非活动用户列表?
Find the list of inactive users in Bitbucket?
如何找到从未登录过其 Bitbucket 帐户的用户列表?是否有任何查询或宏,还是我必须手动执行?
您可以通过 SQL 查询数据库来做到这一点:
SELECT cu.lower_user_name
,cu.display_name
,cu.lower_display_name
,cu.lower_email_address
,cu.is_active
,dateadd(second,cast(cast(cua.attribute_value AS nvarchar(255)) AS bigint)/1000,'19700101 00:00:00:000') AS LAST_LOGIN
FROM [BitBucketDB].[dbo].[cwd_user] As cu
LEFT JOIN [BitBucketDB].[dbo].cwd_membership AS cm
ON cu.directory_id=cm.directory_id
AND cu.lower_user_name=cm.lower_child_name
AND cm.membership_type='GROUP_USER'
LEFT JOIN [BitBucketDB].[dbo].cwd_user_attribute As cua
ON cu.ID = cua.user_id and cua.attribute_name='lastAuthenticationTimestamp'
WHERE cm.lower_parent_name='stash-users'
另请参阅有关该主题的 Atlassian 知识库文章:
https://confluence.atlassian.com/bitbucketserverkb/query-for-inactive-or-idle-users-779171719.html
本质上,Bitbucket 服务器(和数据中心):
- 显示用户列表中的上次验证列(在管理 > 用户下)
- 提供 REST API 来查询任何给定用户的最后验证日期
这是 Postgresql 的解决方案,请注意,您可能需要考虑用户的创建日期,以排除那些昨天获得访问权限但尚未登录的用户。
一年未登录或从未登录但至少存在一年的用户:
select * from (SELECT distinct cu.lower_user_name
,to_timestamp(CAST(attribute_value AS BIGINT)/1000) AS last_login
,cu.created_date
FROM cwd_user As cu
LEFT JOIN cwd_membership AS cm
ON cu.directory_id=cm.directory_id
AND cu.lower_user_name=cm.lower_child_name
AND cm.membership_type='GROUP_USER'
LEFT JOIN cwd_user_attribute As cua
ON cu.ID = cua.user_id and
cua.attribute_name='lastAuthenticationTimestamp'
WHERE is_active = 'T'AND (cm.lower_parent_name='stash-users' OR
cm.lower_parent_name='bitbucket-users'
OR cm.lower_parent_name='stash' OR
cm.lower_parent_name='bitbucket') ) q1
where (last_login < current_date - (365) or last_login is null)
and created_date < current_date - (365);
如何找到从未登录过其 Bitbucket 帐户的用户列表?是否有任何查询或宏,还是我必须手动执行?
您可以通过 SQL 查询数据库来做到这一点:
SELECT cu.lower_user_name
,cu.display_name
,cu.lower_display_name
,cu.lower_email_address
,cu.is_active
,dateadd(second,cast(cast(cua.attribute_value AS nvarchar(255)) AS bigint)/1000,'19700101 00:00:00:000') AS LAST_LOGIN
FROM [BitBucketDB].[dbo].[cwd_user] As cu
LEFT JOIN [BitBucketDB].[dbo].cwd_membership AS cm
ON cu.directory_id=cm.directory_id
AND cu.lower_user_name=cm.lower_child_name
AND cm.membership_type='GROUP_USER'
LEFT JOIN [BitBucketDB].[dbo].cwd_user_attribute As cua
ON cu.ID = cua.user_id and cua.attribute_name='lastAuthenticationTimestamp'
WHERE cm.lower_parent_name='stash-users'
另请参阅有关该主题的 Atlassian 知识库文章: https://confluence.atlassian.com/bitbucketserverkb/query-for-inactive-or-idle-users-779171719.html 本质上,Bitbucket 服务器(和数据中心):
- 显示用户列表中的上次验证列(在管理 > 用户下)
- 提供 REST API 来查询任何给定用户的最后验证日期
这是 Postgresql 的解决方案,请注意,您可能需要考虑用户的创建日期,以排除那些昨天获得访问权限但尚未登录的用户。
一年未登录或从未登录但至少存在一年的用户:
select * from (SELECT distinct cu.lower_user_name
,to_timestamp(CAST(attribute_value AS BIGINT)/1000) AS last_login
,cu.created_date
FROM cwd_user As cu
LEFT JOIN cwd_membership AS cm
ON cu.directory_id=cm.directory_id
AND cu.lower_user_name=cm.lower_child_name
AND cm.membership_type='GROUP_USER'
LEFT JOIN cwd_user_attribute As cua
ON cu.ID = cua.user_id and
cua.attribute_name='lastAuthenticationTimestamp'
WHERE is_active = 'T'AND (cm.lower_parent_name='stash-users' OR
cm.lower_parent_name='bitbucket-users'
OR cm.lower_parent_name='stash' OR
cm.lower_parent_name='bitbucket') ) q1
where (last_login < current_date - (365) or last_login is null)
and created_date < current_date - (365);