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

下载本文档

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

文档简介

1、数据库完好性和平安性实验报告信息工程学院实验报告 成 绩:指导教师(签名_):课程名称:数据库原理实验工程名称:数据库的完好性和平安性 一、实 验 目 的: 1掌握数据库约束的概念;2熟悉SQL SERVER 的完好性约束技术。3理解SQL SERVER 的违背完好性处理措施。4理解登录账户的管理理念与详细方法。5理解数据库用户的管理的要那么。6理解用户权限管理的内涵与方法。二、实 验 设 备 与 器 件 7 +Sql server 2022 三、实 验 内 容 与 步 骤 一测试完好性 运行附录中的SQL语句,理解SQL语句中包含的完好性定义。然后执行下面的SQL语句,看是否能正常运行,假设

2、无法执行,请说明原因。1.对dept表进展数据增删改,并检查完好性规那么 Dept已存在的完好性规那么如下:dno CHAR(2) PRIMARY KEY dname VARCHAR(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主键UNIQUEIN

3、SERT 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规那

4、么 UPDATE dept SET dname=NULL WHERE dno=D1; 违背dname的UNIQUE规那么 2.对student表进展数据增删改,并检查完好性规那么 Student已存在完好性规那么如下:sno CHAR(2) PRIMARY KEY sname VARCHAR(20) NOT NULL, sse_ CHAR(2) NOT NULL, CHECK(sse_ in(男,女) sage INT NOT NULL, dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno) ON DELETE CASCADE ON UP

5、DATE 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规那么

6、INSERT INTO student VALUES(S3,吴敏,M,20,D1); 违背sse_ 的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 sse_=F WHERE sn

7、o=S1; -违背sse_的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在查询分析p 器中,利用命令CREATE RU

8、LE,创立一个关于年龄(sage)约束的规那么,将“sage”列的值约束在020_之间;然后将所创立的规那么绑定到“sage”列提示:用命令Sp_bindrule。CREATE RULE rule_sage as sage between 1 and 100; Sp_bindrule rule_sage,student.sage; 2在查询分析p 器中,利用命令CREATE RULE,创立一个关于学分(credit)约束的规那么,将“credit”列的值约束在18之间的整数;然后将所创立的规那么绑定到“credit”列提示:用命令Sp_bindrule。CREATE RULE rule_cre

9、dit 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在查询分析p 器中,输入以下CREATE TRIGGER语句,创立以下触发器:为student表创立

10、一个INSERT触发器,当插入的新行中年龄的值不是0180时,就激活该触发器,撤销该插入操作,并使用RAISERROR语句返回一个错误信息。2在查询分析p 器中,执行INSERT语句为student表添加一年龄为220的学生,此时触发器是否执行?分析p 原因。四测试数据库平安性 设置身份验证形式:右键效劳器实例,选择“属性“,在“Security“(平安性)项中,将“效劳器身份验证“设置为“SQL Server和dows身份验证形式“,确定。根据提示重新启动sql效劳。然后执行下面的语句启用sa用户。sp_password old = old_password , new = new_pass

11、word , loginame = login E_EC sp_password null, db123456, sa ALTER LOGIN sa ENABLE 1.建立登录、授予登录的效劳器角色。(1)建立和删除登录 翻开企业管理器和查询分析p 器,以超级用户sa连接SQL Server效劳器,建立SQL Server登录,登录名为loginsql, 并设置口令为123456 。sp_addlogin loginsql,123456 另外翻开SQL Server Management Studio,以loginsql登录连接效劳器,测试效劳器权限。试运行CREATE DATABASE te

12、st,能否成功? (2) 以sa登陆查询分析p 器,授予loginsql登录的效劳器角色dbcreator, sp_addsrolemember loginsql,dbcreator 然后以loginsql登录查询分析p 器,并运行CREATE DATABASE test,能否成功? 2.创立用户、授予用户的权限。(1)以sa登陆查询分析p 器,建立数据库。CREATE DATABASE dbstudent go USE dbstudent go CREATE TABLE tbstudent( sno int, sname varchar(10) ); 以loginsql登录查询分析p 器,测

13、试能否使用数据库? (2) 以sa登陆查询分析p 器,创立用户,授予用户的权限 sp_adduser loginsql,usera 以loginsql登录另一个查询分析p 器,进入数据库dbstudent(usera用户),测试权限。可以使用数据库dbstudent sa授予用户语句权限 GRANT CREATE TABLE TO usera 授予用户的对象权限 GRANT SELECT ON tbstudent TO usera GRANT INSERT ON tbstudent TO usera 再次以loginsql登录进入数据库dbstudent(usera用户),测试被授予权限。3.

14、创立数据库角色,授予数据库角色的权限。(1) sa进入数据库,创立数据库角色 USE dbstudent go sp_addrole rolea (2)授予数据库角色的权限 GRANT CREATE TABLE TO rolea GRANT SELECT,INSERT,delete ON tbstudent TO rolea (3)授予用户的数据库角色 sp_addrolemember rolea,usera,测试loginsql登录是否具有update权限 insert into tbstudent values(103,jake) update tbstudent set sname=to

15、m where sno=103 不具有update权限 以sa登录运行语句sp_addrolemember db_datawriter,usera ,再次测验loginsql的update权限。4.回收数据库角色、用户、登录的权限,删除数据库角色、用户、登录。回收用户的数据库角色 sp_droprolemember rolea,usera sp_droprolemember db_datawriter,usera 回收数据角色权限 REVOKE CREATE TABLE FROM rolea REVOKE SELECT,INSERT ON tbstudent FROM rolea 删除数据库角色 sp_droprole rolea 回收用户的对象权限 REVOKE SELECT ON tbstudent FROM usera REVOKE INSERT ON tbstudent FR

温馨提示

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

最新文档

评论

0/150

提交评论