ACL(Access Control List 访问控制列表)
- 用户直接和权限直接挂钩
- 特点:简单易用,开发便捷
- 缺点:用户和权限直接挂钩,授予权限时比较分散、不能集中管理,增加了复杂性
- eg:linux文件系统权限设计,直接给用户加权限
RBAC(Role Based Access Control 基于角色的访问控制)
- 将权限与角色相关联,通过授予用户某种角色得到该角色下的权限
- 特点:简化了用户与权限管理,通过对用户进行角色分类,使得用户和权限关联起来
- 缺点:开发相对复杂
- 基于RBAC的应用:Apache Shiro 和 Spring Security
总结:不要设计的太过复杂和设有过多的规则,否则可能会使系统的性能和可维护性降低