实验四SQL SERVER安全性
一、实验目的
掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。
二、实验内容
1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。
1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。
create login T with password='123456';
create login M with password='123456';
create login J with password='123456';
2.分别为三个登录名在“Project”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“Project”数据库。
use Project
go
create user Tom for login T
create user Mary for login M
create user John for login J
3.授予用户John创建表和视图的权限。
grant alter on schema::dbo to John
grant create table,create view
to John
4.完成以下授权:
(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。
grant insert
on S
to Tom
with grant option
use Project
insert into S(sno,sname,city)
values ('S9','国安','北京')
(2)用户Mary对S,P,J三个表有SELECT和INSERT权力grant select,insert
on S
to Mary
grant select,insert
on P
to Mary
grant select,insert
on J
to Mary
use Project
insert into S(sno,sname,city)
values ('S10','华安','北京')
insert into P(pno,pname,pweight)
values ('P10','螺丝刀',12)
insert into J(jno,jname,city)
values ('J20','项目','北京')
select*from S
select*from P
select*from J
(3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDATE权力。
()用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDATE权力。
grant delete,update(qty)
on SPJ
to Tom
update SPJ
set qty=qty+50
where Sno='s5'
delete from SPJ
where sno='s5'and pno='p6'and jno='j4'
(4)把对用户Tom授予的所有权力收回revoke delete,update(qty)
on SPJ
from Tom
revoke insert
on S
from Tom cascade
(5)对用户Mary增加SPJ表的SELECT权力。
()对用户Mary增加SPJ表的SELECT权力。
grant select
on SPJ
to Mary
select*from SPJ where sno='s1'
(6)拒绝Mary对表P的INSERT权限。
()拒绝Mary对表P的INSERT权限。
deny insert
on P
to Mary
insert into P(pno,pname,pweight)
values ('P11','螺丝刀',12)
5.在student数据库中创建角色STUDBA,将查询和更新SC表的权限授予角色STUDBA。
5.在student数据库中创建角色STUDBA,将查询和更新SC表的权限授予角色STUDBA。
use Student
go
create role STUDBA
grant select,update
on SC
to STUDBA
use Student
go
create user Tom for login T
exec sp_addrolemember STUDBA,Tom
use Student
select*from SC
update SC
set Grade=Grade+5
where Sno='101101'
6.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,在student数据库中为登录名映射数据库用户,将数据库用户加入STUDBA角色中。
然后用对方为自己创建的登录名和对方的数据库服务器建立连接,对对方的数据库进行操作,验证所授予的权限。
6.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,在student数据库中为登录名映射数据库用户,将数据库用户加入STUDBA角色中。
然后用对方为自己创建的登录
名和对方的数据库服务器建立连接,对对方的数据库进行操作,验证所授予的权限。
create login LIU with password='123456'
use student
create user liu for login LIU
EXEC SP_ADDROLEMEMBER STUDBA,'liu';
三、实验总结
通过这次实验,对于SQLServer的安全机制有了深刻的理解,实验过程中遇到的困难,在查
阅资料后都一一解决,收获非常大。
能够熟练的掌握SQLServer的授权机制。