一、生鲜系统多账号管理的核心需求
1. 角色细分与权限隔离
- 采购端:需访问供应商信息、采购订单、库存预警,但禁止修改财务数据。
- 仓储端:管理入库、出库、盘点,需实时查看库存状态,但无权修改商品价格。
- 配送端:仅能查看配送任务、路线规划,无法访问采购合同。
- 财务端:拥有支付审批、对账权限,但无权操作物流系统。
- 管理员:具备全局配置权限,但需通过审批流程才能修改核心参数。
2. 数据安全与审计
- 操作日志全记录(如谁在何时修改了商品价格)。
- 敏感操作二次验证(如大额订单支付需短信验证码)。
- 定期权限审计,防止权限滥用。
3. 跨区域/分支机构管理
- 总部可统一管理分店账号,但分店仅能操作本地数据。
- 支持按区域、品类划分数据权限(如华东区只能查看华东库存)。
二、万象源码的权限架构设计
万象源码(假设为开源或定制化生鲜系统)的权限模型需满足RBAC(基于角色的访问控制)标准,核心组件包括:
1. 用户(User)
- 唯一标识(如手机号/工号),关联角色与部门。
- 支持多因素认证(MFA),如短信+人脸识别。
2. 角色(Role)
- 预定义角色模板(如采购员、仓管员),支持自定义扩展。
- 角色继承:如“区域经理”继承“店长”权限,并添加审批权限。
3. 权限(Permission)
- 细粒度控制:
- 数据权限:按区域、品类、时间范围过滤数据(如华东区仓管只能查看华东库存)。
- 功能权限:按钮级控制(如禁用“删除订单”按钮)。
- 动态权限:根据业务规则自动调整(如促销期间临时开放价格修改权限)。
4. 组织架构(Organization)
- 多级部门树(总部→大区→门店),支持跨部门数据共享规则。
- 岗位与角色绑定(如“门店店长”自动关联“门店管理”角色)。
三、万象源码部署方案:权限分明的实践路径
1. 微服务架构拆分
- 将系统拆分为用户服务、权限服务、业务服务(采购/仓储/配送),通过API网关统一鉴权。
- 示例:仓储服务调用权限服务验证“是否允许操作库存”。
2. 数据库权限控制
- 按角色分配数据库视图(如采购员仅能看到`supplier`表的部分字段)。
- 使用行级安全策略(如华东区仓管只能查询`inventory`表中`region=华东`的数据)。
3. 容器化部署与网络隔离
- 权限服务独立部署,通过Kubernetes Namespace隔离。
- 业务服务通过Service Mesh(如Istio)实现服务间鉴权。
4. 动态权限加载
- 权限规则存储在Redis,支持实时更新(如临时提升某用户审批权限)。
- 结合ABAC(基于属性的访问控制)实现复杂规则(如“仅当库存<10%时允许紧急采购”)。
四、安全与合规实践
1. 最小权限原则
- 默认拒绝所有权限,仅通过显式授权开放。
- 定期审查权限分配,回收离职人员账号。
2. 操作审计与溯源
- 记录所有敏感操作(如价格修改、订单删除),关联操作人、时间、IP。
- 支持按时间、用户、操作类型筛选日志,满足合规审计要求。
3. 应急响应机制
- 紧急情况下(如系统故障),通过“超级管理员”临时接管权限,事后补录审批流程。
- 权限变更需双因素认证(如短信+邮箱验证码)。
五、典型场景示例
- 场景1:跨区域采购审批
- 华东采购员提交订单后,系统自动触发审批流:
1. 权限服务验证审批人角色(需为“华东采购主管”)。
2. 审批通过后,权限服务更新订单状态,并通知仓储端。
- 场景2:临时权限分配
- 促销期间,需开放门店员工修改商品价格的权限:
1. 管理员通过权限服务创建临时角色“促销价格员”,有效期24小时。
2. 系统自动记录所有价格修改操作,便于事后审计。
六、技术选型建议
- 开源框架:Spring Security + OAuth2.0(权限控制),Casbin(细粒度策略)。
- 云原生方案:Kubernetes RBAC + Istio策略(服务间鉴权)。
- 数据库:PostgreSQL(行级安全策略),或MongoDB(动态权限字段)。
通过上述设计,生鲜系统可实现“按需授权、操作留痕、风险可控”的权限管理体系,既保障业务灵活性,又符合数据安全合规要求。实际部署时需结合企业规模、业务复杂度进行定制化调整。