Hello Aizaz,
I have developed a report like this. You can use SQL script below:
SELECT SUR.USER_ , UI.NAME , SR.NAME AS ROLE, ST.NAME AS TASK
FROM AXPROD.dbo.SECURITYUSERROLE SUR
INNER JOIN USERINFO UI ON UI.ID=SUR.USER_
LEFT JOIN axprod_model.dbo.securityrole SR ON SR.RECID = SUR.SECURITYROLE
--Left outer join axprod_model.dbo.ModelElementLabel L on SR.Name LIKE '@%'AND L.Module = SUBSTRING(SR.Name, 2, 3) and L.LabelId = SUBSTRING(SR.Name, 5, 7) and L.Language = 'en_au'
left outer join AXPROD_model.dbo.SECURITYROLETASKGRANT SRTG ON SRTG.SECURITYROLE=SR.RECID
LEFT OUTER JOIN AXPROD_model.dbo.SECURITYTASK ST ON ST.RECID=SRTG.SECURITYTASK
--Left outer join axprod_model.dbo.ModelElementLabel LT on ST.Name LIKE '@%'AND LT.Module = SUBSTRING(ST.Name, 2, 3) and LT.LabelId = SUBSTRING(ST.Name, 5, 7) and LT.Language = 'en_au'
LEFT OUTER JOIN [AXPROD_model].[dbo].[SECURITYTASKENTRYPOINT] STE ON STE.SECURITYTASK=ST.RECID
WHERE SUR.SECURITYROLE NOT IN (886356,886299,886302) AND SR.NAME NOT LIKE '@%' AND ST.NAME NOT LIKE '@%'
and st.TYPE=1
If you developed custom objects for security and didn't use labels, you can use quey above. If you need out of the box roles and duties you should uncomment ModelElementLabel in scrpit above.
Best regards,
Sefa