Посмотри в сторону Identity.
Если нужно без фреймворков, то предлагаю обзавестись типом, который бы проверял какой пользователь под какой ролью заходит. И выдавать в зависимости от роли нужный результат. Это самый простой вариант.
Как правило в DAL описывают, не логику приложения а концепцию хранения данных грубо говоря.
Логику приложения выносят в BLL. В твоем случае ограничение прав доступа к данным, это скорее уже логика самого предложения.
Если я правильно понял вопрос.