If we are only assigning to one role for a given query, then delay
the query until we actually need to run it.

This significantly speeds up situations where you have a lot of
roles defined and only typically access a few in any operation.