首页 > 其他分享 >多用户数据隔离表结构设计策略

多用户数据隔离表结构设计策略

时间:2022-11-21 20:02:25浏览次数:44  
标签:用户 隔离 多用户 表字 角色 主键 权限 id 结构设计


问题与背景

web系统的设计中,往往都会遇到权限问题,权限问题,最起码需要做到3个级别,模块级别,功能级别,数据级别。模块级别粒度是最粗的,只需要在五表权限模型中的权限表,设置为模块的访问权限即可。功能级别粒度会细一些,主要是针对模块中的功能进行选择性开放。数据级别是最高的,实现了完全的基于权限的数据隔离,通俗点说就是用户只能看到自己的数据,无法看到别人的数据。本文章主要针对多用户数据隔离的场景进行设计。

经验总结

先来梳理一下表结构设计,想要实现多用户数据隔离的表结构设计,这里在五表权限的基础上,新增了一张工作空间表。
用户表

字段

解释

id

主键

username

姓名

角色表

字段

解释

id

主键

rolename

角色姓名

权限表

字段

解释

id

主键

authname

权限名称

工作空间表

字段

解释

id

主键

spacename

空间名称

用户角色关联表

字段

解释

id

主键

user_id

用户id

role_id

角色id

角色权限关联表

字段

解释

id

主键

auth_id

权限id

role_id

角色id

空间用户关联表

字段

解释

id

主键

user_id

用户id

space_id

空间id

使用方式与优势:
1.建立工作空间表之后,所有需要做隔离的数据表,都增加工作空间外键,跟工作空间表关联。用户登录之后,选择工作空间进行数据的管理。
2.为什么不直接跟用户挂钩呢?web系统中往往会出现领导看下属数据的场景,工作空间一方面可以跟用户自己挂钩,还可以跟用户的领导挂钩,数据的可见性有了很大的灵活度。
3.为什么不跟角色挂钩?还是同样的原因,挂在角色上,粒度太粗了,不灵活。


标签:用户,隔离,多用户,表字,角色,主键,权限,id,结构设计
From: https://blog.51cto.com/u_11301546/5875171

相关文章