用户通过角色在系统中操作其职责范围内的资源从而完成某项工作。
用户:系统的操作者,可以在系统中工作的人;
角色:根据系统特点、业务属性划分出来的权限抽象,它是用户和系统资源之间的桥梁;
权限:对系统资源操作的范围和程度(系统资源主要有 页面菜单、功能点、数据 以及 文件);
网上也有人把角色理解为 具有相同功能权限的集合 及 拥有相同权限用户的集合,本人认为略有偏颇,因为如果把角色理解成拥有相同权限用户的集合,那么就很容易混淆角色与岗位、角色与用户组的区别。
另外,用户 - 角色 - 权限 之间的关系目前比较流行的模型有以下两种:
1、用户 N:1 角色 N:N 权限
2、用户 N:N 角色 N:N 权限
我个人推荐第一种:原因是相比第二种,第一种系统设计会清晰很多,因此相对来说也会更高效。可能有人会说,为用户配置角色时,一人多角不是更高效吗?但实际并不会高效多少,有实施经验的小伙伴肯定都深有体会。并且新增一个角色的工作量并不大,而且都是一次性工作。所以综合考虑之后,我个人推荐第一种。