一、前言
金融业务机构对数据权限的管理维度一般是按照组织机构维度进行管控,传统银行通常为总-分-支的形式,类金融机构通常为集团-子公司-部门的形式。单维度的数据权限控制简单明了,如按组织机构维度控制分为本机构及下级机构、本机构及指定机构、本机构、本人这四种权限方案就能满足一个单维度的数据权限控制需求。
本文要讲的是多维度的数据权限控制方案,单维度的数据权限控制固然简单清晰,但随着业务系统越来越复杂,所管理的业务也越来越多样,单维度的数据权限控制在很多业务系统中难以满足需求。
二、设计方案
多维度数据权限控制
1、权限控制方案
在多维度下权限控制方案为每个维度拥有的数据权限控制方案之总和,如上图为4个控制维度,共10个权限控制方案。
2、权限配置
为用户进行权限配置时,挑选所需要的权限控制方案,每个权限控制方案需要设置其属性,如该方案所需要用到字段,或者是方案需要配置指定机构或指定产品等,将些属性配置完成。
3、权限控制逻辑
每个权限控制方案最终输出的为权限控制条件,即sql中的查询条件,在应用时,将用户的权限控制方案读出,根据每个方案查询条件进行合并得到最终的数据权限控制条件。
如某人的权限控制方案为本人及本产品线,第一个方案的控制条件为userid='u1',第二个方案的控制条件为prdid='p1',那么最终的权限控制为:userid='u1' or prdid='p1'
4、数据权限接口
封装为四个接口,分别用于满足增、删、改、查时的数据权限判断,这四个接口可以为微服务的方式来实现。
5、业务功能调用
在每个需要进行数据权限控制的功能中调用接口来进行数据权限的控制。
三、总结
可以满足更复杂的数据权限控制需求,在实现时可以实现比较高程度的配置化,如果要更进一步的话,在调用的时候也可以配置化,哪些功能需要进行数据权限控制或不进行数据权限控制均可以配置的形式进行控制。