我做过的一个mis 只是db设计了一个login表
主要字段是
loginid lodept lo lorole effet_or password
0001 10001 40 sys admin 1 xxx用户的权限是在前台做的,用户登陆时先去查数据库的login表,取得相应权限,然后用户根据不同菜单区分权限进行操作,前台可以有个菜单权限管理(只有sys admin才能操作),根据组别设置菜单权限,或根据菜单设置组别权限
主要字段是
loginid lodept lo lorole effet_or password
0001 10001 40 sys admin 1 xxx用户的权限是在前台做的,用户登陆时先去查数据库的login表,取得相应权限,然后用户根据不同菜单区分权限进行操作,前台可以有个菜单权限管理(只有sys admin才能操作),根据组别设置菜单权限,或根据菜单设置组别权限
1、用以实现对界面对象(如菜单、按钮)的权限控制。简称对象级权限
2、用以实现对数据能否被某一个用户修改、删除的权限控制。建成数据级权限对象级权限基本上大家都实现过,数据级权限比较特殊,它能够实现数据的权限分配
例如:A用户可以将其产生的数据分配给B用户修改,给C用户删除的权限。数据级权限的要点就是要在表中增加一个字段用以保存数据所有者的用户标识。
如果可以用流程之类的办法解决,那是最好了当然,我的经验有限,如果 blueluhan(鹿寒) 兄有更好的办法,欢迎一起讨论!
我是一个比较喜欢偷懒的人,写过一套类似于楼主所说的权限系统,但是发觉在用户组的权限继承方面存在一个极大的麻烦,而当用户同时属于两个组的时候,权限的交集计算非常麻烦。还有权限的委派和用户权限的临时提升也是一个很烦人的事情。于是就放弃了那套系统。
我发觉Windows2000的AD权限系统非常不错,于是动起了这个脑筋,最后发掘“组策略”可以实现我的想法。组策略支持继承和权限交集,而且使用也非常方便。于是研究了一下其2次开发原理,使用了注册表策略实现了我公司MIS系统的权限,可以控制到任意应用程序角度(完全取决于软件开发者),而且配置相当方便(使用AD的用户、用户组管理器)。
其实AD的注册表策略非常简单,充其量就是其用户权限的延伸,我们自定义了新的权限。AD负责对其进行管理和计算,然后把最终的结果写入用户计算机的注册表的一个受保护的段内。该内容对于用户只读。对于客户端程序,只需要判断注册表的键值即可。
我很少上CSDN,如果诸位有兴趣研究可以发email给我:[email protected]
过几天我会给你回复的
安全模型的一种模式语言
http://www.peoplewarecn.com/xprogrammer/XProgrammer25.pdf
基于角色访问控制的UML表示供参考