Одним из важных моментов, который отсутствует во всех комментариях, является тот факт, что вы можете назначать роли и отдельным пользователям, а не только группам.
Вот пример использования:
Профессор физики в университете выполняет роль «Тест оценки» (или право или привилегия) для определенного курса или набора курсов. Однако он решает продолжить учебный год и хочет, чтобы другой инструктор (или, возможно, несколько инструкторов - группа), т. Е. Его замена (и), выполнял ту же роль (и) (привилегии), чем тот же набор курсов. Обратите внимание, что замещающие инструкторы могут принадлежать к разным группам пользователей. Администратор может легко назначить соответствующие роли отдельным пользователям или группам пользователей.
Конечно, после возвращения штатного профессора администратор может отозвать эти роли (привилегии).
С системной точки зрения нам важно только то, какие методы разрешено выполнять пользователю (или группе пользователей). Перед выполнением ограниченного метода мы проверяем роли пользователей, вызывая другие методы, которые обычно возвращают логические значения.