惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
AWS News Blog
AWS News Blog
Google DeepMind News
Google DeepMind News
U
Unit 42
博客园 - 叶小钗
博客园 - 聂微东
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
美团技术团队
The Cloudflare Blog
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
S
Schneier on Security
C
Check Point Blog
Project Zero
Project Zero
The Hacker News
The Hacker News
Scott Helme
Scott Helme
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cisco Talos Blog
Cisco Talos Blog
P
Privacy International News Feed
SecWiki News
SecWiki News
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
H
Help Net Security
TaoSecurity Blog
TaoSecurity Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Last Week in AI
Last Week in AI
P
Privacy & Cybersecurity Law Blog
Forbes - Security
Forbes - Security
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
PCI Perspectives
PCI Perspectives
大猫的无限游戏
大猫的无限游戏
T
Troy Hunt's Blog
H
Hacker News: Front Page
Vercel News
Vercel News

博客园 - 升鲜宝生鲜供应链系统

升鲜宝生鲜配送供应链系统 vs_车辆管理模块开发文档 PRD(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝供应链管理系统Spring Boot 4.0 项目源代码结构及数据库字典模块命名与表字段命名开发约束规范(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝 B2B 订货商城线性 --- |----- 原型图(一)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝云商品库功能设计与数据库表结构详细文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝PAD生产加工系统:销售单客户预订明细分割增强版 猪肉分割加工轻量版 · PAD端操作效果图与开发说明(二)---升鲜宝生鲜配送供应链管理系统源代码服务 升鲜宝PAD生产加工系统 猪肉分割加工轻量版功能模块方案与页面效果图(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝B2B订货商城后端开发文档(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习】快驴商品模块功能分析与数据库表结构设计文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务(标准版、专业版) 【研究与学习】悦厚系统商品模块功能设计与数据字典文档(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习】易订货商品模块设计分析文档字段级数据字典 + 表关系 + 单位换算 + 价格/库存/促销链路(一)---升鲜宝生鲜配送供应链管理系统 【研究与学习收银系统】(一)菜某秘后台 SaaS 租户运营控制、费用管理系统数据字典及功能设计方案详细文档 升鲜宝云仓供应链管理系统功能详细设计方案 PRD(二)---升鲜宝生鲜配送供应链管理系统 升鲜宝云仓供应链管理系统方案(一)---升鲜宝供应链管理系统 统一字段权限组件功能设计方案(一)---升鲜宝生鲜配送供应链管理系统 升鲜宝供应链管理系统生成图片、生成 PDF、生成分享码通用组件功能设计文档(一)---升鲜宝生鲜配送供应链管理系统源代码(Spring Boot Vue3 Uniapp ) 升鲜宝后端 API 与手机端 API 开发说明(一)---升鲜宝生鲜配送供应链管理系统重构版 「我的中心」设置模块 功能设计与开发文档(一)--- 升鲜宝生鲜配送供应链管理系统重构说明 通用明细列表控件设计与开发文档(一)---升鲜宝生鲜配送供应链管理软件重构方案 管理类软件通用高级查询组件(一)---升鲜宝生鲜配送供应链管理软件重构方案 升鲜宝商品模块重构版接口清单 (二)+ 页面原型字段设计 升鲜宝供应链商品模块设计(一) 数据字典及功能开发详细说明 升鲜宝日志功能模块设计说明(一)---生鲜配送供应链管理系统源代码 升鲜宝静态文本国际化完整 SQL 说明 升鲜宝多语言数据库设计演进对比文档 升鲜宝通用自定义列导入导出功能的通用设计方案(一)---升鲜宝生鲜配送供应链管理系统源代码 升鲜宝高性能多语言解决方案(二)---升鲜宝生鲜配送供应链管理系统 升鲜宝高性能多语言解决方案(一)---升鲜宝生鲜配送供应链管理系统 企业微信CRM模块功能设计(三)—— 升鲜宝生鲜配送供应链管理系统源代码 企业微信CRM模块功能设计(二)—— 升鲜宝生鲜配送供应链管理系统源代码 企业微信CRM模块功能设计(一)—— 升鲜宝生鲜配送供应链管理系统源代码 升鲜宝社区团购商城软件设计功能文档(含完整功能设计、业务流程图、数据字典、DDL 口径与后台权限设计)--生鲜配送供应链管理系统源码 升鲜宝社区团购商城 MySQL 8.0 DDL 生鲜配送供应链管理系统源代码之升鲜宝社区团购商城小程序(一) 《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册(升鲜宝版)》 升鲜宝供应链管理系统B端客户价格域的表结构设计及相关说明 PMS商品域完整 DDL 脚本 及 系统功能设计规格书,这套底层模型能够完美支撑生鲜行业特有的“多单位销售”、“双单位称重核算”以及“非标品临采”等复杂场景。 升鲜宝 生鲜配送供应链管理系统 运营管理系统 SaaS Admin:SYS & SAAS 常用 CRUD SQL 示例(用于对账/排查/脚本) 升鲜宝 生鲜配送供应链管理系统 SaaS Admin 权限体系完整架构图 升鲜宝 SaaS 平台后台数据库结构(含菜单/权限)最终版(MySQL) 升鲜宝 生鲜配送供应链管理系统 SaaS 平台后台功能模块规划 升鲜宝 生鲜配送 供应链管理系统 SaaS 自动计费引擎核心接口清单 升鲜宝 供应链管理系统 SaaS 自动计费引擎详细算法说明书(Algorithm Spec) 升鲜宝 SaaS 租户订阅系统数据库设计与功能说明
“多租户(tenant)+ 部门数据权限(dept)双层隔离” 的升鲜宝最终设计(单体 Spring Boot 直接可落地,未来拆微服务也不改核心规则)。
升鲜宝生鲜供应链系统 · 2026-02-13 · via 博客园 - 升鲜宝生鲜供应链系统

“多租户(tenant)+ 部门数据权限(dept)双层隔离”升鲜宝最终设计(单体 Spring Boot 直接可落地,未来拆微服务也不改核心规则)。

1)双层隔离的核心目标

第一层:租户隔离(硬隔离)

  • 所有业务表必须有 tenant_id

  • 所有查询/写入都必须自动带 tenant_id

  • 任何绕过都视为严重漏洞

第二层:组织数据权限(软隔离)

同一租户内,不同角色只能看到自己范围:

  • 部门(dept_id)

  • 门店(shop_id)

  • 仓库(warehouse_id)

  • 以及“本人数据(created_by)”等

最终效果:
tenant_id 把公司隔开;dept/shop/warehouse 把内部组织隔开。


2)统一字段规范(全库强制)

所有业务表(必须)

  • tenant_id BIGINT NOT NULL

  • created_by BIGINT

  • created_at BIGINT

  • deleted TINYINT DEFAULT 0

  • enabled TINYINT DEFAULT 1

需要组织隔离的业务表(按域选择其一或多)

  • dept_id BIGINT(组织/部门维度)

  • shop_id BIGINT(门店域/hwms/pos/销售)

  • warehouse_id BIGINT(公司仓库/wms/成本)

  • company_id BIGINT(主组织维度,可选)

升鲜宝建议:

  • WMS & cost:warehouse_id 必须有

  • HWMS & hcost:shop_id 必须有

  • 订单:sales 走 shop_id,purchase 走 company/warehouse(看你履约)


3)权限模型:RBAC + DataScope(数据范围)

3.1 角色数据范围枚举(DataScopeType)

  • ALL:本租户全量(仅租户管理员/老板)

  • DEPT:本部门

  • DEPT_AND_SUB:本部门及下级

  • SHOPS:指定门店集合

  • WAREHOUSES:指定仓库集合

  • SELF:本人创建的数据

  • CUSTOM:自定义(部门+门店+仓库混合)

注意:所有 scope 都是在 tenant_id 已过滤后 才生效。


4)数据库表结构(权限域)

4.1 组织结构(树)

  • org_dept(id, tenant_id, parent_id, dept_name, path, level, ...)

  • org_shop(id, tenant_id, company_id, ...)

  • org_warehouse(id, tenant_id, company_id, ...)

4.2 用户/角色/权限

  • sys_user(id, tenant_id, username, password_hash, dept_id, is_tenant_admin, ...)

  • sys_role(id, tenant_id, role_code, role_name, ...)

  • sys_user_role(id, tenant_id, user_id, role_id)

  • sys_permission(id, tenant_id, perm_code, perm_name, ...)

  • sys_role_permission(id, tenant_id, role_id, perm_id)

4.3 数据范围(关键)

角色的数据范围策略表:

  • sys_role_data_scope(id, tenant_id, role_id, scope_type, ...)

当 scope_type = SHOPS / WAREHOUSES / CUSTOM 时,需要映射表:

  • sys_role_scope_shop(id, tenant_id, role_id, shop_id)

  • sys_role_scope_warehouse(id, tenant_id, role_id, warehouse_id)

  • sys_role_scope_dept(id, tenant_id, role_id, dept_id)(用于 CUSTOM 或 DEPT 子集)

为什么用“角色”而不是“用户”存数据范围?
因为同角色一批人可复用规则;用户特殊情况可加 sys_user_data_scope_override 做覆盖(可选)。


5)执行链路:必须“双拦截”

5.1 Tenant 拦截(强制)

实现方式(推荐 MyBatis-Plus):

  • TenantLineInnerInterceptor 自动拼:tenant_id = ?

  • 对于不含 tenant_id 的表(平台表 tenant/tenant_module),加入忽略名单

5.2 DataScope 拦截(组织范围)

实现方式(推荐两种之一):

方案 A(推荐):MyBatis-Plus DataPermissionInterceptor

  • 对指定 Mapper 方法开启数据权限

  • 自动拼接:dept_id/shop_id/warehouse_id/created_by 条件

方案 B:AOP + SQL 注入(不推荐长期用)

  • 用 AOP 包一层拼条件,侵入性更高

升鲜宝建议:
Tenant 用 TenantLineInnerInterceptor
数据权限用 DataPermissionInterceptor(可维护、可统一管理)。


6)数据权限规则生成器(核心算法)

对每次请求,先得到一个 DataScopeContext

  • tenantId(必有)

  • userId

  • deptId

  • roleScopes(可能多个角色,取并集 or 取最宽策略)

  • allowedShopIds / allowedWarehouseIds / allowedDeptIds(集合)

然后按业务表的“组织维度”生成 SQL 条件:

示例 1:WMS 库存表(warehouse_id)

示例 2:HWMS 门店库存表(shop_id)

示例 3:通用单据(dept_id + created_by)

若 scope=DEPT_AND_SUB:

若 scope=SELF:

多角色合并规则(建议)

  • 取并集(更符合“多个角色赋权叠加”)

  • 但租户管理员直接 ALL


7)“表级策略”配置(避免每张表手写)

做一张元数据表:sys_data_scope_rule

  • table_name

  • scope_dimensionDEPT/SHOP/WAREHOUSE/SELF/MIXED

  • dept_field / shop_field / warehouse_field / owner_field

  • enabled

这样 DataPermissionInterceptor 能根据 “表名 → 维度字段” 自动拼接,不需要每个 Mapper 单独写。


8)典型升鲜宝域的推荐隔离维度

推荐维度字段说明
product 商品域 dept_id 或 company_id(可选) 多数情况下租户内共享即可
supplier 供应商域 company_id 或 dept_id 采购组织隔离
wms 公司仓库域 warehouse_id(必须) 仓库是天然数据边界
cost 公司成本域 warehouse_id(必须) 成本必须跟仓库隔离
hwms 门店域 shop_id(必须) 门店是天然边界
hcost 门店成本域 shop_id(必须) 同上
sales 销售域 shop_id + created_by 门店业务
finance 财务域 company_id/ dept_id 视财务组织而定

9)安全底线(必须做)

    1. 所有写入必须自动填充 tenant_id

    2. 所有查询必须自动带 tenant_id(不允许手写遗漏)

    3. 数据权限条件必须在 SQL 层生效(只靠前端/业务逻辑不算)

    4. 对管理员账号(tenant_admin)走白名单放行,但仍必须 tenant 隔离

    5. 审计表(sys_audit_log)也要带 tenant_id + operator_id