系统权限设计完全教程:从角色授权到数据权限,一次把边界划清楚

权限是那种"没出事时没人提,出事后全是问题"的模块。业务早期往往先用几个 if 判断顶着——管理员能看到全部,普通用户只能看自己的;等团队扩到几十人、客户开始问"能不能只让他们看本部门数据",才发现当初的判断散落在几十个接口里,改一处漏三处。

这篇把权限设计从"加个角色字段"拉回到一套可推导的结构:先讲清楚权限到底在回答哪几个问题,再讲从角色授权到属性授权的取舍边界、数据权限的三种落地方式,最后给一套五步落地流程、六个高频坑和一份上线检查清单。


一、权限到底在回答什么问题

所有权限需求,拆到底都是三个问题:

能不能进来(认证 / 访问控制)——这个用户有没有访问这个系统的资格,通常交给登录和会话解决,不属于本文重点。

能干什么(功能权限)——能不能点这个按钮、调这个接口、进这个菜单。比如"能不能审批""能不能导出""能不能删除"。

能看多少(数据权限)——同样是"查看订单",销售只能看自己的客户,销售总监能看整个大区,财务能看全部但看不到客户联系方式。

第三个问题最容易被忽略,也最容易在后期爆炸。 很多系统上线时功能权限做得很完整,数据权限却是一句 where creator_id = 当前

🔒 登录后查看全文

登录后即可查看完整内容