csdn_export_md

SQL server的用户权限答疑

以及登录名,数据库用户,数据库角色的问题

	刚刚从这里学习出来(以下加入了自己的一些看法,希望让大家更容易明白)
	[SQL权限的实训项目](https://blog.csdn.net/qq_41464123/article/details/104065028)

我用的是SQL server2008

首先用sa(系统管理员,System administration)的登录名登录

  1. 自己创建3个注册用户(),相当于之后可以用自己创建的用户名密码和账号登录
/*
创建3个注册用户
--用户名为@loginame 密码自己定义 我引入的是提前建好的数据库--Test
exec sp_addlogin @loginame = 'yh',@passwd = '123456',@defdb = 'Test'
exec sp_addlogin @loginame = 'lsl',@passwd = '123456',@defdb = 'Test'
exec sp_addlogin @loginame = 'sjk',@passwd = '123456',@defdb = 'Test'
*/

  • 所以你应该尝试登录一下
  • 我这里用的是另外一个登录名,也是刚刚创建的 (效果一样) ,
  • 这里会提示登录不了 主要是因为还没有打开“Test”这个数据库的权限(如果还是不懂这个登录不了的意思后面会有总结)
    这里
  • 再创建一个管理员用户(即将自己上一步注册好的任意一个用户加入到sysadmin服务器角色中去)

----用创建好的管理员账户登录时发现还不能继续登录,因为这个管理员用户下面没有数据库用户(同样,不懂后面会有总结)

/*建立一个管理员的登入用户,就是将注册好的一个用户加入sysadmin服务器角色中
exec sp_addsrvrolemember @loginame = 'yh',@rolename = 'sysadmin'*/

在这里插入图片描述
3.所以接下来创建数据库用户和数据库角色

  • 只有创建了数据库用户,你第一步注册的用户登录名才可以用,你才可以用创建的用户名登录
  • 这个创建数据库用户时,名字也只能选择你之前创建的登录名 否则会报错
/*建立只读数据库角色
exec sp_addrole @rolename = 'database1',@ownername = 'db_datareader'
exec sp_addrole @rolename = 'database2',@ownername = 'db_datareader'*/
/*创建数据库用户
create user yjw
create user lsl*/
  • – 说明一下——db_datareader 为只读属性(系统自带,以下属性都是系统定义好的)
    在这里插入图片描述
    4.建立完数据库用户和角色后 则需要将数据库角色添加到数据库用户中
/*将数据库角色添加至数据库用户中
exec sp_addrolemember @rolename = 'database1',@membername = 'yjw'
exec sp_addrolemember @rolename = 'database1',@membername = 'lsl'*/

  • 这样就可以用这个“激活”的登录名登录
  • 相应的,这个“激活”的用户将会获得你前面给他的权限——db_datareader(只读权限)
    5.查看赋予的权限
/*查看数据库角色database1的用户列表
exec sp_helprolemember @rolename = 'database1'*/

  • 查看数据库角色database1所添加的数据库用户及该数据库用户所获得的权限

6.更改该用户的权限

/*授予yjw用户对 test01表的查询增删改和转授 权限
grant select,update,insert,delete on test01 to yjw with grant option*/

总结一下(个人看法)

  1. 创建用户名设密码时只是单纯的创建了一个名字(一个入口),但这个名字并没有什么用,里面是空的,所以登录不了,也正因如此才需要创建一个数据库用户
  2. 将自己创建的用户名设为系统管理员,可以进行一些sa相似的操作(问题不大 ,可以在以后工程中使用,毕竟不能总用sa登录,自己创建一个挺好的)
  3. 创建数据库用户相当于“激活”了之前创建的用户,可以登录进去,并且这个用户具有一定的权限(取决于你给这个用户添加的数据库角色的权限),数据库角色在我看来就是一个属性而已,为给之后数据库用户一定权限
  • 如果你将一个数据库角色给了一个读的权限 然后将它添加到一个用户上,那么即便该用户执行简单的insert时也会报错(因为它没有这个权限),这就需要上面写的第六点(更改权限)的操作了

PS:

以上是我的第一篇博客,做的不好请指正 我也需要改进 如果有疑问请留言 谢谢嘞
——要想拥有你从未有过的东西,就必须做你从未做过的事情

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值