数据库第四部分.doc
《数据库第四部分.doc》由会员分享,可在线阅读,更多相关《数据库第四部分.doc(22页珍藏版)》请在冰豆网上搜索。
实验报告
课程名称数据库技术实践
实验项目安全管理、备份和恢复数据库
实验仪器SQLServer2008
系别____计算机科学与技术系_
专业____计算机科学与技术____
班级/学号xxxxxxxxxxxxxxxxx
学生姓名______xxxxxxxxxxxxxx__
实验日期___2012.5.7_____
成绩_______________________
指导教师___梁琦______________
一.内容说明
创建登录帐户、数据库用户、角色
对数据库用户、角色进行授权
数据库完整备份、差异备份、日志备份及还原数据库
二.安全管理
利用第3、4章建立的students数据库和其中的Student、Course、SC表,并利用SSMS工具完成下列操作。
1.建立SQLServer身份验证模式的登录账户:
log1、log2和log3。
2.用log1新建一个数据库引擎查询,这时在“可用数据库”下拉列表框中能否选中students数据库?
为什么?
log1不具有访问students数据库的权限。
3.将log1、log2和log3映射为students数据库中的用户,用户名同登录名。
4.在log1建立的数据库引擎查询中,在“可用数据库”下拉列表框中选中students数据库,这次能否成功?
为什么?
log1具有了访问students数据库的权限。
5.在log1建立的数据库引擎查询中,执行下述语句,能否成功?
为什么?
SELECT*FROMCourse
log1不具有students数据库的查询权限。
6.授予log1具有Course表的查询权限,授予log2具有Course表的插入权限。
7.用log2建立一个数据库引擎查询,然后执行下述两条语句,能否成功?
为什么?
INSERTINTOCourseVALUES('C101','Java',2,3)
INSERTINTOCourseVALUES('C102','操作系统',4,4)
已授予log2Course表的插入权限
再执行下述语句,能否成功?
为什么?
SELECT*FROMCourse
未授予log2Course表的选择权限
8.在log1建立的数据库引擎查询中,再次下述执行语句:
SELECT*FROMCourse
这次能否成功?
为什么?
已授予log1Course表的选择权限
让log1执行下述语句,能否成功?
为什么?
INSERTINTOCourseVALUES('C103','软件工程',4,6)
未授予log1Course表的插入权限
9.在students数据库中建立用户角色:
Role1,并将log1、log2添加到此角色中。
10.授予Role1具有Course表的插入、删除和查询权限。
11.在log1建立的数据库引擎查询中,再次执行下述语句,能否成功?
为什么?
INSERTINTOCourseVALUES('C103','软件工程',4,6)
Role1已被授予Course表的插入权限,log1又包含在Role1中
12.在log2建立的数据库引擎查询中,再次执行下述语句,能否成功?
为什么?
SELECT*FROMCourse
Role1已被授予Course表的选择权限,log2又包含在Role1中
13.用log3建立一个数据库引擎查询,并执行下述语句,能否成功?
为什么?
SELECT*FROMCourse
未授予log3Course表的选择权限
14.将log3添加到db_datareader角色中,并在log3建立的数据库引擎查询中再次执行下述语句,能否成功?
为什么?
SELECT*FROMCourse
log3所在的角色db_datareader被授予选择权限
15.在log3建立的数据库引擎查询中,执行下述语句,能否成功?
为什么?
INSERTINTOCourseVALUES('C104','C语言',3,1)
log3所在的角色db_datareader未被授予插入权限
16.在students数据库中,授予public角色具有Course表的查询和插入权限。
17.在log3建立的数据库引擎查询中,再次执行下述语句,能否成功?
为什么?
INSERTINTOCourseVALUES('C104','C语言',3,1)
log3所在的角色public被授予Course表的插入权限
三.备份和恢复数据库
1.按顺序完成如下操作:
(1)创建永久备份设备:
backup1,backup2。
(2)将students数据库完整备份到backup1上。
(3)在Student表中插入一行新的记录,然后将students数据库差异备份到backup2上。
insertintostudentvalues('','李勇','男','1990-05-06','计算机系')
(4)再将新插入的记录删除。
deletefromstudent
(5)利用所做的备份恢复students数据库。
恢复完成后,在Student表中有新插入的记录吗?
为什么?
2.按顺序完成如下操作:
(1)将students数据库的恢复模式设置为“完整”。
(2)对students数据库进行一次完整备份,以覆盖的方式备份到backup1上。
(3)删除SC表。
droptableSC
(4)对students数据库进行一次日志备份,并以追加的方式备份到backup1上。
(5)利用所做的全部备份恢复students数据库,恢复完成后,SC是否恢复出来了?
未恢复SC表
(6)再次恢复students数据库,这次只利用所做的完整备份进行恢复,恢复完成后,SC表是否恢复出来了?
为什么?
恢复了SC表,
3.按顺序完成如下操作:
(1)对students数据库进行一次完整备份,以覆盖的方式备份到backup2上。
(2)删除SC表。
droptableSC
(3)对students数据库进行一次差异备份,以追加的方式备份到backup2上。
(4)删除students数据库。
(5)利用backup2设备对students数据库进行的全部备份恢复students数据库,恢复完成之后,查看students数据库中是否有SC表?
为什么?
未恢复SC表,因为做差异备份时SC表已被删除。
(6)再次删除students数据库
(7)利用backup2设备对students数据库进行的完整备份恢复students数据库,恢复完成之后,查看students数据库中是否有SC表?
为什么?
恢复了SC表,因为数据库的还原点在SC表删除之前。
四.实验总结
1.在使用log1登录时,由于默认的服务器认证方式是Windows身份验证,而log1是SQLServer身份验证模式的登录账户,需要改为SQLSerer和Windows身份验证模式.修改后重新启动服务器.
2.如果希望还原到中间的某个备份状态,则可去掉下边的差异备份和日志备份前的复选框,然后单击左边”选择页”中的”选页”页,在此窗口中选中”覆盖现有数据库”复选框,然后单击”确定”按钮.3
3.备份数据库是按一定的顺序进行的,恢复数据库时也有一定的顺序关系;从最后一次还原备份后创建的第一个事务日志备份开始,按日志备份的先后顺序还原所有的日志备份。
由于日志备份记录的是自上次备份之后新记录的日志部分,因此,必须按顺序还原自最近的完整备份或差异备份之后所进行的全部日志备份。
4.进行用户的创建时,需要注意对用户权限的划分。
不同权限的用户具有不同的功能。
如果两个用户间需要共享权限,需要将用户添加到一个角色当中;进行数据库备份和还原时需注意当前还原的数据库不能在使用中。
框架三层,局部为二层钢构。
本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。