 in computer systems security, role-based access control (rbac) is an approach to restricting system access to authorized users. it is used by the majority of enterprises with more than 500 employees, and can implement mandatory access control (mac) or discretionary access control (dac). rbac is sometimes referred to as role-based security. == design == within an organization, roles are created for various job functions. the permissions to perform certain operations are assigned to specific roles. members or staff (or other system users) are assigned particular roles, and through those role assignments acquire the computer permissions to perform particular computer-system functions. since users are not assigned permissions directly, but only acquire them through their role (or roles), management of individual user rights becomes a matter of simply assigning appropriate roles to the user's account; this simplifies common operations, such as adding a user, or changing a user's department. three primary rules are defined for rbac: # role assignment: a subject can exercise a permission only if the subject has selected or been assigned a role. # role authorization: a subject's active role must be authorized for the subject. with rule 1 above, this rule ensures that users can take on only roles for which they are authorized. # permission authorization: a subject can exercise a permission only if the permission is authorized for the subject's active role. with rules 1 and 2, this rule ensures that users can exercise only permissions for which they are authorized. additional constraints may be applied as well, and roles can be combined in a hierarchy where higher-level roles subsume permissions owned by sub-roles. with the concepts of role hierarchy and constraints, one can control rbac to create or simulate lattice-based access control (lbac). thus rbac can be considered to be a superset of lbac. when defining an rbac model, the following conventions are useful: * s = subject = a person or automated agent
Access_control Computer_security_models