Role
A role is a grouping (collection) of one or more Permissions.
A role can get assigned to a User.
When changing a role assignment of a User, all Permissions of all assigned roles will be resolved once and assigned to the user.
This is important for performance, as a permission check does not need to resolve assigned roles in runtime.