The third SQL view I’m posting in this series is one which shows the user, the companies to which they have access and the security roles assigned within each company as well as the tasks within the role.
CREATE VIEW [dbo].[uv_AZRCRV_UserAccessAndGrantedSecurityRolesWithTasks] AS /* Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (https://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK). */ SELECT ['User Master'].USERID AS 'User ID' ,['User Master'].USERNAME AS 'Username' ,['User Master'].USRCLASS AS 'User Class' ,ISNULL(['Class Master'].DSCRIPTN, '') AS 'User Class Description' ,ISNULL(['Company Master'].INTERID, '') AS 'Intercompany ID' ,ISNULL(['Company Master'].CMPNYNAM, '') AS 'Company Name' ,ISNULL(['Security Assignment User Role'].SECURITYROLEID, '') AS 'Security Role ID' ,ISNULL(['Security Roles Master'].SECURITYROLENAME, '') AS 'Security Role Name' ,ISNULL(['Security Role Task Assignment'].SECURITYTASKID, '') AS 'Security Task ID' ,ISNULL(['Security Task Master'].SECURITYTASKNAME, '') AS 'Security Task Name' FROM SY01400 AS ['User Master'] LEFT JOIN SY40400 AS ['Class Master'] ON ['Class Master'].USRCLASS = ['User Master'].USRCLASS LEFT JOIN SY60100 AS ['User-Company Access'] ON ['User-Company Access'].USERID = ['User Master'].USERID LEFT JOIN SY10500 AS ['Security Assignment User Role'] ON ['Security Assignment User Role'].CMPANYID = ['User-Company Access'].CMPANYID AND ['Security Assignment User Role'].USERID = ['User-Company Access'].USERID LEFT JOIN SY09100 AS ['Security Roles Master'] ON ['Security Roles Master'].SECURITYROLEID = ['Security Assignment User Role'].SECURITYROLEID LEFT JOIN SY01500 AS ['Company Master'] ON ['Company Master'].CMPANYID = ['User-Company Access'].CMPANYID LEFT JOIN SY10600 AS ['Security Role Task Assignment'] ON ['Security Role Task Assignment'].SECURITYROLEID = ['Security Roles Master'].SECURITYROLEID LEFT JOIN SY09000 AS ['Security Task Master'] ON ['Security Task Master'].SECURITYTASKID = ['Security Role Task Assignment'].SECURITYTASKID GO GRANT SELECT ON uv_AZRCRV_UserAccessAndGrantedSecurityRolesWithTasks TO DYNGRP GO