数据库的完整性和安全性实验报告_第1页
数据库的完整性和安全性实验报告_第2页
数据库的完整性和安全性实验报告_第3页
数据库的完整性和安全性实验报告_第4页
数据库的完整性和安全性实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、成绩:课程名称:数据库原理指导老师(签名):实验项目名称:数据库的完整性和安全性一、实验目的:(1)掌握数据库约束的概念;(2)熟悉SQLSERVER的完整性约束技术。(3)了解SQLSERVER的违反完整性处理措施(4)了解登录账户的管理理念与具体方法。(5)了解数据库用户的管理的要则。(6)了解用户权限管理的内涵与方法。二、实验设备与器件Win7+Sqlserver2008三、实验内容与步骤(一)测试完整性运行附录中的SQL语句,理解SQL语句中包含的完整性定义。然后执行下面的SQL语句,看是否能正常运行,若无法执行,请说明原因。对dept表进行数据增删改,并检查完整性规则Dept已存在的

2、完整性规则如下:dnoCHAR(2)PRIMARYKEYdnameVARCHAR(20)NOTNULL,UNIQUE(1)增加数据INSERTINTOdeptVALUES(D1,计科系);-正常插入行受嶷响INSERTINTOdeptVALUES(D2,电信系);-正常插入INSERTINTOdeptVALUES(NULL,机械系);-违反dno主键(NOTNULL)规贝U不能将值NU11插入列1dr.o1,表mydh.dha.depz.1;列不允许有Null值,IIJSE?.!失败语句已终止-INSERTINTOdeptVALUES(D2,机械系);-违反dno主键(UNIQUE)违反了KZ

3、Y约束1dept_pk1B不能在对象dbo.dept1中插入重复键口语句已终止-INSERTINTOdeptVALUES(D3,NULL);-违反dname的NOTNULL规贝U不能将值NU1工插入列1dn=xe1,表mydh.dho.dep31;列不允许有Null值IlISEPI失败口语句已络止-INSERTINTOdeptVALUES(D3,计科系);-违反dname的UNIQUE规则违反了UHI-UZKZY约束1depz._uk1o不能在对象dbo.depf中插入重复键口语句已终止-INSERTINTOdeptVALUES(D3,机械系);-正常插入删除数据DELETEFROMdeptW

4、HEREdno=D3;正常删除修改数据UPDATEdeptSETdname=计算机科学系WHEREdno=D1;-正常修改UPDATEdeptSETdname=电信系WHEREdno=D1:-违反dname的UNIQUE规则违反了UMIUZKZY约束1dept_LLk1o不能在对象中插入重复键-语句已终止-UPDATEdeptSETdname=NULLWHEREdno=D1;违反dname的UNIQUE规则不能将值NU11插入列1dn=.e,表mydhdbs.Jeps1;列不允许有Null值。UPDATZ失败。畐句已终止对student表进行数据增删改,并检査完整性规则Student已存在完整

5、性规则如下:snoCHAR(2)PRIMARYKEYsnameVARCHAR(20)NOTNULL,ssexCHAR(2)NOTNULL,CHECK(ssexin(男,女)sageINTNOTNULL,dnoCHAR(2)NOTNULL,FOREIGNKEYREFERENCESdept(dno)ONDELETECASCADEONUPDATECASCADE(1)增加数据INSERTINTOstudentVALUES(S1,张刚,男:20,D1);-正常插入INSERTINTOstudentVALUES(S2,李梅,女,21,D2);-正常插入INSERTINTOstudentVALUES(S2,

6、吴敏,男:20,D1);-正常插入INSERTINTOstudentVALUES(NULL,吳敏,男,20,D1);-违反sno的主键(NOTNULL)规则不能将值NUll插入列1r.o1,表mydh.dho.si.uden1;列不允许有Hull值口INSZR.T失败口语句已终止-INSERTINTOstudentVALUES(S3,吴敏,男:NULL,D1);违反sage的主键(NOTNULL)规则不能将值NU11插入列三三,表mydb.dLo.ET.uden7.;列不允许有Null值。INSERT失败;-畐句已终止-INSERTINTOstudentVALUES(S3,吴敏,M,20,D1

7、);违反ssex的CHECK规则INSERT语句与CHECK约束Irstudent_ckIr冲突-该冲突发生于数据库mydh,表Irdh=.studen吾句已终止-INSERTINTOstudentVALUES(S3,吴敏,男:20,D3);-正常插入INSERTINTOstudentVALUES(S3,吴敏,男:20,D1);-正常插入(2)删除数据DELETEFROMstudentWHEREsno=S3;正常删除(3)修改数据UPDATEstudentSETsname=赵强,dno=D2WHEREsno=S1-正常修改UPDATEstudentSETssex=FWHEREsno=S1;违反

8、ssex的CHECK规则o行受彫响UPDATEstudentSETsno=S2WHEREsno=S1;-违反sno的主键(UNIQUE)规贝U行受彫响UPDATEstudentSETdno=D3WHEREsno=S1;违反dno的外键规则o行受彫响UPDATEdeptSETdno=D3WHEREdno=D1;检查dno的外键ONUPDATE规则,观察运行后效果违反了tniZY:烂F约束depz.-pk1.,不能在对象dh2.depz1中插入重复塾语句已络止-DELETEFROMdeptWHEREdno=D2;检查dno的外键ONDELETE规则,观察运行后效果-行受彫响使用规则实现数据完整性(

9、1)在查询分析器中,利用命令(CREATERULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0200之间;然后将所创建的规则绑定到“sage列(提示:用命令Sp_bindrule)CREATERULErule_sageassagebetween1and100;Sp_bindrulerule_sage,student.sage;已将规则鄒定到表的列-(2)在查询分析器中,利用命令(CREATERULE),创建一个关于学分(credit)约束的规则,将“credit”列的值约束在18之间的整数;然后将所创建的规则绑定到“credit列(提示:用命令Sp_bindrule

10、)CREATERULErule_creditascreditbetween1and8;命令已成功完成-Sp_bindrulerule_credit,course.credit;I已将规则绑定到表的列-(3)在企业管理器中,创建一个关于成绩(grade)约束的规则,将grade列的值约束在0T00以内;然后将所创建的规则绑定到grade列。CREATERULErule_gradeasgradebetween1and100;命令已成功完成-Sp_bindrulerule_grade,study.grade;已将规则绑定到表的列-使用触发器实现数据完整性(选做)(1)在查询分析器中,输入以下CREA

11、TETRIGGER语句,创建以下触发器:为student表创建一个INSERT触发器,当插入的新行中年龄的值不是0180时,就激活该触发器,撤销该插入操作,并使用RAISERROR语句返回一个错误信息。(2)在查询分析器中,执行INSERT语句为student表添加一年龄为220的学生,此时触发器是否执行?分析原因。测试数据库安全性设置身份验证模式:右键服务器实例,选择属性,在Security%安全性)项中,将服务器身份验证设置为SQLServer和Windows身份验证模式,确定。根据提示重新启动sql服务。然后执行下面的语句启用sa用户。OWindows身份验证模式址)M:SQLServe

12、r和Windows身份验证模式sp_passwordold=old_password,new=new_password,loginame=loginEXECsp_passwordnull,db123456,saALTERLOGINsaENABLE命令已戚功完成-建立登录、授予登录的服务器角色。(1)建立和删除登录打开企业管理器和查询分析器,以超级用户sa连接SQLServer服务器,建立SQLServer登录,登录名为loginsql,并设置口令为123456。sp_addloginloginsql,123456另外打开SQLServerManagementStudio,以loginsql登录

13、连接服务器,测试服务器权限。试运行CREATEDATABASEtest,能否成功?以sa登陆查询分析器,授予loginsql登录的服务器角色dbcreator,sp_addsrvrolememberloginsql,dbcreator然后以loginsql登录查询分析器,并运行CREATEDATABASEtest,能否成功?创建用户、授予用户的权限。(1)以sa登陆查询分析器,建立数据库CREATEDATABASEdbstudentgoUSEdbstudentgoCREATETABLEtbstudent(snoint,snamevarchar(10);以loginsql登录查询分析器,测试能否

14、使用数据库?(2)以sa登陆查询分析器,创建用户,授予用户的权限sp_adduserloginsql,usera以loginsql登录另一个查询分析器,进入数据库dbstudent(usera用户),测试权限。可以使用数据库dbstudentsa授予用户语句权限GRANTCREATETABLETOusera授予用户的对象权限GRANTSELECTONtbstudentTOuseraGRANTINSERTONtbstudentTOusera再次以loginsql登录进入数据库dbstudent(usera用户),测试被授予权限。创建数据库角色,授予数据库角色的权限。sa进入数据库,创建数据库角色

15、USEdbstudentgosp_addrolerolea授予数据库角色的权限GRANTCREATETABLETOroleaGRANTSELECT,INSERT,deleteONtbstudentTOrolea授予用户的数据库角色sp_addrolememberrolea,usera,测试loginsql登录是否具有update权限insertintotbstudentvalues(103,jake)updatetbstudentsetsname=tomwheresno=103不具有update权限以sa登录运行语句sp_addrolememberdb_datawriter,usera再次测验loginsql的update权限。回收数据库角色、用户、登录的权限,删除数据库角色、用户、登录。回收用户的数据库角色sp_droprolememberrolea,userasp_droprolememberdb_datawriter,usera回收数据角色权限REVOKECREATETABLEFROMroleaREVOKESELECT,INSERTONtbstudentFROMrolea删除数据库角色sp_droprolerolea回收用户的对象权限REVOKESELECTONt

温馨提示

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

评论

0/150

提交评论