[七年技术总结系列][理论篇]-RBAC权限模型由浅入深
权限部分将分两章介绍,第一章由浅入深介绍权限理论知识及应用,第二章介绍具体实现。后期再讲述中间件的使用时,还会插入一些权限内容,本质上属于中间件的应用。
权限模块是业务系统最常见、最基本的子集。本章假定了一个系统从最初简单的需求到逐渐成熟且完善的权限体系的实现过程。
阅读本章预计花费20分钟。
1. 最简单的权限模型
业务系统初期,需求简单,对于权限的内容本身并不复杂,我们假设权限部分仅有这样简单的需求:
能给用户赋予数据的增、删、改、查四种权限
分析此需求,权限的主体为用户,权限的内容有多种,关系为M - M,具体为:
用户模型:
public class User { public int UserId{ get; set; } public string UserName { get; set; } }用户表Auth_User
| 字段 | 类型 | 说明 |
|---|---|---|
| *UserId | int | 用户ID |
| UserName | varchar | 用户名 |
| ... | ... | ... |
权限枚举:
[Flags] public enum Permission { Add = 1, Update = 2, Delete = 4, Select = 8 }权限表 Auth_Permission
| 字段 | 类型 | 说明 |
|---|---|---|
| *PermissionId | int | 权限ID |
| Permission | varchar | 权限内容 |
用户-权限关系表 Auth_UserPermission
| 字段 | 类型 | 说明 |
|---|---|---|
| *UserId | int | 用户ID |