ACL和RBAC之间的确切区别是什么?

时间:2015-08-11 12:27:04

标签: acl rbac

大家好,这可能是一个愚蠢的问题,但我对ACL,RBAC,DAC,MAC感到困惑......

以在线大学管理系统的简单示例为例,具有以下用户类型:

  • admin
  • hod
  • faculty
  • 学生

他们每个人都有不同的访问权限。

有人可以让我明白这里将使用什么ACL? RBAC? DAC?苹果电脑?为什么它比其他人更好?我搜索了很多,但无法理解如何确定哪种授权技术最符合上述情况......

2 个答案:

答案 0 :(得分:2)

在您的示例中,我建议使用RBAC而不是ACL,因为RBAC对于增强和维护更加灵活,它将始终在大学管理系统的系统中。

在这种系统中,您将在资源上应用的权限或权限,这些资源将随着系统的扩展而频繁更改。因此,在数据库,代码和架构方面,技术上管理所有这些资源及其访问控制将是一个令人头痛的问题。

如果我们在这种情况下应用RBAC,数据库和体系结构将足够灵活,可以处理将来的更改,您只需要相应地管理权限和操作,

答案 1 :(得分:0)

RBAC(基于角色的访问控制)基于定义业务角色列表,并将系统中的每个用户添加到一个或多个角色。然后,为每个角色授予权限和特权,用户通过角色的成员资格(几乎相当于一个组)接收它们。应用程序通常会测试用户是否具有特定角色的成员身份,并根据该角色授予或拒绝访问权限。 自由访问控制(DAC)允许用户或管理员在特定资源(例如文件,注册表项,数据库表,OS对象等)上定义访问控制列表(ACL),此列表将包含定义的条目(ACE)每个有权访问该资源的用户,以及她对该资源的特权。

RBAC优于DAC的主要好处是易于管理 - 原则上,无论有多少用户,您都可以集中管理很少的角色,而且只是给每个用户授予正确角色的问题;与DAC相反,对于每个新用户(或用户更改或删除等),您必须转到她需要访问的所有资源并将其添加到列表中。 另一方面,DAC通常更简单,通常更精细。此外,在DAC模型中,数据所有者可以决定谁有权访问(如果他对数据具有该权限)并在列表中添加或删除人员。

DAC的常见示例是Windows文件系统。另一方面,RBAC的一个非常常见的例子是企业文件服务器上的DAC - " Sales" ActiveDirectory组将可以访问\ Sales \ shared文件夹。更常见的是Windows中的Administrators组。

MAC是强制访问控制,这可以被视为分类或隐私级别。这在军事系统中最常用,并且在大型机时代:)。虽然目前的操作系统正在实现这一点,例如Vista / Win7的完整性级别,但不再使用了它。

总结差异:

DAC基于个人权限,RBAC on" group" -level权限 DAC由数据所有者设置,RBAC由系统所有者设置(通常开发人员定义给予每个角色的访问权限,操作管理员将用户置于角色中) DAC定义通常附加到数据/资源,而RBAC通常定义在两个位置:代码/配置/元数据(角色访问),以及用户对象(或表 - 每个用户拥有的角色)。 另一方面,RBAC角色是集中管理的(谁与哪些角色相关联),而DAC则在资源上管理#34; (即您单独管理每个资源)。 每个角色的权限定义在RBAC中通常是静态的,用户只被授予角色;在DAC中,每个资源的权限通常在运行时更改。 DAC应被视为枚举"谁有权访问我的数据",RBAC定义"该用户可以做什么"。