日期:2014-05-17  浏览次数:20657 次

sqlserver权限分配问题
如果应用中需要有老师,学生和管理者三种用户,在数据库中怎么分配权限。给些思路。。。
SQL?Server 数据库 应用

------解决方案--------------------
这要看需求
老师,管理员肯定需要修改查看数据,所以要添加到db_datareader,db_datawriter角色
学生如果是只读权限就只需要db_datareader就可以了。
如果需要管理的更严跟,就要根据对象来设定权限

------解决方案--------------------
角色可以由,比如老师可以看到什么表,执行什么存储过程等等。如果很对于一张表老师和学生可以看到不同的数据库以在程序中进行控制,根据身份过滤数据。

数据库权限可以查BOL的固定角色。
------解决方案--------------------
权限管控可以分为两种方式
1 应用程序方面,根据登录账号的角色,决定他可以使用的功能或者菜单,这样就可以控制他们的权限了
2 数据库方便,可以先创建三个不同的账号,扮演老师,管理员,学生的角色,分配相应的对象访问权限,
之后再程序登录后根据登录角色分配不同的sql server账号,这样就可以有之后相应的权限了,在结合程序管控的权限,就相当于双保险。

其实最严谨的办法是第2种,但是简单的应用都使用第一种就好了,以为你的sql账号是不透明的,只要程序不出什么问题,就不会导致权限失控
------解决方案--------------------
如果楼主对安全要求不是那么高的话,可以不用考虑数据库端的权限控制
权限部分由应用程序控制
通常可以需要设计
1)菜单表
2)角色表
3)用户表
4)角色/菜单关系表

1)在登录的时候就进行权限的判断
2)或者点击菜单的时候进行权限的判断

------解决方案--------------------
引用:
Quote: 引用:

你的应用程序对应的库里面应该会有一个登录账号的表,记录每个人的登录账号,也就是比如B/S结构下,页面登录的账号密码,然后做个角色表,再做个账号与角色的关系表,用于记录该账号属于那个角色,然后对数据库的增删改查前先检查这个账号锁对应的角色是否有权限,这里注明一下,你那个应该是应用程序级别的权限,不是sqlserver的权限。不要过多关注什么datareader这些

我想知道数据库的用户,角色等权限概念怎么和程序结合,在应用层的权限基本有些了解了
比较通俗的说法就是datareader那种“权限”是用在“连接”sqlserver上,而一个应用系统中所谓的权限就是内部的东西。其实我也给你搞混了