
1) 【一句话结论】采用基于角色的访问控制(RBAC)模型,通过“用户-角色-权限”三层映射,结合角色继承与权限分离原则,为领导、教师、学员等角色配置差异化权限,确保功能与数据访问的精准控制。
2) 【原理/概念讲解】老师口吻:咱们先讲核心概念——基于角色的访问控制(RBAC)。简单说,RBAC是把“权限”抽象成“角色”,用户通过“分配角色”获得权限,就像“岗位”对应“权力”。比如“领导”这个角色,就包含“查看全量学员信息”“分配教师/学员角色”“管理课程”这些权限;教师角色对应“批改作业”“管理自己课程资料”等权限;学员角色仅能“提交作业”“查看自己的课程信息”。类比的话,角色像“岗位”,权限是“岗位的权力”,用户分配到“岗位”后,就拥有该岗位的权力。
3) 【对比与适用场景】
| 模型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| RBAC | 基于角色的访问控制,用户通过角色获得权限 | 角色作为权限的抽象,用户与角色绑定,权限与角色关联 | 大型系统(如干部培训系统),多角色协作 | 需合理设计角色层级(继承) |
| ACL | 直接为用户或对象分配权限 | 权限直接关联用户/对象,粒度细 | 小型系统,简单权限控制 | 权限数量多时维护复杂 |
4) 【示例】
假设干部培训系统有“领导”“教师”“学员”三个角色,权限包括“查看学员信息”“分配角色”“管理课程”“批改作业”“提交作业”等:
伪代码示例(简化):
# 用户登录后,系统根据用户ID查询角色,再查询角色权限
def check_permission(user_id, operation):
user = get_user(user_id)
roles = get_user_roles(user)
for role in roles:
permissions = get_role_permissions(role)
if operation in permissions:
return True
return False
5) 【面试口播版答案】
面试官您好,针对干部培训系统的角色权限管理,核心是采用基于角色的访问控制(RBAC)模型,通过“用户-角色-权限”三层映射,结合角色继承与权限分离原则,实现差异化权限控制。具体来说,我们为领导、教师、学员设计三个角色:领导角色拥有查看全量学员信息、分配角色、管理课程等权限;教师角色拥有管理自己课程的资料、批改作业、查看本课程学员信息等权限;学员角色仅能查看自己的课程信息、提交作业、查看成绩。通过这种配置,确保不同角色只能访问其权限范围内的功能和数据。
6) 【追问清单】
7) 【常见坑/雷区】