版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院实验报告实现成果:指导教师(签名):课程名称:数据库原理实验室项目名称:数据库的完整性和安全性一、实际:(1)掌握数据库约束的概念。(2)熟悉SQL SERVER的完整性约束技术。(3)了解如何处理SQL SERVER的完整性冲突。(4)了解注册账户的管理概念和具体方法。(5)了解数据库用户管理。(6)了解用户权限管理的含义和方法。二、实际检查准备和设备部件Win7 Sql server 2008三、实际测试内部容量和阶段(a)测试完整性运行附录中的SQL语句以了解SQL语句中包含的完整性定义。然后,运行下面的SQL语句以确定其是否正确执行,如果未执行,请说明原因。1.删除dept
2、表中的数据并检查完整性规则Dept已存在的完整性规则如下:DnoCHAR(2)主密钥DnameVARCHAR(20)非空,UNIQUE(1)数据增长INSERT INTO dept VALUES(D1,计算);-正常插入INSERT INTO dept VALUES(D2,通信部);-正常插入INSERT INTO dept VALUES(空,机械系统);-违反“非空值”(NOT NULL)规则INSERT INTO dept VALUES(D2,机械系统);- dno主键违规(UNIQUE)INSERT INTO dept VALUES(D3,空);- dname中的非空规则违规INSERT
3、 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表的数据并检
4、查完整性规则Student已具有以下完整性规则:SnoCHAR(2)主密钥SnameVARCHAR(20)非空,Ssex char (2) not null,check (ssex in(男性,女性)SageINTNOT NULL、Dno char (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,Li mei,女性
5、,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);-正常插入INSE
6、RT INTO student VALUES(S3,吴敏,男性,20,D1);-正常插入(2)数据擦除DELETE FROM student WHERE sno=S3-正常删除(3)修改数据UPDATE student SET sname=Zhao Qiang,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
7、SnO=S1;违反Dno外键规则UPDATE dept SET dno=D3 WHERE dno=D1;-检查dno的外键ON UPDATE规则,并观察运行后的效果DELETE FROM dept WHERE dno=D2-检查dno的外键ON DELETE规则并观察运行后的效果(b)使用规则实施数据完整性(1)查询分析器使用命令创建年龄约束的规则,将“sage”列值限制在0到200之间。然后将创建的规则绑定到sage列(提示:使用sp _ bindingrule命令)。create rule _ sage as sage between 1 and 100;Sp _ bindingrule
8、_ sage,student.sage(2)查询分析器使用命令创建credit (credit)约束条件的规则,将credit列值限制为1到8之间的整数。然后,将创建的规则绑定到credit列(提示:使用sp _ bindingrule命令)。create rule _ credit as credit between 1 and 8;Sp _ bindingrule _ credit、course.credit(3)在“企业管理员”(enterprise administrator)中,创建成绩约束条件的规则,将“分级”(grade)列的值限制在0到100之间。然后,将创建的规则绑定到gra
9、de列。create rule _ gradesa grad between 1 and 100;Sp _ bindingrule _ grade,study.grade(c)使用触发器实施数据完整性(可选)(1)查询分析器输入以下CREATE TRIGGER语句,为student表创建INSERT触发器:如果插入的新行的年龄值不是0-180,则启用此触发器,取消插入操作,然后使用RAISERROR语句返回错误消息。(2)查询分析器发出INSERT语句,为学生表添加年龄为220的学生。此时触发吗?分析原因。(d)数据库安全测试设置身份验证模式右键单击:服务器实例,在“属性”、“安全(安全)”主
10、题中将“服务器身份验证”设置为“SQL Server和Windows身份验证模式”,然后选择“确定”。按照提示重新启动SQL服务。然后发出以下语句以激活sa用户:sp _ password old=old _ password, new= new _ password , loginameEXEC sp_password空,db,saALTER LOGIN sa ENABLE1.设置登录并授予登录权限的服务器角色。(1)创建和删除注册表打开Enterprise manager和query analyzer,以超级用户sa身份连接到SQL Server服务器,设置SQL Server登录,登录名
11、为loginsql,密码为。Sp_addlogin loginsql、还可以打开SQL Server Management Studio,使用loginsql登录连接服务器,以测试服务器权限。请尝试运行CREATE DATABASE test。能成功吗?(2)将loginsql注册的服务器角色dbcreator作为sa登录查询分析器授予Sp _ addsrvrolember loginsql,dbcreator然后使用loginsql登录查询分析器并运行CREATE DATABASE test,是否可以成功?2.建立使用者并授与使用者的权限。(1)使用sa登录查询分析器并构建数据库。CREAT
12、E DATABASE dbstudent高USE dbstudent高CREATE TABLE tbstudent(Snoint、Snamevarchar(10);使用Loginsql登录查询分析器并测试数据库是否可用?(2)以sa身份登录查询分析器,创建用户并授予用户的权限Sp_adduser loginsql、usera使用Loginsql登录到其他查询分析器,然后进入数据库dbstudent(usera用户)测试权限。可以使用数据库dbstudentsa向用户授予语句权限GRANT CREATE TABLE TO usera授予用户的对象权限GRANT SELECT ON tbstude
13、nt TO useraGRANT INSERT ON tbstudent TO usera以loginsql身份重新登录到数据库dbstudent(usera用户)将授予测试权限。3.创建数据库角色,以授予数据库角色的权限。(1) sa进入数据库并创建数据库角色USE dbstudent高Sp_addrole rolea(2)授予数据库角色的权限GRANT CREATE TABLE TO roleaGrant select,insert,delete on TB student to rollea(3)授予用户的数据库角色测试Sp _ addrole memberrollea、usera和lo
14、ginsql登录是否具有update权限Insert into TB student values (103,Jake)update TB student set sname=Tom where SnO=103您没有Update权限以Sa登录方式运行语句sp _ addrole memberdb _ datawriter,usera以再次测试loginsql的update权限。4.收回数据库角色、用户和登录权限,删除数据库角色、用户和登录。回收用户的数据库角色Sp _ droproemember rolea,useraSp _ droproemember db _ datawriter,usera数据角色权限回收REVOKE CREATE TABLE FROM roleaRevoke select,insert on TB student from rollea删除数据库角色Sp_droprole rolea回收用户的对象权限revoke select on TB student from userarevoke insert
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年乡村全科助理医师考试试题与答案
- 2026年福建省福清市高三生物下册期末考试模拟试卷及参考答案
- 2026年河南省辉县市高一化学上册期末考试试卷及参考答案(能力提升)
- 2026年湖南省涟源市高三历史上册期末考试测试卷附参考答案(精练)
- 2026年湖北省石首市高三物理下册期末考试模拟卷(含答案)
- 2026年江苏省常熟市高三生物下册期末考试模拟卷(含答案)
- 2026年山东省青州市高三生物下册期末考试模拟测试卷含答案
- 2026年广东省台山市高三历史上册期末考试试卷附参考答案(A卷)
- 2026年山东省莱阳市高一历史下册期末考试模拟试卷及答案【必刷】
- 2026年辽宁省兴城市高三生物上册期末考试检测卷(含答案)
- 2026“外研社·国才杯”“理解当代中国”外语能力国际传播综合能力赛项真题及答案解析(10月11日上午场次)
- 2026年七年级数学竞赛试题及答案
- 河南2027届高三年级过程性作业评价(青桐鸣)联考数学+答案
- 学堂在线 批判性思维-方法和实践 章节测试答案
- 跳高技术动作要领
- 奖励旅游市场42课件
- 小学生课间游戏课件
- tb-10314-2021《邻近铁路营业线施工安全监测技术规程》内容解析
- 护林员考试试题及答案
- 煤矿20版标准化-瓦斯参数测定管理制度
- 研究生职业规划与求职攻略智慧树知到答案2024年东北林业大学
评论
0/150
提交评论