《数据库完整性与安全性实验.doc》由会员分享,可在线阅读,更多相关《数据库完整性与安全性实验.doc(14页珍藏版)》请在金锄头文库上搜索。
1、北京邮电大学实验报告课程名称 数据库系统原理实验内容 实验五数据库完整性与安全性实验班级 2012211314 姓名 韩植/吴梦指导老师 卢向群 成绩_2015年 5月 12日实验五 数据库完整性与安全性实验实验目的1. 通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方法,加深对数据完整性的理解。2. 通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法,加深对数据库安全性的理解实验内容完整性实验与要求:1. 分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 设置了学生选课数据库中基表的主外键2. 向学生表插
2、入具有相同学号的数据,验证其实体完整性约束; (1) Enterprise Manager (2)T_SQL3. 向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; (1)Enterprise Manager (2)T_SQL 4. 删除教师表中的所有数据,验证参照完整性约束; (1)Enterprise Manager (2)T_SQL 5. 定义存储过程,完成查询学生表中学号=g9940206的行,并执行。create procedure chouzhu asselect student$.student_id,student$.student_name,course$.c
3、ourse_name,student_course$.credit from student$,course$,student_course$ where student$.student_id =g9940206and student$.student_id=student_course$.student_id and course$.course_id =student_course$.course_id go 定义存储过程chouzhu 执行后得到6. 定义触发器,当向学生表插入一条记录时,将所有学生的学号值加1;并对其进行测试USE 学生选课GO/* Object: Trigger d
4、bo.hhhhhh Script Date: 05/12/2015 17:01:52 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.hhhhhh on dbo.student$ after insert as beginupdate student$ set student_id=substring(student_id,1,1)+cast(substring(student_id,2,7)+1)as varchar(5 0) end安全性实验内容与要求:1. 定义一新的登陆帐号、数据库用户,并授予其访问学生选
5、课数据库的读权限; (1)Enterprise Manager 新建了登陆账号chouzhu 新建数据库用户chouzhu_hi(2) Transact_SQLuse 学生选课 goexec sp_addlogin chouzhu2exec sp_grantdbaccess chouzhu2exec sp_addrolemember db_datareader,chouzhu2Go 成功创建chouzhu2登录名和用户名 2. 分别采用Windows NT/2000验证方式和Windows NT/2000及SQL Server混合验证方式用不同的用户进行登录连接; 俩种验证方式均可登陆连接成功
6、3. 分别用sa用户和新定义的用户访问通信数据库,并对其中的学生表数据进行修改; Sa用户登陆成功,并成功修改了学生表数据Chouzhu用户登陆成功,但无权限修改学生表4. 创建数据库角色,并授予访问通信数据库的读、写权限;(1) Enterprise Manager 新建数据库角色chouzhu6(2) Transact_SQL新建数据库角色chouzhucreate role chouzhugrant select,insert on book$ to chouzhugrant select,insert on class$ to chouzhugrant select,insert on
7、 class_course$ to chouzhugrant select,insert on course$ to chouzhugrant select,insert on department$ to chouzhugrant select,insert on student$ to chouzhugrant select,insert on student_course$ to chouzhugrant select,insert on teacher$ to chouzhugrant select,insert on teacher_course_class$ to chouzhu5. 将角色赋予(1)中定义的用户,建立用户和角色联系;(1)Enterprise Manager(2)Transact_SQLEXEC sp_addrolemember chouzhu, chouzhu_hi建立了用户和角色的联系6. 再次用此用户访问通信数据库,并对其中的学生表数据进行修改。实验总结:通过这次实验对完整性和安全性有了更全面的认识,遇到不明白的问题主要是靠网上查询解决的。设置主键和外键都是比较容易的,但是在设置外键时要注意数据类型的一致性。至于设置一系列的新登录名用户则是更加深入的了解了理论知识的运用。