下面模型本人在工作中根据实际情况提出使用的数据权限模型。
1. 问题提出
如何能通用的进行数据权限处理。
2. 主要思路
从数据库角度来看,数据权限的实现最终都是落在用某张表的某个字段取值范围来达到。结合公司技术平台现状,提出本模型。
3. 定义数据权限模型
1、 用户使用某个功能单元,其数据权限通过角色来配置。
2、 单元数据权限授权
操作符是符合sql的操作符:= <= like ,特殊操作符:all
3、 功能单元:
是否有数据权限—本单元是否启用数据权限控制;
采用数据权限模式--本单元采用哪种数据模式
4、 数据权限模式:
数据对象(表名)--数据权限控制所用的表名;
权限字段—用哪个字段进行权限控制;
过滤条件--符合where 语法的过滤语句,必须是数据对象表的字段,值内容固定。比如一个组织表,包含行政组织、工会组织,但现在只是用行政组织进行,则用“组织类型=行政组织”来过滤即可
4. 授权
对于有数据权限的单元,在角色授权时,只需要定义数据权限的“操作符”即可。
5. 使用
1) 权限模块提供获取单元数据权限接口
入口参数:帐户,单元
出口参数:数据对象,权限字段,操作符,权限值,过滤条件
如果出口参数为空