1访问控制矩阵
行表示客体(各种资源),列表示主体(通常为用户),行和列的交叉点表示某个主体对某个客体的访问权限。通常一个文件的Own权限表示可以授予(Authorize)或撤消(Revoke)其他用户对该文件的访问控制权限。
2访问能力表
实际的系统中虽然可能有很多的主体与客体,但两者之间的权限关系可能并不多。为了减轻系统的开销与浪费,我们可以从主体(行)出发,表达矩阵某一行的信息,这就是访问能力表(Capabilities)。
只有当一个主体对某个客体拥有访问的能力时,它才能访问这个客体。但是要从访问能力表获得对某一特定客体有特定权限的所有主体就比较困难。在一个安全系统中,正是客体本身需要得到可靠的保护,访问控制服务也应该能够控制可访问某一客体的主体集合,于是出现了以客体为出发点的实现方式——ACL。
3访问控制表
也可以从客体(列)出发,表达矩阵某一列的信息,这就是访问控制表(AccessControlList)。它可以对某一特定资源指定任意一个用户的访问权限,还可以将有相同权限的用户分组,并授予组的访问权。
4授权关系表
授权关系表(AuthorizationRelations)的每一行表示了主体和客体的一个授权关系。对表按客体进行排序,可以得到访问控制表的优势;对表按主体进行排序,可以得到访问能力表的优势。适合采用关系数据库来实现。