Skip to content

数据权限

本文档介绍如何使用数据权限功能。

什么是数据权限?

数据权限是指根据用户的角色和部门,限制用户只能查看和操作特定范围的数据。

使用方法

1. 添加注解

在需要数据权限过滤的方法上添加 @DataScope 注解:

java
@DataScope(deptAlias = "d", userAlias = "u")
@GetMapping("/list")
public R<List<User>> list() {
    return R.ok(userService.list());
}

2. SQL 配置

在 Mapper XML 中使用数据权限占位符:

xml
<select id="selectUserList" resultType="User">
    SELECT u.* FROM sys_user u
    LEFT JOIN sys_dept d ON u.dept_id = d.dept_id
    WHERE u.del_flag = '0'
    ${params.dataScope}
</select>

权限范围

  • 全部数据权限:可以查看所有数据
  • 自定义数据权限:可以查看指定部门的数据
  • 本部门数据权限:只能查看本部门的数据
  • 本部门及以下数据权限:可以查看本部门及下级部门的数据
  • 仅本人数据权限:只能查看自己的数据

配置示例

java
@Service
public class UserServiceImpl implements IUserService {
    
    @DataScope(deptAlias = "d", userAlias = "u")
    @Override
    public List<User> selectUserList(User user) {
        return userMapper.selectUserList(user);
    }
}

注意事项

  1. 确保 SQL 中包含部门表和用户表的关联
  2. 使用 ${params.dataScope} 占位符
  3. 注解参数要与 SQL 中的表别名一致

参考资源

MIT License