日期:2014-05-19  浏览次数:20690 次

老师的意思是否和我一致?
老师的说法:
使用你系统的人肯定有权限的划分,每个人享有不同的权限,那这些权限怎么实现呢?最彻底的实现方法就是在数据库这个层次,对每个用户进行权限的划分,例如某个用户只能读某个表,你可以让该用户登录后,在数据库中赋予该用户只能读这个表但是不能读其他表的权限,关于权限的介绍每个介绍SQL   server的书上应该都有把

我的想法是:
譬如我在数据建立两个用户Manager和Member。Manager用户拥有select,update和delete权限,可以对数据库进行各种操作。而Member用户只能select。
在程序系统中,我也要判断使用系统的人的权限,级别高的人就要用Manager用户登陆数据库,级别低的用Member登陆数据库。

老师和我想的是否一致呢?或者……在数据库(Server2000)中能有更高深的方法实现老师大人的意思?请各位达人指点迷津~

------解决方案--------------------
真正权限这玩意说实在话根本不像你和你老师说的那样,你如果真涉足过企业信息化管理系统,你会发现客户需求的权限比你想象的要复杂得多

像你提到的权限模型是很简单的,但是我有很多客户他们会有这样的需求:

比如对客户资料,有的人我会全开放,有的人我只让他看到编号和名称,其他字段保密,有的人我会把这个客户完全屏蔽掉——按你和你老师的做法,能实现吗?
再有关于报表还有权限,有的人不能看这个报表,有的人能看,但不能打印或导出——按你和你老师的做法,能实现吗?

具体问题具体分析,没有那么简单的,除非本来做的就是简单的需求
------解决方案--------------------
实际应用中:根据用户的需求

现在的学习中:先实现最简单的权限管理即可
------解决方案--------------------
如果只是毕业设计,可以设计一个权限表,设置用户权限组,根据用户类型和用户所在的权限组得到相应的操作权限即可。
------解决方案--------------------
以你毕业设计的这些需求,你目前的设计基本够用了
------解决方案--------------------
我觉得老师想法对,你的想法只对SQL的3个行为划分,没有对所有权限精心细致划分
------解决方案--------------------
我猜你的老师是想让你用windows帐户做为你自己做程序的用户,然后让mssql以操作系统用户登录,最后,在数据库权限管理中把这些操作系统用户对数据表的访问权限定义出来。这样,用户以a用户名登录操作系统来运行你的程序,对数据库的操作权限也只有a的权限.这种方法无论windos应用程序还是asp.net程序(需要去掉匿名访问)的话,权限控制基本不用在程序中实现。

不过,这种做法对用户来说是恶梦。楼主如果想了解一下目前比较通用的权限控制,可以采用RBAC来表现你的权限机制,然后以aop的方式把权限控制切入到自己的系统中。
------解决方案--------------------
如果按照你老师的说法,你就玩完了,没有人这么控制的

最好的控制方法,采用三层结构,中间层提供每种业务的操作方法,在方法上控制具体用户是否具备访问权限。