用户权限设计
2020-01-17 · 技术研发知识服务融合发展。
基于角色的访问控制模型就是把“用户—角色—操作—资源”关联到一起,实现非自主型访问控制策略。使用基于角色的访问控制模型可以减轻安全管理工作,因为某种任务是稳定的,而负责该项任务的人员是经常变化的,这种方式只需把新的用户分配给已有的角色即可,无需为用户重新指定资源和操作,因而简化了授权管理工作。
为了保障本系统操作使用的信息安全,系统登录认证体系由三个要素组成:用户、角色、权限,三者相辅相成,共同组成系统的安全运行屏障。
1.用户信息
用户信息表统一管理,在用户信息表中存储用户名称、登录名、口令、各子系统权限、用户角色信息等。
用户信息表的添加、删除以及子系统权限修改由总系统授权的管理员执行,本系统中,用户信息表的操作在业务处理与信息服务子系统的系统管理菜单下的用户信息管理页面。用户口令可以自行改变,用户权限的变更需要提请管理员同意,并由管理员修改。
子系统启动时读取用户信息表验证用户权限,在系统运行时依据权限分配相应的功能。依据用户在子系统中的权限级别控制用户可操作的功能,实现最终用户对ORACLE数据库中数据的读取和添加操作权限控制(表8-2)。
表8-2 用户信息结构表
2.角色信息
角色可以根据需要任意多地添加,多个角色权限组合生成多个权限控制,对应到一个确定的用户,赋予用户对功能模块的控制权限。用户角色表包括角色名称、用户唯一值编码等信息。示例见表8-3。
表8-3 用户角色表(示例)
在数据库中为各个功能模块建立了功能名称表,每个功能模块均有记录,有功能编码和功能名称及其他附属信息。功能名称示例见表8-4。
表8-4 功能名称表(示例)
每个用户必须属于至少一个角色,每个角色具备多个功能的控制权限,功能权限通过角色传递给用户,从而实现用户对功能的操作权限控制。
3.权限信息
权限表明了用户可执行的操作。系统权限控制采用最大优先,用户可以拥有多个角色,每个角色对每一页面都可拥有权限,但在权限结果判断时只以最大权限为主,即管理员级权限大于并包含访问者权限。功能权限示例如表8-5所示。
表8-5 功能权限表(示例)
系统规划的子系统权限等级见表8-6。
表8-6 子系统权限等级规划表(部分)
续表
4.用户认证授权
通过以上四个表将用户、角色与权限组合起来,可以形成无穷多的用户权限组合,直接控制用户权限到每个细分功能。
用户、角色、权限、功能控制流程如图8-1所示:
图8-1 用户权限控制流程图
功能权限表仅在部署角色权限时使用,标示功能具备的可部署权限。
在角色中必须保证有一个管理角色拥有用户管理功能的管理权限,防止不能分配角色与权限,同样在用户中必须保证至少有一个用户是管理角色。