Google은 당신의 친구입니다 :)
어쨌든 역할과 그룹의 구분은 컴퓨터 보안의 개념에서 비롯됩니다 (단순한 리소스 관리가 아님). Ravi Sandhu 교수는 역할과 그룹 간의 의미 론적 차이에 대한 중요한 범위를 제공합니다.
http://profsandhu.com/workshop/role-group.pdf
그룹은 그룹 (그리고 사용자에게 전 이적으로) 할당 된 주어진 권한 집합을 가진 사용자 모음입니다. 역할은 권한 모음이며 사용자는 해당 역할에 따라 작업 할 때 이러한 권한을 효과적으로 상속합니다.
일반적으로 그룹 멤버십은 로그인하는 동안 유지됩니다. 반면 특정 조건에 따라 역할을 활성화 할 수 있습니다. 귀하의 현재 역할이 '의료 직원'인 경우 해당 환자의 의료 기록 중 일부를 볼 수 있습니다. 그러나 자신의 역할이 '의사'인 경우 '의료진'역할 만하는 사람이 볼 수있는 것 이상의 추가 의료 정보를 볼 수 있습니다.
역할은 시간, 액세스 위치에 따라 활성화 될 수 있습니다. 역할은 속성과 강화 / 연결될 수도 있습니다. 당신은 '의사'로 운영 될 수 있지만, '주치의'속성이나 나와 ( '환자'역할을 가진 사용자)와의 관계가 없다면 나의 전체 병력을 볼 수 없습니다.
그룹으로 모든 것을 할 수 있지만 그룹은 역할이나 활동이 아닌 정체성에 초점을 맞추는 경향이 있습니다. 그리고 방금 설명한 보안 측면의 유형은 전자보다 나중 측면에 더 잘 부합하는 경향이 있습니다.
많은 경우, 사물을 함께 분류하는 데 사용하는 경우 (그 이상은 아님) 그룹과 역할이 동일하게 작동합니다. 그러나 그룹은 ID를 기반으로하는 반면 역할은 활동을 구분하기위한 것입니다. 불행히도 운영 체제는 역할을 그룹으로 취급하여 구분을 모호하게 만드는 경향이 있습니다.
OS 수준 (일반적으로 그룹과 동의어)에서 구현 된 '역할'과 달리 애플리케이션 또는 시스템 특정 의미 (예 : Oracle 역할 )를 전달하는 애플리케이션 또는 시스템 수준 역할과 훨씬 더 분명한 차이를 볼 수 있습니다 .
역할 및 역할 기반 액세스 제어 모델에 제한이있을 수 있습니다.
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
약 10 년 전에 역할 기반 액세스 제어보다 훨씬 더 세분화 된 속성 기반 및 관계 기반 액세스 제어에 대한 연구를 보았습니다. 불행히도 저는 그 영역에서 몇 년 동안 많은 활동을 보지 못했습니다.
역할과 그룹의 가장 중요한 차이점은 역할은 일반적으로 필수 액세스 제어 (MAC) 메커니즘을 구현한다는 것입니다. 자신 (또는 다른 사람)을 역할에 할당 할 수 없습니다. 역할 관리자 또는 역할 엔지니어가이를 수행합니다.
이것은 표면적으로 사용자가 자신을 그룹에 할당 할 수있는 UNIX 그룹과 유사합니다 (물론 sudo를 통해). 그러나 보안 엔지니어링 프로세스에 따라 그룹이 할당되면 구분이 약간 모호합니다.
또 다른 중요한 특징은 진정한 RBAC 모델이 상호 배타적 인 역할의 개념을 제공 할 수 있다는 것입니다. 반대로 신원 기반 그룹은 가산 적입니다. 주체의 신원은 그룹의 합 (또는 결합)입니다.
진정한 RBAC 기반 보안 모델의 또 다른 특징은 특정 역할에 대해 생성 된 요소는 일반적으로 해당 역할에 따라 행동하지 않는 사람이 전 이적으로 액세스 할 수 없다는 것입니다.
반면 DAC (임의 액세스 제어) 모델 (Unix의 기본 모델)에서는 그룹만으로는 이러한 유형의 보증을 얻을 수 없습니다. BTW, 이것은 그룹 또는 Unix의 제한이 아니라 신원을 기반으로 한 DAC 모델의 제한입니다 (그리고 전 이적으로 신원 기반 그룹으로).
도움이 되었기를 바랍니다.
=======================
Simon의 잘된 반응을 본 후 더 추가합니다. 역할은 권한을 관리하는 데 도움이됩니다. 그룹은 개체와 주제를 관리하는 데 도움이됩니다. 또한 역할을 '컨텍스트'라고 생각할 수 있습니다. 역할 'X'는 주체 Y가 객체 Z에 액세스하거나 액세스하지 않는 방법을 규정하는 보안 컨텍스트를 설명 할 수 있습니다.
또 다른 중요한 차이점 (또는 이상)은 애플리케이션, 시스템 또는 OS에서 필요하거나 분명한 역할, 컨텍스트를 엔지니어링하는 역할 엔지니어가 있다는 것입니다. 역할 엔지니어는 일반적으로 역할 관리자 (또는 sysadmin)이기도합니다 (그럴 필요는 없음). 또한 역할 엔지니어의 진정한 역할 (말장난이 아님)은 관리가 아닌 보안 엔지니어링 영역에 있습니다.
이것은 RBAC에 의해 공식화 된 새로운 그룹으로 (거의 사용되지 않더라도) 일반적으로 그룹 가능 시스템에 존재하지 않았습니다.