首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

讨论在软件开发中用户权限的设计有关问题

2012-12-30 
讨论在软件开发中用户权限的设计问题在应用系统中用户的权限控制非常的重要,在设计方面也比较难。例如:在一

讨论在软件开发中用户权限的设计问题
在应用系统中用户的权限控制非常的重要,在设计方面也比较难。
例如:在一个应用系统中有人员、有群组,一个人员可以在多个群组中(如企业中人员的兼职),一个群组又可以包含多个子群组(如一个部门有n个小组),当系统中的一个人员发公告时,他可能会选择几个群组和几个人员,那么相应的这几个群组中的所有人员及子群组中的人员和发公告时选择的人员都应有阅读的权限;那么在公告存入数据库(sql server)后,当用户登陆系统时,如何根据当前登陆用户的权限从数据库中将他有权阅读的公告查询出来,当数据量大时(数据库仅sqlserver或mysql),如何提高查询的效率。

[解决办法]
参考oracle的权限系统
[解决办法]
同问。 


[解决办法]
根据每个人的角色,分配个人的权限!
[解决办法]
每个消息存放两个信息,组id,和用户id,其中组id和用户id都可以为空

如果组id为空,表示发给指定人
如果用户id为空,则表示发给这个组

然后根据登录用户的id,已经用户所在的组id,就可以得出全部的信息

数据库中建立组id索引和用户id索引即可
[解决办法]
首先设定一个前提,就是同级群组不允许嵌套,一个子群组只能属于一个父群组。也就是说群组划分要是一个树型结构的

然后在群组编号上设定规则,第一级群组用3位,第二集群组用6位......比如:市场部 001,财务部002,其中市场部包含 北方市场 001001,南方市场 001002......

这样一个用户登陆上来以后,先获得他所属的所有群组,再根据规则拆分得到所有的父群组。
如:一个用户属于群组 001001 , 002001003 和 002002,你就可以拆分出 001,002,001001,002001,002002,002001003,这样你只要查询对这些群组开放的公告和对这个用户ID开放的公告就行了
[解决办法]
授权操作时用组处理,减化操作;保存授权数据时到用户
[解决办法]
这个是要根据需求来的,但相信只要掌握主流的就可以应付其它的

角色,权限,用户
三者之间都是多对多的关系(多对多会在两表之间产生一个映射表)
[解决办法]

引用:
jiaorg
对于你说法,当一个企业文件只发到一个群组且群组不嵌套的情况下是可行的。
goddy123
对于你说的方法也考虑过,但前提权限必须是树形结构,对于网状结构还是不行,在企业的应用中,有可能一个人员会在几个群组下,比如人员的兼职,新建的临时项目组等。
yuxh81
角色,权限,用户 这与domino的ACL控制差不多,但作为关系型数据库对于每条数据并没有像domino那样有相应……


可以考虑将权限分成“操作权限”和“查询权限”
前者决定能不能做(增删改,不包含查,查由查询权限决定),后者决定能看谁的信息
不知道行不行。。
[解决办法]
谁开发个读狗写狗的 工具呀
[解决办法]
引用:
在应用系统中用户的权限控制非常的重要,在设计方面也比较难。

因为其重要,所以也是数据库应用系统开发的一个基础性任务。如果处理不了这个,就称不上真正的程序员,更不可能成为系统分析员。如果你看过几本开发书,即使它不能完全解决你目前可能比较复杂的系统中的权限问题,但也完全应该能让你达到可以解决这个问题的能力。

热点排行