權限管理系統是企業級應用的核心基礎設施。本系統採用 MVC4 + EF5 + IOC 接口編程 架構,搭配 DWTree 權限樹控件,實現「靈活授權、細粒度控制、按鈕級權限」的企業級權限體系。本篇詳細闡述系統設計哲學、核心功能特性與 7 張核心資料表的實體關係模型。
| # | 資料表 | 中文名稱 | 核心功能 | 關鍵欄位 |
|---|---|---|---|---|
| 1 | SysModule | 模組管理 | 系統選單樹狀結構,支援無限級巢狀 | Id, ParentId, Name, Url, Icon, Sort, IsVisible |
| 2 | SysUser | 用戶表 | 系統登入憑證與基本資料 | Id, UserName, Password, TrueName, Email, State, ValidTime |
| 3 | SysRole | 角色群組 | 角色定義,授權的主體單位 | Id, Name, Description, CreateTime |
| 4 | SysModuleOperate | 模組操作碼 | 定義每個模組可用的操作動作 | Id, Name, KeyCode, ModuleId, IsValid, Sort |
| 5 | SysRoleSysUser | 用戶角色關聯 | 用戶與角色多對多關聯 | SysUserId, SysRoleId |
| 6 | SysRight | 角色權限 | 角色擁有的模組權限(模組級授權) | Id, ModuleId, RoleId, RightFlag |
| 7 | SysRightOperate | 權限操作碼 | 角色在特定模組擁有的操作碼(按鈕級授權) | Id, RightId, KeyCode, IsValid |

SysModule (1) ──< (N) SysModuleOperate
│ │
│ │
▼ ▼
SysRight (N) ──< (1) SysRole (N) >── (N) SysRoleSysUser
│
│
▼
SysRightOperate (N) >── (1) SysModuleOperate
用戶 → 角色 → 模組權限 → 操作碼權限 → UI 元素顯示/隱藏 + Action 執行驗證
[OperateAuthorize(KeyCode="Create")] 過濾器攔截驗證-- 模組表(支援遞迴樹狀結構)
CREATE TABLE SysModule (
Id varchar(50) PRIMARY KEY,
ParentId varchar(50) NULL,
Name varchar(100) NOT NULL,
Url varchar(200),
Icon varchar(50),
Sort int DEFAULT 0,
IsVisible bit DEFAULT 1,
CreateTime datetime DEFAULT GETDATE()
);
-- 操作碼表(掛載於模組)
CREATE TABLE SysModuleOperate (
Id varchar(50) PRIMARY KEY,
ModuleId varchar(50) NOT NULL REFERENCES SysModule(Id),
Name varchar(50) NOT NULL, -- 顯示名稱:新增、編輯、刪除
KeyCode varchar(50) NOT NULL, -- 程式碼識別碼:Create、Edit、Delete
IsValid bit DEFAULT 0, -- 是否需額外驗證邏輯
Sort int DEFAULT 0
);
-- 角色權限表(角色-模組)
CREATE TABLE SysRight (
Id varchar(50) PRIMARY KEY,
RoleId varchar(50) NOT NULL REFERENCES SysRole(Id),
ModuleId varchar(50) NOT NULL REFERENCES SysModule(Id),
RightFlag bit DEFAULT 1 -- 1=授權, 0=撤銷
);
-- 權限操作碼表(角色-模組-操作碼)
CREATE TABLE SysRightOperate (
Id varchar(50) PRIMARY KEY,
RightId varchar(50) NOT NULL REFERENCES SysRight(Id),
KeyCode varchar(50) NOT NULL, -- 對應 SysModuleOperate.KeyCode
IsValid bit DEFAULT 1
);
| 維度 | 傳統粗粒度權限 | 本系統細粒度權限 |
|---|---|---|
| 授權單位 | 模組/選單 | 操作碼 |
| 控制精度 | 「有/無」模組存取權 | 「可新增/可刪除/可審核/可匯出」 |
| 前端適配 | 整頁顯示/隱藏 | 按鈕、欄位、操作欄逐項控制 |
| 擴充性 | 新增操作需修改程式碼 | 資料驅動,無需改碼即可新增操作類型 |
| 維護成本 | 權限矩陣龐大難管理 | 角色為中心,授權邏輯清晰直觀 |
本系列後續將涵蓋:MVC 過濾器權限攔截實作、T4 程式碼生成器、報表引擎整合、檔案上傳管理、系統參數配置等企業級應用必備模組,構建開箱即用的後台管理框架。
作者:YmNets
出處:https://ymnets.cnblogs.com/