权限系统笔记(二) 数据权限

📅 发布时间:2026/8/9 17:01:24
权限系统笔记(二) 数据权限 文章目录数据权限特殊的数据权限(例如qq文档)数据权限是由角色控制的吗?标准角色和自定义角色数据权限菜单权限决定让不让进(是否能看到)。数据权限决定让看多少。可以都由角色控制分为菜单权限和数据权限。数据权限类型1、个人数据 # onlyUser2、本部门数据 # onlyDepartment一般来说控到个人和部门就够了而且不用加额外字段因为一般的数据表用户和机构id都会带上。特殊的数据权限(例如qq文档)这就需要额外的表了如extra_auth(额外授权表)字段名类型说明idbigint主键object_typevarchar业务类型如DOC, ORDERobject_idvarchar业务数据的主键target_typevarchar授权对象类型USER 个人, DEPT 部门, GROUP 小组, ROLE 角色target_idvarchar授权对象ID对应上面类型的IDperm_codevarchar权限标识如 view, edit例如一篇文档添加了张三、李四、技术九组的权限。那么增加3条记录如下id|object_type|object_id|target_type|target_id|perm_code:---|:---|:---|:---|:---|:---1|DOC|DOC_1001|USER|101|view2|DOC|DOC_1001|USER|102|view3|DOC|DOC_1001|GROUP|G_900|edit这样取合集就可以找到权限了。数据权限是由角色控制的吗?最好由角色控制。角色控制两部分数据1、功能菜单 # 这个比较好理解2、数据权限简单实用就是角色各菜单通用一套数据范围这样数据量较小。数量级最大为角色x机构如果再有个是否包含下级数据量甚至能缩小到 角色x1(顶级机构)或有限的N(只选几个高级机构) 。如果角色功能数据范围数据量会大很多假设20个页面每个页面5个按钮数据量大了100倍如果确实有这个要求可以考虑这么做。标准角色和自定义角色这是一个比较好的策略相当于模板先定义一些标准角色自定义角色的选基础的标准角色实现了复用例如标准角色-会计 有5个菜单、几十个按钮自定义角色就不用再配置一遍了。哪些要可以修改哪些要固定继承?底层操作是基于标准角色的菜单配置复制一份如果要去掉某个菜单在这个副本上改就行。但是有些不能改例如适用组织范围是本级机构还是本级及下级机构。