您的位置:程序门 -> .net技术 -> c#



权限管理的问题,走入了死胡同,请求高人援手!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


权限管理的问题,走入了死胡同,请求高人援手![已结贴,结贴人:songcan]
发表于:2007-02-12 13:07:23 楼主
小弟的系统是winform的,权限管理模块使用了六张表用户表,权限表,角色表,用户--权限表,用户--角色表,角色--权限表
5 增加用户 增加一个具有使用此系统权限的用户
6 删除用户 将具有使用此系统权限的一个用户删除
7 修改用户密码 修改用户密码
上面是权限表的内容,初看没问题,细看问题就出来了,如果权限内容发生改变
就出问题了,打个比方,现在增加用户的意思是往用户表里添加一个用户,但是如果内容发生改变如改成abcd,就不知道怎么办了,很显然有问题,第一次做系统,请高人们给个事例或给些提示,谢谢!

发表于:2007-02-12 13:12:171楼 得分:5
不太明白
改了有什么问题吗
发表于:2007-02-12 13:16:192楼 得分:5
没看明白什么意思
发表于:2007-02-12 13:18:573楼 得分:15
没什么问题,权限按照通常情况下是固定的(比如就有7种权限就是1-7)
要修改用户权限
用户--权限表
user           1

user           2
这个修改和权限表是没关系的,换句话说权限表只能添加,不能删除或修改
权限的编号和意义一定要先定义好
发表于:2007-02-12 13:21:554楼 得分:5
没看明白..-_-!
发表于:2007-02-12 13:27:595楼 得分:5
没看明白。。。
发表于:2007-02-12 13:28:566楼 得分:0
我的做法是在程序里每个窗体里加三个按纽,分别是添加,删除,修改用来编辑,一个datagrid显示所有记录,
以增加用户功能为例
如果我通过查询数据库得知该用户没有增加用户的权限,则添加按纽禁用,
问题是如果我将上面的
5 增加用户 增加一个具有使用此系统权限的用户
改为
5 abcd 增加一个具有使用此系统权限的用户
那么程序就不能作出正确判断,
我不知道向下面这样列出系统所有功能是否正确
5 增加用户 增加一个具有使用此系统权限的用户
6 删除用户 将具有使用此系统权限的一个用户删除
7 修改用户密码 修改用户密码

只是感觉怪怪的,查了很多资料也不得要领.请高人们指点,谢谢!
发表于:2007-02-12 13:39:487楼 得分:0
用户表
uid             pwd
555 555               2007-01-25   15:59:41.937 null
666 666               2007-01-28   15:20:21.340 null

用户表
role_id   rolename
7       管理员 具有管理系统的最大权限
8       一般用户 能进行一般操作

right_id     right_name
5                     增加用户 增加一个具有使用此系统权限的用户
6                   删除用户                     将具有使用此系统权限的一个用户删除
7                   修改用户密码 修改用户密码


发表于:2007-02-12 13:45:298楼 得分:0
还有三张是他们之间的连接表,请问上面设计合理吗?
还是应该设计为
tablename     select       update     insert     delete
用户表           1                   1             1                 0

心好乱,都不知道如何表述清楚自己的想法。请高人们谅解!
发表于:2007-02-12 13:57:339楼 得分:10
有了用户表,用户角色表,角色权限表,     为什么还要有用户权限表   ?     设计的时候权限是可以直接付给用户的?
发表于:2007-02-12 14:20:0310楼 得分:0
设计的时候,权限是可以直接付给用户的,想灵活一些,达人们,请指点一下,即使不考虑我的问题,说说你们的做法也好啊,我真的是查了大量资料也不得要领,感谢!
发表于:2007-02-12 14:50:0911楼 得分:10
只需要这5个表舅可以了阿:用户表,权限表,角色表,用户--角色表,角色--权限表
用户--权限表做什么用呢!!
发表于:2007-02-12 15:15:0612楼 得分:10
我理解了楼主的意思,一般规范的权限管理只需定义用户、角色、角色-权限定义、用户角色表,这个逻辑关系应该是比较简单的,但有时为了图方便,直接把权限赋给了用户,于是就有了用户-权限表,这一般情况下是不可取的。

在设计数据库时,使用用户id就不会发生上述问题,即不管用户基本信息怎么变更,id是不能变的。
在读取用户权限时,分用户id-角色id、用户id-权限id进行管理,用户基本信息与用户权限不会冲突,看某人是否具有某权限时,只要将两者做一个union就行了
发表于:2007-02-12 17:32:5913楼 得分:0
还是不明白,谢谢各位高人,我想问一下各位

                                a
right_id     right_name
5                     增加用户增加一个具有使用此系统权限的用户
6                   删除用户                     将具有使用此系统权限的一个用户删除
7                   修改用户密码修改用户密码


                              b

tablename     select               update           insert           delete
用户表           角色名               角色名           角色名                 0

权限应该向a那样定义还是像b一样固定为acid四种操作?
发表于:2007-02-12 20:08:0814楼 得分:5
看不懂......
发表于:2007-02-12 20:33:0915楼 得分:10
反正其他都引用权限表的主键.不就完了吗...

这样子.权制表如何的修改.其它的表都会跟着变化...

如果要删除权限表的记录.就麻烦一些.首先要判断权限记录的编号有没有被引用过.如果有.先删除其字记录...
发表于:2007-02-13 13:15:0816楼 得分:0
我不明白楼主为什么不把这几张表混合成为一张表,一张表里多设几个字段,象你的角色--权限表里面体现的3个功能分成3个字段,用01标识,这样行吗


快速检索

最新资讯
热门点击