数据库完整性与安全性实验(仅供参照)

合集下载

数据库安全性和完整性实验【模板范本】

数据库安全性和完整性实验【模板范本】

实验9:数据库安全性实验一、实验目的加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法.二、实验内容1.数据库的安全性实验。

在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理数据操作权限.三、实验原理和步骤1.设置SQL Server的安全认证模式,选择混合模式。

右键服务器属性—安全性:选择SQL Server和Windows身份验证模式.重启服务,生效。

2.账号:sa账号登录3.登录帐号的管理1)将Windows帐号添加到SQL Server 2005中创建操作系统用户-4.数据库用户的管理1)dbo用户;查看banking数据库的dbo用户,查看用户权限。

2)U1用户;创建banking数据库的U1用户,查看用户权限。

5.权限管理1)赋予所创建的U1用户db_datareader角色,查看用户权限2)赋予所创建的U1用户db_datawriter角色,查看用户权限3)赋予所创建的U1用户db_owner角色,查看用户权限4)两种方法赋予所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句5)两种方法赋予所创建的U1用户对banking数据库表branch的select和对branch_name修改的权限,验证并写出sql语句6)把对loan表的update权限授予所创建的U1用户用户,并允许将此权限再授予其他用户,验证并写出sql语句7)两种方法回收所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句8)两种方法回收所有用户对banking数据库表loan的update权限,验证并写出sql语句四、实验报告要求要求写出如下设计报告:1.用Transact—SQL写出实验操作的语句2.实验步骤和实验结果。

数据库实验4 索引、数据完整性与安全性

数据库实验4 索引、数据完整性与安全性

实验四索引、数据完整性与安全性一、实验目的(1) 掌握利用SQL Server Management Studio和SQL语言建立、删除索引的方法;(2) 掌握利用SQL Server Management Studio和SQL语言实现数据完整性的方法;(3) 掌握在SQL Server Management Studio中实现数据安全性管理的方法。

二、实验原理1.索引在关系型数据库中,索引是一种可以加快数据检索的数据库结构。

SQL Server系统中主要有两种类型的索引,即聚集索引、非聚集索引。

(1)聚集索引聚集索引定义了数据在表中存储的物理顺序。

一个表只能定义一个聚集索引。

(2)非聚集索引非聚集索引并不存储表数据本身。

相反,非聚集索引只存储指向表数据的指针,该指针作为索引键的一部分,因此,在一个表中同时可以存在多个非聚集索引。

(3)利用SQL命令建立索引简化语法格式:CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]INDEX index_name ON {table|view}(column|ASC|DESC][,…n])其中:UNIQUE。

可选。

该选项用于通知SQL Server索引中列出的列的值是每行唯一的。

如果试图插入重复的行,则该选项会强制SQL Server返回一个错误信息。

CLUSTERED或NONCLUSTERED。

可选。

如果这两个选项都没有被明确列出,则默认将索引创建为NONCLUSTERED(非聚集索引)。

(4)通过SQL命令删除索引语法格式:DROP INDEX ‘table.index|view.index’[,…n]2.表主键和UNIQUE约束表主键通过表数据中一个列或者多个列组合的数据来唯一标识表中的每一行数据。

即表主键就是用来约束数据表中不能存在相同的两行数据。

在SQL Server系统中,定义表的主键可以在创建表的同时定义,也可以给已有的表添加主键。

数据库原理实验报告-实验三-数据完整性与安全性控制

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。

(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。

非空约束:取消表S中sbirth的勾。

可能需要重建表。

(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。

设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。

唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。

设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。

2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。

实验五 数据库完整性与安全性实验

实验五 数据库完整性与安全性实验

实验五数据库完整性与安全性实验实验内容完整性实验与要求:1分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;该操作在实验2中已完成2向学生表插入具有相同学号的数据,验证其实体完整性约束;insertinto student values('g9940201','wangyu','1','9/1/1998','g99401','1999-9-1','背景');3向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束;insertinto student values('g9940305','wangyu','1','9/1/1998','g99408','1999-9-1','背景');4删除教师表中的所有数据,验证参照完整性约束;deletefrom teacher5创建一个规则,将其绑定到Student表的Sex列上,保证输入的性别值是0或1Createrule value_sex1as@value in('0','1')GoExec sp_bindrule'value_sex1','student.sex'Go6为Student表增加一列,命名为dept,创建一个默认对象,将其绑定到Student表的dept列上,使其默认值为电子院。

Createdefault系默认as'电子院'GoExec sp_bindefault'系默认1','student.dept'Go安全性实验内容与要求:1定义一新的登录帐号、数据库用户,并授予其访问学生选课数据库的读权限;create login aaawith password='123',default_database=shiyancreate user wangyufor login aaawith default_schema=dbo2分别采用Windows NT/2000验证方式和Windows NT/2000及混合验证方式用不同的用户进行登录连接;3分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;insertinto student(student_id,entrance_date)values('g9940215','1999-9-1');4创建数据库角色,并授予访问数据库的读、写权限;sp_addrole'db_read_write1'gograntselecton student to db_read_write1gogrant update on student to db_read_write1gograntinserton student to db_read_write15将角色赋予(1)中定义的用户,建立用户和角色联系;exec sp_addrolemember'db_read_write','wangyu'6再次用此用户访问学生数据库,并对其中的学生表数据进行修改。

数据库的完整性和安全性实验报告

数据库的完整性和安全性实验报告

信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。

(3)了解SQL SERVER 的违反完整性处理措施。

(4)了解登录账户的管理理念与具体方法。

(5)了解数据库用户的管理的要则。

(6)了解用户权限管理的内涵与方法。

二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。

然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。

1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。

实 验 四 数据库完整性与安全性

实 验 四 数据库完整性与安全性

实验四数据库完整性与安全性一.实验目的:理解并掌握利用SQL Server 2000进行完整性和安全性控制的基本操作和命令。

并熟悉触发器的使用。

二.实验属性:设计性。

三.实验仪器设备及器材:装有SQL Server 2000的电脑。

四.实验要求1. 预习SQL Server 2000中触发器的概念和使用方法,以及利用create trigger语句定义触发器的方法。

2. 预习SQL Server 2000中安全性架构,以及创建安全性账户和数据库角色等的方法。

2. 实验前仔细阅读实验指导书,理解实验要求。

3. 实验中要求完成如下工作(其中涉及的表是实验一中建立的表):五.实验内容1.触发器的使用1.1创建一个insert触发器,当在Student表中插入一条新记录时,给出‘你已经插入了一条新记录!!!’的提示信息。

1.2 创建一个insert触发器,当在SC表中插入一条新记录时,Sno和Cno必须是student和Course中存在的学号和课程号,且Grade应该在0----100之间。

1.3 创建一个after触发器,在Student表中删除某学生的记录时,删除其相应的选课记录。

1.4 创建一个instead of 触发器,当在Course表中删除记录时,不允许删除Course 表中的数据。

2. 数据库安全性2.1 在企业管理器中创建数据库用户U1、U2、U3和数据库角色R1、R2、R3,并对其操作权限进行设置。

2.2 使用SQL语言对数据库用户和角色的权限的授予。

(1)把查询Student表的权限授给用户U1:(2)把对Student表和Course表的全部操作权限授予用户U2和U3(3)把对Student表的Insert操作权限授予用户U2,并允许将此权限再授予其它用户。

2.3 使用SQL语言进行数据库对用户和角色权限的收回。

2.3.1把用户U2对Student表的Insert的权限收回。

2.3.2 收回所有用户对表student的查询权限2.3.3 通过角色来实现将一组权限授予一个用户。

实验五 数据库完整性与安全性实验

实验五   数据库完整性与安全性实验

实验五数据库完整性与安全性实验1、实验目的1.通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加深对数据完整性的理解。

2.通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对数据库安全性的理解2、实验环境操作系统:Microsoft Windows 7旗舰版(32位)。

数据库版本:MySQL 6.23、实验内容3.1完整性实验:(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;在create table 时已经定义了各个基表的主键。

因此,首先对每个基表删除主键,再添加主键。

实现实体完整性约束。

如下图。

删除主键:添加主键:sc表中的cno和sno分别是course表和student表的外关键字。

下图为给sc表添加student和course的外键,实现参照完整性约束。

alter table sc add constraint fk_student foreign key(sno) references student(sno);alter table sc add constraint fk_course foreign key(cno) references course(cno);主键和外键均添加成功,输入show create table 命令来查看各基表信息。

(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;向课程表中插入课程号为C01的课程。

向学生表中插入学号为30201的学生。

由上面两个实验来看,分别对student和course表插入具有相同学号和相同课程号的学生信息和课程信息,都显示sql语句错误信息为:Duplicate entry *** for key ‘PRIMARY’。

验证了实体完整性约束。

(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;插入成绩信息是学号为31428(student中存在),课程号为C07(course中不存在)的学生成绩信息。

实验3 数据库的安全性和完整性

实验3 数据库的安全性和完整性

课程实验报告课程名称数据库系统概论班级实验日期姓名学号实验成绩实验名称实验3:数据库的安全性和完整性实验目的及要求1.掌握实体完整性规则的定义方法;2.掌握参照完整性规则的定义方法;3.掌握用户定义完整性的定义方法;4.掌握数据库安全性控制。

实验环境操作系统:Windows DBMS:SQL Server 2005实验内容有三个关系模式:Student(sno varchar(10) 主键,sname varchar(8), ssex varchar(2) 默认为‘男’, sage int 介于20到50之间, sdept varchar(20));Course(cno varchar(5) 主键, cname varchar(20) 唯一, cpno varchar(5), credit int);SC(sno varchar(10) 主键,Student表的外键, cno varchar(5) 主键,Course表的外键, grade int)。

数据库的完整性(1)利用查询分析器创建上述3个基本表。

(2)删除student表的关于sage 20到50的约束数据库的安全性:用GRANT和REVOKE语句完成以下授权定义或存取控制功能:(1)用户王明对Student表和Course表有SELECT权力;(2)用户李勇对Student表和Course表有INSERT和DELETE权力;(3)用户刘星对Student表有SELECT权力,对Student表的sage字段有更新权力;(4)用户张新具有创建表的权力;(5)用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力;(6)回收李勇、张新的权限。

调试过程及实验结果(1)利用查询分析器创建上述3个基本表。

(2)_删除student表的关于sage 20到50的约束(3)用户王明对Student表和Course表有SELECT权力;(4)用户刘星对Student表有SELECT权力,对Student表的sage字段有更新权力;(5)用户张新具有创建表的权力;(6)用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力;(7)回收李勇、张新的权限。

数据库安全性及完整性实验报告

数据库安全性及完整性实验报告

实验报告
课程名称:数据库系统概论
学院:工程学院
专业:
年级:班级:
姓名:学号:
指导教师:
年月日
教务处制
以U1的身份进入查询分析器,进行任意查询。

SELECT* FROM"S-C"."STUDENT"
SELECT* FROM"S-C"."STUDENT"
例4.2 把查询student表和course表的权全部操作限授给用户u2和u3。

SELECT* FROM"S-C"."STUDENT","S-C"."COURSE"
例4.3把对表SC的权限授给所有用户.
以U3的身份进入查询分析器,进行任意查询。

例4.12角色的权限修改。

以system的身份进入查询分析器,增加角色R1对Student表的DELETE权限。

GRANT DELETE
ON TABLE "S-C"."STUDENT"
TO R1;
将这个角色授予U7,使他们具有角色R1所包含的全部权限。

数据库的完整性和安全性上机实验报告

数据库的完整性和安全性上机实验报告



(2)删除student表的关于sage 20到50的约束,调试过程如下图:




(3)用户王明对Student表和Course表有SELECT权力,在创建用户时遇到了点问题,最后在老师的指导下解决了,调试过程如下图:
(4)用户李勇对Student表和Course表有INSERT和DELETE权力,调试过程如下图:
(5)用户刘星对Student表有SELECT权力,对Student表的sage字段有更新权力,调试过程如下图:
(6)用户张新具有创建表的权力,调试过程如下图:
(7)用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力,在赋予周平给其他用户授权的权利时“ALL PRIVILEGES只授予用户 SQL Server 2000 中可授予的权限,而SQL Server 2005却不被授予,最后改用CONTROL实现了该命令,调试过程如下图:
(8)回收李勇、张新的权限,调试过程如下图:。

合肥师范学院 大数据库实验三

合肥师范学院 大数据库实验三

:课程名称:数据库原理院(系):计算机学院专业/年级:2014计算机科学与技术(嵌入式班)2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;insert into classvalues(’0001’,’01csc’,’cs’);2.使用SQL命令创建一学生互助表,要求:包括学生编号、学生、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。

create table studenthelp(sid char(10),sname char(30),shid char(10)unique,foreign key(sid)references students(sid));3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;alter table scdrop FK_SC_STU;alter table scadd constraint fk_sno foreign key (sno) references stu (sno)sex char(1),sage int constraint u2 check(sage<=28), deparment char(20),constraint pk_worker primary key(number))2)插入一条合法记录;insert into workervalues('20161','王丽','n','23','科技部');3)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;insert into workervalues('20162','民','n','30','办公部');4)去除U1约束;alter table workerdrop u1;5)修改约束U2,令sage的值大于等于0;alter table workerdrop u2;alter table workeradd constraint u2 check (sage>=0);6)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;create rule rule_sexas value in ('F','M')goexec sp_bindrule rule_sex,'worker.[sex]';7)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。

数据库原理 实验5 数据库的安全性与完整性

数据库原理 实验5 数据库的安全性与完整性

实验5 数据库的安全性与完整性一、实验目的(1)理解数据库的安全性与完整性概念(2)掌握数据库的安全性控制技术(3)掌握数据库的完整性控制技术二、实验环境Windows XP+SQL Server 2000三、实验内容1.设置安全认证模式方法:服务器组上右键“属性”|“安全性”。

2.创建登录用户(1)利用企业管理器创建登录用户方法:安全性|登录,右键。

【例1】创建4个登录用户U1、U2、U3、U4,创建U1和U2时均选中数据库访问为SP,使他们成为SP数据库的用户,创建U3和U4时不选中任何数据库。

(2)使用T-SQL语句创建登录用户语法为:sp_addlogin 登录名[,登录密码[,默认数据库]]注意:未指定默认数据库时,默认数据库是master。

【例2】创建登录用户,登录名为丁勇,密码为dy,默认数据库为SP。

3.修改登录用户(1)利用企业管理器修改登录用户(2)使用T-SQL语句修改登录用户语法为:sp_password 旧密码,新密码,登录用户名【例3】以sa登录服务器,修改登录用户丁勇的密码。

4.删除登录用户(1)利用企业管理器删除登录用户(2)使用T-SQL语句删除登录用户语法为:sp_droplogin 登录用户名【例4】删除登录用户U4。

注意:若待删除登录用户已是某数据库用户,则需先删除数据库用户,再删除登录用户。

5.创建数据库用户(1)利用企业管理器创建数据库用户(2)使用T-SQL语句创建数据库用户语法为:sp_adduser 登录用户名【例5】创建SP的数据库用户U36.删除数据库用户(1)利用企业管理器删除数据库用户(2)使用T-SQL语句删除数据库用户语法为:sp_dropuser 数据库用户名【例6】删除SP的数据库用户U2。

7.创建数据库角色(1)使用企业管理器创建数据库角色(2)使用T-SQL语句创建数据库角色语法为:sp_addrole 数据库角色名sp_addrolemember 角色名用户sp_droprolemember 角色名用户【例7】为SP数据库创建数据库角色R2,将用户U1添加至R2中,再从R2中删除U1。

实验3 数据库安全性与完整性控制实验-

实验3 数据库安全性与完整性控制实验-

实验3 数据库安全性与完整性控制实验1.实验目的练习安全性授权方法、安全性和完整性查看的操作方法。

2.实验内容【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。

【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。

【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。

【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。

【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。

【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。

【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo 表的create访问权限。

【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo 表的stuno列上的select访问权限。

【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。

【实验3-10】查看表INFORMATION_ER_PRIVILEGES中有关student的信息,查看user表中的内容信息。

【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。

【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。

实验4数据库的安全性、完整性(一)2024

实验4数据库的安全性、完整性(一)2024

实验4数据库的安全性、完整性(一)引言:数据库的安全性和完整性是数据库管理系统中非常重要的两个方面。

安全性指的是确保数据库的数据不会被非授权的人员访问和篡改,而完整性则指的是数据库中的数据应该保持一致性和准确性。

本文将从数据库的访问控制、身份验证、加密、备份与恢复以及错误处理等五个方面详细介绍数据库的安全性和完整性。

正文:1. 数据库的访问控制- 实施用户和角色管理,限制不同用户对数据库资源的访问权限- 设置访问控制策略,对数据库中的敏感数据进行权限限制- 防止恶意用户通过攻击手段绕过访问控制机制2. 身份验证- 强制用户使用强密码,并定期更换密码以提高安全性- 使用双因素身份验证,如组合使用密码和指纹- 实施账号锁定机制,限制用户连续登录失败的次数3. 数据库的加密- 对敏感数据进行加密,并存储加密后的数据,以防止数据泄露- 使用传输层安全协议(TLS/SSL)来加密数据库与应用程序之间的通信- 使用列级加密技术来进一步保护数据库中的敏感数据4. 数据库的备份与恢复- 定期备份数据库,以防止数据丢失- 将备份数据存储在安全的地方,防止被未经授权的人员访问- 定期测试备份数据的恢复能力,确保备份数据的完整性和可用性5. 数据库的错误处理- 实施日志记录机制,记录数据库操作的详细信息,以便追踪和审计- 对异常情况进行及时响应和处理,防止安全漏洞的扩大- 与安全专家进行合作,定期进行安全漏洞扫描和修复工作总结:数据库的安全性和完整性是保障数据库管理系统正常运行和数据安全的重要方面。

通过实施访问控制、身份验证、加密、备份与恢复以及错误处理等措施,可以有效地保护数据库的安全性和完整性,防止非授权的访问和数据篡改,保障数据的一致性和准确性。

因此,合理的数据库安全措施是保障数据库运行的重要保证。

数据库安全性及完整性实验报告

数据库安全性及完整性实验报告

数据库安全性及完整性实验报告
一、实验简介
一般来说,数据库的安全性及完整性是指数据库实际上实施的安全性、有效性、正确性和可靠性的控制。

当下的关注点是能够确保数据的有效性、正确性与可靠性,以及确保数据的安全性与完整性。

除此之外,还必须尽
量减少数据被篡改及窃取的可能性,使得数据向客户端分发及共享时不会
受到攻击。

本文旨在测试数据库的安全性及完整性,以及评估对于数据库
的安全性及完整性的影响。

二、实验目的
实验的目的是测试数据库的安全性及完整性,以及评估对于数据库的
安全性及完整性的影响。

三、实验内容
1、建立测试环境
为了测试数据库的安全性及完整性,首先我们需要建立一个测试环境,该测试环境包括:安装和配置数据库服务器,建立数据库,建立表、字段,插入一些测试数据,建立客户端访问数据库的程序。

2、测试数据库的安全性
在测试阶段,我们需要测试数据库的安全性,这个测试有两个方面:(1)授权:测试用户是否可以正确访问指定的数据库和表,而不受
限制。

(2)身份认证:测试数据库服务器的安全性,检查服务器是否能够正确实施身份认证,保证只有授权用户可以访问数据库。

3、测试数据库的完整性。

实验四数据库 数据控制(安全性和完整性)

实验四数据库 数据控制(安全性和完整性)

数据库原理及应用实验报告实验四数据控制(安全性和完整性)实验报告实验类型__综合设计__实验室_软件实验室一__数据控制(安全性和完整性)1.实验项目的目的和任务:理解SQL Server的用户与权限管理机制,通过企业管理器创建用户,并给定的用户分配权限,并掌握数据库完整性概念,实现实体、参照和自定义约束。

2.程序代码(部分)sp_addlogin 'pei' ,'147' //服务器级别的建立登录名sp_droplogin 'pei' //.删除sp_grantdbaccess 'pei', 'pp' //数据库级别的安全性sp_addrole 'peipp' //SQL Server服务器角色sp_addrolemember 'peipp','pp'grant select on dbo.spt_values to pp with grant option//数据库对象级别的安全性用户权限继承角色的权限grant create table to pprevoke select on dbo.spt_values to pp cascadesp_revokedbaccess 'pp' //删除3运行结果如图所示4实验总结通过具体的上机实践操作,理解SQL Server的用户与权限管理机制。

(1)数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。

(2)用户标识和鉴定、用户存取权限控制、定义视图、数据加密和审计等安全措施。

(3)第一层安全性是服务器级别的安全性,这一级别的安全性建立在控制服务器登录账号和密码的基础上,即必须具有正确的登录账号和密码才能连接到SQL SERVER服务器。

第二层安全性是数据库级别的安全性,用户提供正确的服务器登录账号和密码通过第一层的sql server服务器的安全性检查之后,将接受第二层的安全性检查,即是否具有访问某个数据库的权利。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.实验五数据库完整性与安全性实验
1.1 实验目的
1.通过对完整性规则的定义实现,熟悉了解Mysql中完整性保证的规则和实现方法,加深对
数据完整性的理解。

2.通过对安全性相关内容的定义,熟悉了解Mysql中安全性的内容和实现方法,加深对数据
库安全性的理解
1.2 实验内容
1.2.1 完整性实验
(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;
(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;(4)删除学生表中的所有数据,验证参照完整性约束;
(5)定义存储过程,完成查询某个学生的选课情况,并执行。

(6)定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其进行测试。

(7)用sql完成以上操作。

1.2.2 安全性实验
(1)定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限;
(2)分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;(3)再次用此用户访问学生数据库,并对其中的学生表数据进行修改。

(4)用SQL语句分别完成以上内容。

1.3 实验环境
Window8操作系统
Mysql 8.0版本数据库
Mysql workbench 8.0可视化工具
Mysql命令行编辑器
1.4 实验步骤及结果分析
1.4.1 完整性
1.4.1.1 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束
1.首先因为在之前创建表的时候定义了主键,因此,我们需要先将所有表的主键撤销掉,然
后重新创建主键。

Mysql语句(删除主键):
alter table student drop primary key;
alter table course drop primary key;
alter table sc drop primary key;
2.重新创建主键
Mysql语句(创建主键):
alter table student add primary key(sno);
alter table course add primary key(cno);
alter table sc add primary key(sno,cno);
3.到此,我们已经重新添加了各表的主键,接下来我们为SC表添加外键。

Mysql语句(创建外键):
alter table sc add constraint foreign key(sno) references student(sno);
alter table sc add constraint foreign key(cno) references course(cno);
4.主键和外键都添加完毕,我们观察一下目前各表的结构。

Mysql语句(查看表定义):
show create table student;
show create table course;
show create table sc;
由上面结果可知:我们成功创建了各表的主键,并成功为SC表创建了sno,cno两个外键。

1.4.1.2 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束
1.首先查找一下student表中的学生信息,以便下面添加重复学号的学生
Mysql语言:select * from student;
2.向student表中插入一个重复学号的学生,验证完整性约束。

我选择了30203学号,由上面
的结果可知,该学号已经存在。

Mysql语句(添加一个新的学号为30203的学生):
insert into student valu e(‘30203’,’茹兴康’,’男’,’1997-07-07 00:00:00’,’计算机’,’3174’);
上面结果显示:添加失败,因为sno为student表的主键,不能重复,验证了其完整性约束。

3.同上,我们向course表中添加一个具有相同cno的课程。

Mysql语句:
select *from course;
insert into course value(‘C01’,’数据库’,’50’,’1’,’春’);
上面结果显示:成功验证了完成性约束。

1.4.1.3 向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束
向学生表中添加一条数据,其中课程编号在course中不存在,我选择了C06号。

Mysql语句(向学号为30203的学生选课中添加C06选课):
insert into sc values(‘30203’,’C06’,’100’);
由结果来看:插入失败,因为course的cno是SC的外码,C06在course中不存在,由于参照完整性约束,所以添加失败,验证成功。

1.4.1.4 删除学生表中的所有数据,验证参照完整性约束
删除学生表,验证参照完整性约束。

Mysql语句:drop table student;
由结果来看:由于student中的sno是sc的一个外码,所以不能删除student,成功验证了参照完整性约束。

1.4.1.5 定义存储过程,完成查询某个学生的选课情况,并执行
1.首先定义一个根据学生学号搜索的存储过程。

但是由于‘;’是一个结束标志,因此存储过程定义失败,因为第一个遇到语句的‘;’时候,该语句还没结束导致‘;’后面的语句没有加工
2.解决上面问题,将结束符号更换为其他字符,我替换为了#,使用delimiter语句
Mysql语句:
delimiter #
create procedure search_sc_sno(id char (6))
begin select sno,cno from sc where sno = id;
end#
存储过程定义成功。

3.使用存储过程查看学生选课情况。

Mysql语句(查询学号为30203的学生选课情况):
call search_sc_sno(‘30203’)#。

相关文档
最新文档