# 访问控制安全模型

在这一节中，我们将讲解什么是访问控制安全模型，并讨论最常见的模型。

## 什么是访问控制安全模型？

访问控制安全模型是一组独立于技术或实现平台的访问控制规则的正式定义。访问控制安全模型在操作系统、网络、数据库管理系统以及后台、应用程序和Web服务器软件中实现。多年来，为了使访问控制策略与业务或组织规则以及技术变化相匹配，人们设计了各种访问控制安全模型。

## 程序化访问控制

通过程序化访问控制，用户权限的矩阵被存储在数据库或类似的地方，然后访问控制根据该矩阵进行编程式应用。这种访问控制方法可以包括角色或组或单个用户、集合或工作流，并且可以高度细粒度。

## 自主访问控制（DAC）

自主访问控制根据用户或指定用户组来限制对资源或功能的访问。资源或功能的所有者能够向用户分配或委托访问权限。这个模型高度细粒度，对于每个资源或功能以及用户都有明确定义的访问权限。因此，该模型的设计和管理可能会变得非常复杂。

## 强制访问控制（MAC）

强制访问控制是一种集中控制的访问控制系统，在该系统中，主体对某些对象（文件或其他资源）的访问受到限制。值得注意的是，与DAC不同，资源的用户和所有者无法委托或修改其资源的访问权限。这种模型通常与基于军事许可的系统相关。

## 基于角色的访问控制（RBAC）

通过基于角色的访问控制，可定义指定访问权限的角色。然后，用户被分配到单个或多个角色。相比其他访问控制模型，RBAC提供了更强大的管理能力，如果设计得当，它能够提供足够的细粒度，以在复杂的应用中实现可管理的访问控制。例如，采购员可以被定义为一个角色，具有一部分采购账簿功能和资源的访问权限。当员工离开或加入组织时，访问控制管理被简化为定义或撤销采购员角色的成员资格。

当有足够多的角色来正确调用访问控制，但又不会过多到使模型过于复杂和难以管理时，RBAC是最为有效的。
