北京联合大学应用文理学院
实验报告
专业:信息与计算科学班级:姓名:学号:
一、实验名称
实验3 数据库保护
二、实验目的
1.了解数据库安全性控制、完整性控制、并发控制和数据恢复的基本概念和主要技术
2.掌握SQL Server 2000中的安全性控制、完整性控制和数据恢复机制,会用其实现
相关控制
三、实验时间
四、实验任务(其中带*任务写在实验报告中,其余任务作为平时练习)
1.安全性控制实验
1)查看当前计算机用户信息,创建新用户lily。
使用SQL Server 企业管理器和系
统存储过程(*)将lily设置为登录用户。
用该用户登录计算机,并登录SQL Server。
使用系统存储过程sp_revokelogin和sp_denylogin(*),指出它们之间的区别。
2)使用企业管理器和系统存储过程(*)创建SQL Server登录用户Joe,密码为888,
缺省数据库为pubs。
在SQL Server查询分析器中使用该登录名连接SQL Server。
并使用系统存储过程(*)删除该用户。
3)使用企业管理器或系统存储过程将NT用户lily映射为pubs数据库的用户。
4)在model数据库中添加用户guest,再创建一个新数据库,观察新数据库的用户
情况。
5)使用系统存储过程(*)和企业管理器创建一个数据库角色,其权限设为只允许
查询。
将该角色赋予数据库用户lily(*),用lily连接SQL Server,查看该用户访问数据库的情况。
6)创建tiger登录帐户,并将其加入学生数据库的用户中。
用sa帐户登录,并将
CREATE TABLE权限授予tiger,再以tiger登录,在学生数据库中执行创建表命令和其它命令(*),查看结果。
7)使用企业管理器查看数据库对象所具有的权限。
使用T-SQL命令为不同用户授予
权限(*)。
2.完整性控制实验
1)为“学生学籍数据库”中的每个表建立主键约束。
(*)
2)建立“学生基本信息”表、“课程基本信息”表、“学生成绩”表之间的外键约束
以及“课程基本信息”表和“教师基本信息”表之间的外键约束。
(*)
3)使用CHECK约束实现:(*)
a)约定“教师基本信息”表和“学生基本信息”表的“联系电话”字段值为8
位数字字符。
b)约定“学生成绩”表的“成绩”字段的取值为0到100。
4)为“教师基本信息”表的“电子邮件”字段建立唯一约束。
(*)
5)在表“教师基本信息”上建立触发器,用于在输入或更改电子邮箱时,检查其合
法性。
(*)
6)用规则实现第3)题。
(*)
7)建立“政治面目”默认值为“团员”,将其与“学生基本信息”表绑定,实现默
认约束。
(*)
3.数据库备份和恢复实验
1)用企业管理器备份“学生学籍数据库”,并备份事务日志;进行一些数据修改操
作后,再备份一次事务日志;再进行一些数据修改操作后,最后使用数据库备份和事务日志恢复数据库,查看结果。
2)使用T-SQL命令和系统存储过程完成上题。
(*)
五、实验内容、结果及分析
1.安全性控制实验
1)首先在控制面板中选择用户账户,创建一个名为lily的用户
a使用SQL Server系统存储过程将lily设置为登录用户。
分析:用“lily”可以登录计算机。
b使用系统存储过程sp_revokelogin和sp_denylogin
✧系统存储过程sp_denylogin
分析:开机时,用“lily”可以登录计算机。
登陆查询分析器时,用“Windows身份验证”却无法登陆。
✧系统存储过程sp_revokelogin
分析:开机时,用“lily”可以登录计算机。
登陆查询分析器,用“Windows身份验证”仍可登陆。
2)a使用系统存储过程创建SQL Server登录用户Joe,密码为888,缺省数据库为pubs。
分析:程序运行后,在企业管理器中可以看到建立了登录用户“Joe”。
b使用系统存储过程删除用户“Joe”。
分析:程序运行后,“企业管理器”中的登录用户如上图所示,则用户“Joe”已被删除。
5)a使用系统存储过程创建一个数据库角色,其权限设为只允许查询。
b将该角色赋予数据库用户lily。
6)用sa帐户登录,并将CREATE TABLE权限授予tiger
8)以tiger登录,在学生数据库中执行创建表命令和其它命令,查看结果。
分析:命令运行后,向“学生信息”表中插入新纪录,查询结果如上图所示。
7)使用T-SQL命令为不同用户授予权限。
分析:结果正确。
2、完整性控制实验
1) 为“学生学籍数据库”中的每个表建立主键约束。
✧学生基本信息表中建立主键约束。
分析:添加主键成功。
✧学生成绩表中建立主键约束。
分析:添加主键成功。
✧教师基本信息表中建立主键约束。
分析:添加主键成功。
✧考勤表中建立主键约束。
分析:添加主键成功。
✧课程基本信息表中建立主键约束。
分析:添加主键成功。
2) 建立“学生基本信息”表、“课程基本信息”表、“学生成绩”表之间的外
键约束以及“课程基本信息”表和“教师基本信息”表之间的外键约束。
✧建立“学生基本信息”表、“课程基本信息”表、“学生成绩”表之间的
外键约束。
分析:结果正确。
✧建立“课程基本信息”表和“教师基本信息”表之间的外键约束。
分析:结果正确。
3) 使用CHECK约束实现:
✧约定“教师基本信息”表和“学生基本信息”表的“联系电话”字段值为8位
数字字符。
结果分析:如果输入的联系电话多于8位数字或少于8位数字,则会弹出如下
错误提示,系统不会对数据做任何修改。
如果输入的联系电话等于8位数字,则无错误提示,可正常修改。
✧约定“学生成绩”表的“成绩”字段的取值为0到100。
结果分析:如果在“学生成绩”表“成绩”栏中输入一个1-100以外的数,
则会弹出如下错误提示,系统不会对数据做任何修改。
4) 为“教师基本信息”表的“电子邮件”字段建立唯一约束。
结果分析:如果在“教师基本信息”表“电子邮件”栏中输入相同的电子邮件地址时,则会弹出如下错误提示,系统不会对数据做任何修改。
5) 在表“教师基本信息”上建立触发器,用于在输入或更改电子邮箱时,检查其合法性。
6) 用规则实现第3)题。
分析:结果正确。
7) 建立“政治面目”默认值为“团员”,将其与“学生基本信息”表绑定,实现默认约束。
分析:结果正确。
3.数据库备份和恢复实验
用企业管理器备份“学生学籍数据库”,并备份事务日志;进行一些数据修改操作后,再备份一次事务日志;再进行一些数据修改操作后,最后使用数据库备份和事务日志恢复数据库,查看结果。
(使用T-SQL命令和系统存储过程完成本题)
首先将“企业管理器”中“学生学籍数据库”的故障还原模型改为“完全”,
再执行下列命令。
✧创建备份设备
✧完全备份数据库
✧创建事务日志备份设备
✧完全备份数据库
✧创建事务日志备份设备
✧备份事物日志1
✧备份事物日志2
✧在“学生基本信息”表中插入一条新记录
✧第一次备份事物日志
✧在“学生基本信息”表中插入第2条记录
✧第二次备份事物日志
✧恢复数据库完全备份
✧还原第一次事务日志备份
✧还原第二次事务日志备份
✧查看“学生基本信息”表
六、实验内容、结果及分析。