Google твой друг:)
В любом случае, разрыв между ролью и группой исходит из концепции компьютерной безопасности (в отличие от простого управления ресурсами). Профессор Рави Санду дает основательное представление о семантической разнице между ролями и группами.
http://profsandhu.com/workshop/role-group.pdf
Группа - это совокупность пользователей с заданным набором разрешений, назначенных группе (и транзитивно, пользователям). Роль - это набор разрешений, и пользователь эффективно наследует эти разрешения, когда действует под этой ролью.
Обычно членство в вашей группе сохраняется в течение всего времени входа в систему. С другой стороны, роль может быть активирована в соответствии с конкретными условиями. Если ваша текущая роль - «медицинский персонал», вы можете просмотреть некоторые медицинские записи для данного пациента. Если, однако, ваша роль также является «врачом», вы можете увидеть дополнительную медицинскую информацию сверх того, что может видеть человек с ролью «медицинского персонала».
Роли могут быть активированы по времени суток, месту доступа. Роли также могут быть расширены / связаны с атрибутами. Вы можете действовать как «врач», но если у вас нет атрибута «основного врача» или отношения со мной (пользователь с ролью «пациента»), то вы не сможете увидеть всю мою историю болезни.
Вы можете делать все это с группами, но, опять же, группы, как правило, сосредоточены на идентичности, а не на роли или деятельности. И только что описанные аспекты безопасности имеют тенденцию лучше соответствовать последним, чем первым.
Во многих случаях при использовании классификации вещей (и не более того) группы и роли функционируют одинаково. Группы, однако, основаны на идентичности, тогда как роли предназначены для разграничения деятельности. К сожалению, операционные системы имеют тенденцию стирать различия, рассматривая роли как группы.
Вы видите гораздо более четкое различие с ролями на уровне приложения или системы - несущими семантику приложения или системы (как в Роли Oracle ) - в отличие от «ролей», реализованных на уровне ОС (которые обычно являются синонимами групп.)
Возможны ограничения для ролей и моделей контроля доступа на основе ролей (как, впрочем, и для всего остального):
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
Около десяти лет назад я наблюдал некоторые исследования по управлению доступом на основе атрибутов и отношений, которые обеспечивают гораздо более высокую степень детализации, чем контроль доступа на основе ролей. К сожалению, я не видел много активности в этой области в течение многих лет.
Самое важное различие между ролями и группами заключается в том, что роли обычно реализуют механизм обязательного управления доступом (MAC). Вы не можете назначить себя (или других) на роли. Это делает администратор ролей или инженер ролей.
Это внешне похоже на группы UNIX, где пользователь может / может быть в состоянии назначить себя группе (конечно, с помощью sudo). Когда группы назначаются в соответствии с процессом проектирования безопасности, различие, однако, немного стирается.
Еще одной важной характеристикой является то, что настоящие модели RBAC могут обеспечивать концепцию взаимоисключающих ролей. Напротив, группы на основе идентичности аддитивны - идентичность принципала - это сумма (или конъюнкция) групп.
Еще одна характеристика модели безопасности на основе реального RBAC заключается в том, что элементы, созданные для конкретной роли, обычно не могут быть транзитивно доступны тем, кто не действует под этой ролью.
С другой стороны, в модели дискреционного управления доступом (DAC) (модель по умолчанию в Unix) вы не можете получить такой тип гарантии только с группами. Кстати, это не ограничение групп или Unix, а ограничение моделей DAC, основанных на идентичности (и транзитивно, с группами на основе идентичности.)
Надеюсь, это поможет.
=======================
Добавим еще немного, увидев благожелательный ответ Саймона. Роли помогают вам управлять разрешениями. Группы помогают вам управлять объектами и предметами. Более того, можно считать роли «контекстами». Роль «X» может описывать контекст безопасности, который определяет, как субъект Y получает (или не получает) доступ к объекту Z.
Другое важное различие (или идеал) заключается в том, что существует ролевый инженер, человек, который разрабатывает роли, контексты, которые необходимы и / или очевидны в приложении, системе или ОС. Инженер роли обычно (но не обязательно) также администратор роли (или системный администратор). Более того, настоящая роль (не рассчитанная на каламбур) роли инженера находится в сфере безопасности, а не администрирования.
Это новая группа, формализованная RBAC (даже если она редко используется), которая обычно отсутствует в системах с поддержкой групп.