安全与权限
安全与权限
10.1创建登陆角色
10.1.1创建操作系统用户
--创建windows登录帐号
create login [计算机名\用户名]
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。from windows
with default_database=用户数据库
--添加为db_owner成员
Use 用户数据库
go
exec sp_addrolemember 'db_owner', [计算机名\用户名]
2.创建数据库用户
create login peterlogin
with password='123456'
use test
go
create user peteruser
for login peterlogin
修改数据库用户
删除数据库用户
Drop user 用户名
3.服务器角色管理
利用系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色中,使其成为固定服务器角色的成员。
exec sp_addsrvrolemember ‘login’,'role'
利用sp_dropsrvrolemember系统存储过程可从固定服务器角色中删除SQL Server 登录账号或Windows NT用户或组。
EXEC sp_dropsrvrolemember ‘login’,'role'
4.数据库角色
使用系统存储过程浏览固定的数据库角色 EXEC SP_HELPdbfixedrole go
- 在当前计算机中增加一个用户zhang和cheng,密码为secret。使此用户通过winows 身份验证登录SQL Server服务器,登录名分别为zhang和cheng;
create login [814a9f854a6a4cc\zhang]
from windows
create login [814a9f854a6a4cc\cheng]
from windows
- 新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3,登录密码为secret,默认登录数据库为‘学生课程数据库’;
create login stu1
with password='secret',
default_database=学生课程数据库
create login stu2
with password='secret',
default_database=学生课程数据库
create login stu3
with password='secret',
default_database=学生课程数据库
- 将帐号zhang添加为‘学生课程数据库’的用户,用户名为zhang;
Use学生课程数据库
go
exec sp_addrolemember 'db_owner', [814a9f854a6a4cc\zhang]
或者
use 学生课程数据库
go
create user zhang
for login [814a9f854a6a4cc\zhang]
- 在学生课程数据库中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3;
use 学生课程数据库
go
create user stu1
for login stu1
create user stu2
for login stu2
create user stu3
for login stu3
- 给数据库用户zhang赋予查询STUDENT表的权限;
grant select
on dbo.student
to zhang
- 给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;
grant insert,update,delete
- on dbo.sc
to stu1
- 给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;
grant select,insert,update,delete
on student
to stu2 ,stu3
WITH GRANT OPTION
grant select,insert,update,delete
on dbo.course
to stu2 ,stu3
WITH GRANT OPTION
grant select,
on table dbo.sc
to stu2 ,stu3
WITH GRANT OPTION
- 收回数据库用户stu2对student表和course表的删除操作的权限;
revoke delete
on table dbo.student
from stu2
revoke delete
on table dbo.course
from stu2
- 若一个小组共5个成员,他们对学生课程数据库具有相同的操作权限,具体权限如下:
1) 对于student、course表只能进行数据查询;
2) 只能对student表中sname进行更改;
3) 对于sc表只能进行修改、删除或插入;
如何设置这个小组,并赋予他们权限
Use 学生课程数据库
create role xiaozu
1)grant select,
on table dbo.student,dbo.course
to xiaozu
2) grant update(sname),
on table dbo.student
to xiaozu
3) grant update,delete,insert
on table dbo.sc
to xiaozu
exec sp_addrolemember 'xiaozu', 'stu1'
exec sp_addrolemember 'xiaozu', 'stu2'
exec sp_addrolemember 'xiaozu', 'stu3'
exec sp_addrolemember 'xiaozu', 'stu4'
exec sp_addrolemember 'xiaozu', 'stu5'
10. 将登录帐号zhang、stu1、stu2和stu3加入到服务器角色sysadmin中;考虑并回答,它们将有哪些变化?
EXEC sp_addsrvrolemember ' zhang ', 'sysadmin'
EXEC sp_addsrvrolemember ' stu1 ', 'sysadmin'
EXEC sp_addsrvrolemember ' stu2', 'sysadmin'
EXEC sp_addsrvrolemember ' stu3 ', 'sysadmin'
11. 将登录帐号cheng同时拥有服务器角色serveradmin 和 securityadmin的权限;
EXEC sp_addsrvrolemember ' cheng ', 'serveradmin'
EXEC sp_addsrvrolemember 'cheng ', 'securityadmin'
12. 删除服务器角色sysadmin的成员stu2和stu3;
EXEC sp_dropsrvrolemember 'stu1', 'sysadmin'
EXEC sp_dropsrvrolemember 'stu2', 'sysadmin'
