WEB 应用
数据权限控制
轻量级解决方案
aliang
2012-3-2
WEB 应用数据权限控制轻量级解决方案.doc
2 / 10
目 录
1 前言 .............................................................................................................................. 3
2 方案目标 ...................................................................................................................... 4
3 设计思路 ...................................................................................................................... 4
4 逻辑流程图................................................................................................................... 6
5 数据库表设计 ............................................................................................................... 7
6 关键技术点................................................................................................................... 7
7 方案应用 ...................................................................................................................... 8
8 总结 .............................................................................................................................. 9
WEB 应用数据权限控制轻量级解决方案.doc
3 / 10
1 前言
很早就想把自己关于 WEB 应用中数据权限控制的思考写出来同大家分享,
一直没有抽出时间,今天总算把此码成文字,以便能给对此感兴趣的朋友提供一
种思路。
在许多应用开发中我们都会涉及到权限管理,当然,权限管理主要分两部分,
即功能权限和数据访问权限。针对功能权限的控制,想必很多朋友都有很成熟的
方案,在此不再废话。本文档主要探讨在 WEB 应用开发中的数据权限控制。
现在,许多的软件公司开发 WEB 应用都是利用开源框架 S(Struts)S(Spring)
H(Hibernate)或 S(Struts)S(Spring)I(ibatis)来进行 WEB 应用开发的。关
于数据权限的控制一般都是在代码开发时对访问数据库数据的 SQL 语句添加涉
及数据权限控制的 WHERE 条件来实现。这样做的弊端就是在开发时就要详细分
析哪些数据需要加入权限控制,并且这些关于数据权限控制的代码散布到整个应
用中。一旦需要调整时就要对许多的 SQL 语句扒拉一边进行修改,很是耗费精力。
在做项目时,我也同样经受过这样的痛苦,于是我就想,能否把 WEB 应用
的数据权限控制独立出来,就象 Spring 和切面编程一样,做到代码侵入度最低,
灵活方便的添加数据权限控制。于是就有了我下面的思考和验证。
许多成熟的开发平台都有自己的一套关于数据权限控制的方案,这些控制都
是依托数据集来完成的,通过把数据访问的规则加到数据集上来实现对数据访问
的控制。但在 WEB 应用开发中,这些开源框架中都没有数据集的概念或展现,
准确的说是很难在开发或运行状态下获取到有哪些数据集及数据项。
其实数据集的本质就是 SQL 语句返回的结果集(从 XML 或表格文件等形成
的数据集不在此讨论范围),对数据集加入数据访问控制就是对 SQL 语句加入数
据过滤条件。既然开源框架中没有数据集可用,那我们是否可以把数据访问控制
直接应用到数据库表或视图上来达到目的呢?经过思考和验证完全可以做到。
- 1
- 2
- 3
- 4
- 5
- 6
前往页