Skip to content

Structure Datascope

数据范围管理框架 · 最新版本 1.0.3 · GitHub

Structure Datascope 提供统一的数据隔离能力,支持行级和列级的数据权限控制,帮助应用实现数据范围(Data Scope)管理。

核心特性

  • 多种存储的范围过滤:MySQL(MyBatis-Plus)、Redis、Elasticsearch、MongoDB、Spring Cloud Stream
  • 行级权限控制:在 DAO 层自动添加 WHERE 条件
  • 列级权限控制:在序列化前过滤敏感字段
  • 角色 + 权限双重控制:支持角色与权限标识两种维度的字段可见性控制
  • 多表关联查询支持:自动识别 SQL 中的多表并正确注入数据权限条件
  • 租户隔离集成:与 MyBatis-Plus 租户插件无缝集成
  • 缓存数据隔离:自动为缓存键添加数据权限前缀

数据权限两层模型

行级权限(Row-Level)

控制 WHERE 条件,例如:

sql
SELECT * FROM orders
WHERE org_id = 10 AND dept_id IN (1,2,3)

列级权限(Column-Level)

控制字段可见性,例如:

json
{
  "resource": "order",
  "row_rules": [
    { "field": "org_id", "op": "=", "value": 10 },
    { "field": "dept_id", "op": "IN", "value": [1,2,3] }
  ]
}

快速引入

xml
<dependency>
    <groupId>cn.structured</groupId>
    <artifactId>structure-datascope-starter</artifactId>
    <version>1.0.3</version>
</dependency>

详细用法以 structure-datascope 仓库 README 为准。