数据库的完整性和安全性实验报告.doc_第1页
数据库的完整性和安全性实验报告.doc_第2页
数据库的完整性和安全性实验报告.doc_第3页
数据库的完整性和安全性实验报告.doc_第4页
数据库的完整性和安全性实验报告.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息工程学院实验报告成 绩:指导老师(签名):课程名称:数据库原理 实验项目名称:数据库的完整性和安全性 一、实 验 目 的: (1)掌握数据库约束的概念; (2)熟悉SQL SERVER 的完整性约束技术。 (3)了解SQL SERVER 的违反完整性处理措施。 (4)了解登录账户的管理理念与具体方法。(5)了解数据库用户的管理的要则。(6)了解用户权限管理的内涵与方法。二、实 验 设 备 与 器 件Win7 +Sql server 2008三、实 验 内 容 与 步 骤 (一)测试完整性运行附录中的SQL语句,理解SQL语句中包含的完整性定义。然后执行下面的SQL语句,看是否能正常运行,若无法执行,请说明原因。1.对dept表进行数据增删改,并检查完整性规则Dept已存在的完整性规则如下:dnoCHAR(2) PRIMARY KEYdnameVARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept VALUES(D1,计科系);-正常插入INSERT INTO dept VALUES(D2,电信系);-正常插入INSERT INTO dept VALUES(NULL,机械系); -违反dno主键(NOT NULL)规则INSERT INTO dept VALUES(D2,机械系); -违反dno主键(UNIQUE)INSERT INTO dept VALUES(D3,NULL); -违反dname的NOT NULL规则INSERT INTO dept VALUES(D3,计科系); -违反dname的UNIQUE规则INSERT INTO dept VALUES(D3,机械系);-正常插入(2)删除数据DELETE FROM dept WHERE dno=D3;-正常删除(3)修改数据UPDATE dept SET dname=计算机科学系 WHERE dno=D1;-正常修改UPDATE dept SET dname=电信系 WHERE dno=D1; -违反dname的UNIQUE规则UPDATE dept SET dname=NULL WHERE dno=D1; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:snoCHAR(2)PRIMARY KEYsnameVARCHAR(20)NOT NULL,ssexCHAR(2)NOT NULL, CHECK(ssex in(男,女)sageINTNOT NULL,dnoCHAR(2)NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student VALUES(S1,张刚,男,20,D1);-正常插入INSERT INTO student VALUES(S2,李梅,女,21,D2);-正常插入INSERT INTO student VALUES(S2,吴敏,男,20,D1); -正常插入INSERT INTO student VALUES(NULL,吴敏,男,20,D1); -违反sno 的主键(NOT NULL)规则INSERT INTO student VALUES(S3,吴敏,男,NULL,D1); 违反sage 的主键(NOT NULL)规则INSERT INTO student VALUES(S3,吴敏,M,20,D1); 违反ssex 的CHECK规则INSERT INTO student VALUES(S3,吴敏,男,20,D3); -正常插入INSERT INTO student VALUES(S3,吴敏,男,20,D1);-正常插入(2)删除数据DELETE FROM student WHERE sno=S3; -正常删除(3)修改数据UPDATE student SET sname=赵强,dno=D2 WHERE sno=S1-正常修改UPDATE student SET ssex=F WHERE sno=S1; -违反ssex的CHECK 规则 UPDATE student SET sno=S2 WHERE sno=S1; -违反sno的主键(UNIQUE)规则UPDATE student SET dno=D3 WHERE sno=S1; 违反dno 的外键规则UPDATE dept SET dno=D3 WHERE dno=D1;-检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno=D2;-检查dno的外键ON DELETE规则,观察运行后效果 (二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。CREATE RULE rule_sage as sage between 1 and 100;Sp_bindrule rule_sage,student.sage;(2)在查询分析器中,利用命令(CREATE RULE),创建一个关于学分(credit)约束的规则,将“credit”列的值约束在18之间的整数;然后将所创建的规则绑定到“credit”列(提示:用命令Sp_bindrule)。CREATE RULE rule_credit as credit between 1 and 8;Sp_bindrule rule_credit,course.credit;(3)在企业管理器中,创建一个关于成绩(grade)约束的规则,将“grade”列的值约束在0100以内;然后将所创建的规则绑定到“grade”列。CREATE RULE rule_grade as grade between 1 and 100;Sp_bindrule rule_grade,study.grade;(三)使用触发器实现数据完整性(选做)(1)在查询分析器中,输入以下CREATE TRIGGER语句,创建以下触发器:为student表创建一个INSERT触发器,当插入的新行中年龄的值不是0180时,就激活该触发器,撤销该插入操作,并使用RAISERROR语句返回一个错误信息。(2)在查询分析器中,执行INSERT语句为student表添加一年龄为220的学生,此时触发器是否执行?分析原因。(四)测试数据库安全性设置身份验证模式:右键服务器实例,选择属性,在Security(安全性)项中,将服务器身份验证设置为SQL Server和Windows身份验证模式,确定。根据提示重新启动sql服务。然后执行下面的语句启用sa用户。 sp_password old = old_password , new = new_password , loginame = login EXEC sp_password null, db123456, sa ALTER LOGIN sa ENABLE1.建立登录、授予登录的服务器角色。(1)建立和删除登录打开企业管理器和查询分析器,以超级用户sa连接SQL Server服务器,建立SQL Server登录,登录名为loginsql, 并设置口令为123456 。sp_addlogin loginsql,123456另外打开SQL Server Management Studio,以loginsql登录连接服务器,测试服务器权限。试运行CREATE DATABASE test,能否成功?(2) 以sa登陆查询分析器,授予loginsql登录的服务器角色dbcreator,sp_addsrvrolemember loginsql,dbcreator然后以loginsql登录查询分析器,并运行CREATE DATABASE test,能否成功?2.创建用户、授予用户的权限。(1)以sa登陆查询分析器,建立数据库。CREATE DATABASE dbstudentgoUSE dbstudentgoCREATE TABLE tbstudent(snoint,snamevarchar(10);以loginsql登录查询分析器,测试能否使用数据库?(2) 以sa登陆查询分析器,创建用户,授予用户的权限sp_adduser loginsql,usera以loginsql登录另一个查询分析器,进入数据库dbstudent(usera用户),测试权限。可以使用数据库dbstudentsa授予用户语句权限GRANT CREATE TABLE TO usera授予用户的对象权限GRANT SELECT ON tbstudent TO useraGRANT INSERT ON tbstudent TO usera再次以loginsql登录进入数据库dbstudent(usera用户),测试被授予权限。3.创建数据库角色,授予数据库角色的权限。(1) sa进入数据库,创建数据库角色USE dbstudentgosp_addrole rolea(2)授予数据库角色的权限GRANT CREATE TABLE TO roleaGRANT SELECT,INSERT,delete ON tbstudent TO rolea(3)授予用户的数据库角色sp_addrolemember rolea,usera,测试loginsql登录是否具有update权限insert into tbstudent values(103,jake)update tbstudent set sname=tom where sno=103不具有update权限以sa登录运行语句sp_addrolemember db_datawriter,usera ,再次测验loginsql的update权限。4. 回收数据库角色、用户、登录的权限,删除数据库角色、用户、登录。回收用户的数据库角色sp_droprolemember rolea,userasp_droprolemember db_datawriter,usera回收数据角色权限REVOKE CREATE TABLE FROM roleaREVOKE SELECT,INSERT ON tbstudent FROM rolea删除数据库角色sp_droprole rolea回收用户的对象权限REVOKE SELECT ON tbstudent FROM useraREVOKE INSERT ON

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论