所谓数据权限就是希望不同的用户登录系统看到的数据不一样。数据权限通常是通过部门或者组织架构来绑定的,目前系统没有组织架构,只有部门数据,所以在FEBS Cloud中,数据权限通过部门ID绑定。 数据权限的使用还有一个前提就是,目标数据必须包含部门信息,比如febs_cloud_base数据库中的t_data_permission_test数据表: ![JneyQI.png](https://s1.ax1x.com/2020/04/18/JneyQI.png) 其中有一列为DEPT_ID。前端页面数据权限就是查询这张表数据: ![JnexfJ.png](https://s1.ax1x.com/2020/04/18/JnexfJ.png) 下面演示下数据权限如何使用。 首先,找到目标数据查询的Dao层,t_data_permission_test数据查询的Dao层为febs-server-system下的DataPermissionTestMapper: ![Jnm178.png](https://s1.ax1x.com/2020/04/18/Jnm178.png) `@DataPermission(methods = {"selectPage"})`注解用于控制数据权限,含义是:DataPermissionTestMapper的selectPage方法开启数据权限。 开启后,数据查询前系统会在原始查询SQL中拼接`xx.dept_id in (xxx)`语句: ![JnnSUS.png](https://s1.ax1x.com/2020/04/18/JnnSUS.png) 其中`(1,2,3,4,5,6)`说明当前用户具有部门ID为1,2,3,4,5,6的数据权限。那么用户拥有哪些数据权限在哪配置呢?点击用户管理中的用户修改按钮: ![JnnaPe.png](https://s1.ax1x.com/2020/04/18/JnnaPe.png) 可以看到,当前用户拥有所有部门的数据权限。 > 微服务子系统要使用数据权限的功能,必须先引入`febs-common-datasource-starter`依赖。