疑难问题,,用C#做一个与SQL server数据库连接的登录界面,关于数据库用户权限问题想不明白??

aaaa1185164 2015-11-06 06:40:37
用C#做一个与SQL server数据库连接的登录界面,根据不同数据库用户给定权限操作
采用的步骤是:
一,连接数据库;
二,读取用户表,判断用户提供的用户名及密码是否与数据库中的相符,如果相符,就OK,否则弹出对话框提示报错;
数据库中有usertable表存储数据库用户数据
在自己看书的时候发现,创建数据库用户使用,create user ,,使用grant、deny、revoke管理对表的访问,,创建的用户信息存储在目录视图sys.database_principals中,
我感觉自己创建的usertable表中的用户,虽然像设定其去数据库的操作权限,其实每个用户都有所有权限,而存储在sys.database_principals中的才是分配好权限的用户;
求教一下,是否是我理解的这样?如果我理解的对的话,,为啥所见的大家都是用自己创建的usertable表来管理用户权限的?
我想实现不用用户对数据库不同的操作权限,比如说有的用户只能浏览,有的用户只能修改等等,应该采用什么方式?
...全文
336 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaa1185164 2015-11-07
  • 打赏
  • 举报
回复
感谢二楼,让我把这个sql server 用户登录与数据库用户的关系给理顺了,
cxmcxm 2015-11-06
  • 打赏
  • 举报
回复
去自已建的用户表中的用户是用于进入你自己开发的程序的软件的,数据库本身就有用户表,你能连接到数据库,只因你是数据库的用户,连接串中的user id,与password就是用于指定数据库的用户与密码,如果是采用信任连接,sql server是默认window的用户为sql server用户。sys.database_principals中包含了数据库的用户与角色。 数据用户的上一层是sql server的登录账号与服务器角色,结构类似于window的登录账号与角色,在登录账号中通过用户映射指定某一个登录账号与那几个数据库的用户或角色关联。这样在连接中user id如指定此账号,连接后此连接只可操作与此账号关联的数据库的用户的操作权限。如果关联的数据库用户只有select权限,那此连接就只有select 的权限,用于操作insert ,update,delete将会返回错误。 你的情况,一会情况下是在所操作的数据库里定义几个数据库用户,设定各用户操作权限,再建几个登录名与此几个数据库用户关联。然后根据登录你软件的用户(你自己创建的)根据你给用户安排的权限确定使用什么登录名建连接操作数据库。 如果对安全要求不高,连接数据库就全部用sa来连接,而操作权限就在软件中自己去控制。
tcmakebest 2015-11-06
  • 打赏
  • 举报
回复
楼主说的用户应该不是数据库本身的用户,而只是这个软件的用户.

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧