实验9数据库安全性与并发控制一实验目的1.理解身份验证模式;2.理解登录账号、服务器角色、数据库角色和数据库用户,以及之间的关系;3.能够创建登录账号,创建数据库角色;4.能够为数据库角色和数据库用户分配权限;5.理解事务的ACID特性;6.理解commit和rollback的含义;7.理解并发控制与锁;二实验内容(一)数据库的安全性:身份验证模式:1.设置数据库服务器的验证方式为windows;2.在查询分析器中分别选择windows和Sqlserver身份验证两种方式登录服务器;3.设置数据库服务器的验证方式为sqlserver和windows;4.在查询分析器中分别选择windows和Sqlserver身份验证两种方式登录服务器;登录账号、数据库用户和权限:1.查看sa的服务器角色和数据库访问权限;2.查看各数据库的用户;3.理解sa和dbo之间的关系;4.新建登录账号temp,密码为temp;5.在查询分析器中采用temp用户登录服务器,查看登录效果;6.在temp用户的“数据库访问”选项中添加studentxk数据库;7.再次在查询分析器中采用temp用户登录服务器,查看登录效果;8.执行语句“select*fromstudent”;9.在企业管理器中打开studentxk数据库的用户,选中temp用户,为其分配对于student表的select权限;10.再次执行语句“select*fromstudent”,查看效果;11.执行“select*fromcourse”,查看效果;角色:1.在企业管理器中打开studentxk数据库的角色,新建temprole角色,并为其添加数据库用户temp;2.为temprole角色分配对于course表的select权限;3.执行“select*fromcourse”,查看效果;4.在企业管理器中打开studentxk数据库的角色,新建temprole2角色,并为其添加数据库用户temp;5.为temprole角色分配对于course表的select的拒绝权限;6.执行“select*fromcourse”,查看效果;7.查看temp用户对应的角色,理解一个用户同时拥有不同角色的叠加效果;(二)并发控制--事务Commit与rollback1.首先运行studentxk..sql,恢复数据库;2.删除选课表--xk表中的所有数据;a)Deletefromxkb)go3.copy如下语句到查询分析器中,一并执行;begintransactionTranStartinsertintoxk(sno,cno,grade)values('95001','1',92)savetransactionFirstPointinsertintoxk(sno,cno,grade)values('95001','2',85)rollbacktransactionFirstPointinsertintoxk(sno,cno,grade)values('95001','3',88)savetranSecondPointinsertintoxk(sno,cno,grade)values('95002','2',90)rollbacktransactionSecondPointinsertintoxk(sno,cno,grade)values('95002','3',80)committransactionTranStart4.查看xk表,看有几条记录。5.理解rollback和commit的含义;并发控制与锁1.从开始菜单打开sqlserver的事件探查器,新建一个跟踪;2.为跟踪添加锁里面的deadlock事件;3.打开查询分析器,输入下面代码,以后称为代码1:begintransactionTranStartupdatexksetgrade=85waitfordelay'000:00:005'updatestudentsetsdept='Ma'committransactionTranStart4.代码1成功执行,体会代码1的含义5.打开查询分析器,输入下面代码,以后称为代码2:begintransactionTranStartupdatestudentsetsdept='IS'waitfordelay'000:00:005'updatexksetgrade=80committransactionTranStart6.代码2成功执行,体会代码2的含义;7.开两个查询分析器,一个输入代码1,一个输入代码2;8.执行代码1,代码1未执行完时立刻执行代码2;9.有一个会报错,为什么报错?10.查看事件探查器。三实验收获与体会