Список ролей может быть в бакэнде зашит, если их менять не собираешься (классика - один админ и много пользователей, нет нужды заводить в базе данных отдельные сущности для администратора, тем более зачастую интерфейс у администратора сильно отличается от пользовательского, чуть ли не отдельное веб приложение.
это ваша задача только вам ответ на этот вопрос известен
С точки зрения реализации - привилегия, это значение переменной 'Роль пользователя', на основе которого будут срабатывать switch case в логике реализации везде, где необходимо разграничнивать права. В некоторых случаях возможно разграничить права прямо на уровне базы данных (например в запрос данных включить проверку роли пользователя, в случае ее отсутствия запрос вернет пустой результат.. это используют кстати когда есть разгранечение прав пользователя не только на функционал но и на объекты базы данных)