MS CRM Security Roles Audit

To fetch all security role entity vise its and security level. Paste below query it can help you to fetch all the information from MS CRM.

SELECT DISTINCT FilteredRole.name, EntityView.PhysicalName AS [Entity Name],

      CASE Privilege.AccessRight WHEN 1 THEN ‘READ’

  WHEN 2 THEN ‘WRITE’

  WHEN 4 THEN ‘APPEND’

  WHEN 16 THEN ‘APPENDTO’

  WHEN 32 THEN ‘CREATE’

  WHEN 65536 THEN ‘DELETE’

  WHEN 262144 THEN ‘SHARE’

  WHEN 524288 THEN ‘ASSIGN’

  END AS [Access Level],

  CASE PrivilegeDepthMask

  WHEN 1 THEN ‘User’

  WHEN 2 THEN ‘Business Unit’

  WHEN 4 THEN ‘Parent: Child Business Unit’

  WHEN 8 THEN ‘Organisation’

  END AS [Security Level]

FROM RolePrivileges INNER JOIN FilteredRole ON RolePrivileges.RoleId = FilteredRole.roleid

                    INNER JOIN PrivilegeObjectTypeCodes ON RolePrivileges.PrivilegeId = PrivilegeObjectTypeCodes.PrivilegeId

INNER JOIN Privilege ON RolePrivileges.PrivilegeId = Privilege.PrivilegeId

INNER JOIN EntityView ON EntityView.ObjectTypeCode = PrivilegeObjectTypeCodes.ObjectTypeCode

ORDER BY FilteredRole.name, [Entity Name]

Result will be in below specefied format:

entity nameAccess levelsecurity level
Security test 1PhoneCallAPPENDParent: Child Business Unit
Security test 2PhoneCallAPPENDTOParent: Child Business Unit
Security test 3PhoneCallCREATEUser
Security test 4PhoneCallDELETEUser
Security test 5PhoneCallREADOrganisation
Security test 6PhoneCallSHAREUser
Security test 7PhoneCallWRITEUser

Thanks.

Leave a comment