I had a manager looking to locate a ‘something in Tableau’ that was created by a specific individual — in this case, it was a terminated employee so “just ask the person” was not a viable solution. I put together a query to list all workbooks owned by or modified by an individual:
SELECT w.id, w.name, w.description, w.owner_id, w.modified_by_user_id, owner_system_users.email AS owner_email, modified_system_users.email AS modifier_email
FROM public.workbooks AS w
LEFT OUTER JOIN public.users AS owner_users on w.owner_id = owner_users.id
LEFT OUTER JOIN public.users AS modified_users ON w.owner_id = modified_users.id
LEFT OUTER JOIN public.system_users AS owner_system_users ON owner_system_users.id = owner_users.system_user_id
LEFT OUTER JOIN public.system_users AS modified_system_users ON modified_system_users.id = modified_users.system_user_id
WHERE owner_system_users.name = 'UserLogonID';
-- WHERE owner_system_users.email LIKE '%Smith%' OR modified_system_users.email = '%Smith%'
;
As well as a query to identify all views owned by an individual:
SELECT views.*, owner_system_users.email AS owner_email
FROM public.views
LEFT OUTER JOIN public.users AS owner_users on views.owner_id = owner_users.id
LEFT OUTER JOIN public.system_users AS owner_system_users ON owner_system_users.id = owner_users.system_user_id
WHERE owner_system_users.name = 'UserLogonID';
-- WHERE owner_system_users.email LIKE '%Smith%' OR modified_system_users.email = '%Smith%'
;
The email address based search is most reasonable — our email addresses are algorithmically based on our names, so we always know what the address would have been. Many contractors, however, don’t have Office 365 licenses or mailboxes … so I have to fall back to finding their logon ID in those cases.