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

合集下载

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

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

实验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系统中,定义表的主键可以在创建表的同时定义,也可以给已有的表添加主键。

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

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

实验11数据库的安全性和完整性一、实验目的1. 加深对数据安全性和完整性的理解。

2. 掌握登陆账户的创建,修改,删除等基本操作。

3. 掌握SQL Server 2005中有关用户、角色及操作权限的管理方法。

4. 掌握使用三类完整性约束的方法。

二、相关知识1. SQL Server 2005提供以下四种防线:1)Windows NT操作系统的安全防线Windows NT的网络管理员负责建立用户组,设置帐号并注册,同时决定不同的用户对不同的系统资源的访问级别。

用户只有拥有了一个有效的Windows NT登录帐号,才能对网络资源进行访问。

2)SQL Server 2005的运行安全防线SQL Server 2005通过另外一种帐号设置来创建附加安全层。

SQL Server2005具有标准登录和集成登录两种用户登录方式,用户只有登录成功,才能与SQL Server2005建立一次连接。

3)SQL Server 2005数据库的安全防线SQL Server 2005的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问其数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。

4)SQL Server 2005数据库对象的安全防线SQL Server 2005可以对权限进行管理,SQL的DCL功能保证合法用户即使进了数据库也不能有超越权限的数据操作,即合法用户必须在自己的权限范围内进行数据操作。

SQL Server 2005系统通过Windows认证和SQL Server认证两种安全模式来确认用户身份。

当使用Windows认证模式时,由Windows系统确认用户登录账号或组账号,一旦进入系统就可以直接访问SQL Server 2005系统。

当使用SQL Server认证模式时,必须提供SQL Server的登录账号和密码,经过SQL Server 2005系统的确认才可以访问里面的数据。

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

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

实验五数据库完整性与安全性实验实验内容完整性实验与要求: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)。

数据完整性实验实验报告(3篇)

数据完整性实验实验报告(3篇)

第1篇一、实验目的1. 理解数据完整性的概念及其重要性;2. 掌握数据完整性检查的方法和技巧;3. 培养在实际工作中确保数据完整性的能力。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 实验工具:Navicat Premium三、实验内容1. 数据完整性概念及分类2. 数据完整性检查方法3. 数据完整性维护策略四、实验步骤1. 数据完整性概念及分类(1)数据完整性定义:数据完整性是指数据在存储、传输和处理过程中保持一致性和正确性的能力。

(2)数据完整性分类:1)实体完整性:保证表中每行数据都是唯一的,不允许有重复的记录;2)域完整性:保证表中列的值满足特定的条件,如数据类型、长度、取值范围等;3)参照完整性:保证表与表之间的引用关系,即外键约束;4)用户定义完整性:用户根据实际需求自定义的完整性约束。

2. 数据完整性检查方法(1)实体完整性检查:1)使用SQL语句检查重复记录:SELECT COUNT() FROM 表名 GROUP BY 字段名 HAVING COUNT() > 1;2)使用Navicat Premium工具检查重复记录:1)连接数据库;2)在左侧导航栏选择要检查的表;3)在右键菜单中选择“查询重复记录”。

(2)域完整性检查:1)使用SQL语句检查数据类型:SELECT FROM 表名 WHERE 字段名 IS NULL OR 字段名 NOT IN ('预期数据类型1', '预期数据类型2', ...);2)使用Navicat Premium工具检查数据类型:1)连接数据库;2)在左侧导航栏选择要检查的表;3)在右键菜单中选择“数据验证”;4)选择要检查的字段,设置预期数据类型。

(3)参照完整性检查:1)使用SQL语句检查外键约束:SELECT FROM 表名1 JOIN 表名2 ON 表名1.外键字段 = 表名2.主键字段WHERE 表名2.主键字段 IS NULL;2)使用Navicat Premium工具检查外键约束:1)连接数据库;2)在左侧导航栏选择要检查的表;3)在右键菜单中选择“数据完整性”;4)查看外键约束设置。

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

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

实验四数据库完整性与安全性一.实验目的:理解并掌握利用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)回收李勇、张新的权限。

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

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

北京邮电大学实验报告课程名称数据库系统概念实验名称数据库完整性与安全性实验__系___班姓名__系___班姓名教师______ 成绩_________2011年5月2日目录一、实验目的 (4)二、实验内容 (4)三、实验环境 (7)四、实验要求 (7)五、实验步骤及结果分析 (7)(一)完整性实验 (7)一、建表阶段 (7)二、主键/候选键约束验证 (10)三、外键约束验证 (12)四、check/触发器约束验证 (18)(二)安全性实验........................................ 错误!未定义书签。

六、实验总结 ................................................ 错误!未定义书签。

一、实验目的1.通过对完整性规则的定义实现,熟悉了解Sybase数据库中实体完整性、参照完整性、断言等完整性保证的规则和实现方法,加深对数据完整性的理解。

2.通过对安全性相关内容的定义,熟悉了解Sybase数据库中安全性的内容和实现方法,加深对数据库安全性的理解。

二、实验内容(一)、完整性实验与要求:一、建表阶段1.利用SQL语句,分别定义数据库中各基本表的主键、候选键、外键,实现实体完整性约束和参照完整性约束。

2.在数据库中选取两张或三张具有外键关联的表,利用语句foreign key-references创建外键,实现参照完整性约束。

3.根据实际背景,对某些表中的某些特定属性,定义空值、非空约束。

4.建表时,使用check谓词,通过断言,添加如下一些约束:(1)1个MSC最多管理10个BSC。

(2)1个BSC最多管理50个小区/扇区。

(3)1个BTS可以连接至1-3个BSC。

(4)1个MS可以位于1到6个BTS的覆盖范围内。

(5)小区/扇区所使用的频点号在[1,124]之间。

二、主键/候选键约束验证1. 选取定义了主键的关系表,向该表插入在主属性上取值为空的元组,观察系统反应;选取表中某些或某个元组,修改这些元组在主属性上的取值,或插入新元组,使这些元组与表中已有其它元组的主属性取值相同,观察系统反应;2. 选取定义了候选键的关系表,向该表插入在候选键属性上取值为空的元组,观察系统反应;选取表中某些或某个元组,修改这些元组在候选键属性上的取值,或插入新元组,使这些元组与表中已有其它元组的候选键属性取值相同,观察系统反应;三、外键约束验证参照教科书和讲义上关于4.2.5节内容,完成下述实验。

数据库原理 实验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。

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

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

实验五数据库完整性与安全性一、实验目的1.充分理解关系数据库中关于数据库完整性的理解。

2.掌握实体完整性的定义方法。

3.掌握参照完整性定义的方法。

4.掌握用户自定义完整性的方法。

二、实验内容和要求创建orderdb数据库,建立以下5张基本表。

(一)实体完整性约束1.创建一个客户表(客户号、姓名、电话、地址、邮编),并为该表建立主键约束。

CREATE TABLE Customer(customerNo char(9) ,CONSTRAINST customerpk PRIMARY KER(customerNo)customerName varchar(40) ,telephone varchar(20) ,address char(40) ,zip char(6))2创建一订单明细表(订单编号,商品编号,数量,单价),为该表创建主键约束。

CREATE TABLE OrderDetail(customerName char(12),productNo char(9),quantity int,price numeric(7,2),CONSTRAINST orderdetailpk PRIMARY KEY(orderNo,productNo))3.创建一张订单表(订单编号、客户编号、员工编号、订单金额、订货日期、发票号码),要求给该表建立主键约束。

CREATE TABLE OrderMaster(orderNo char(12) PRIMARY KEY,customerNo char(9),salerNo char(8),orderDate datetime,orderSum numeric(9,2),invoiceNo char(10))(二)参照完整性约束1.建立一张订单表(订单编号、客户编号、员工编号、订单金额、订货日期、发票号码),要求给该表建立主键约束和关于员工表和客户表的外键约束。

CREATE TABLE OrderMaster(orderNo char(12) PRIMARY KEY,customerNo char(9) ,salerNo char(8) ,orderDate datetime ,orderSum numeric(9,2) ,invoiceNo char(10) ,CONSTRAINT OrdermasterFK1 FOREIGN KEY(customerNo)REFERENCES Customer(customerNo),)2.重新创建订单明细表,给该表再增加外键约束。

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

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

(一)、安全性实验内容与要求:SQL Server 数据库实验:SQL Server提供了多种安全机制。

主要的有如下3条:1.最小权限原则:SQL Server通过给不同用户赋予不同权限的方式来保证安全。

本原则要求只给某用户完成工作所必须的权限,以尽量减小用户有意或无意的错误对数据库造成的损害。

2.CIA原则:C:机密性,未授权者或使用非法手段无法访问数据。

I:完整性,未授权者或使用非法手段无法修改数据。

A:可用性,已授权者可随时使用数据。

3.深度防护:实际上任何一个程序都运行在操作系统上,一台计算机上还有其它应用程序。

所以SQL Server的安全不能仅仅考虑本身的安全,而必须结合操作系统安全及其它相关因素(比如杀毒软件和防火墙)来考虑。

这就是深度防护。

SQL Server仅仅运行在Windows操作系统上,允许直接使用Windows用户作为SQL Server用户,由于是同一公司的产品,其和操作系统的联系和配合特别紧密,为其它数据库所远远不及的。

在SQL Server服务器及其它Windows服务器上,应该进行多方面的安全配置:包括操作系统补丁管理、管理员用户和组管理、其它本地用户组管理和设置本地安全策略。

为了提供网络上的客户端访问,还需要进行端点等相关设置。

SQL Server对两种实体提供安全机制。

分别是登录名(以前曾称为login,现在在T-SQL中仍然这样使用,但为避免混淆,Microsoft已经开始改称其为服务器主体)和用户名(user,就是数据库主体)。

现在有3种登录名:windows域登录名(就是域用户),windows本地登录名(本地用户)和SQL Server登录名。

用户登录以后,SQL Server将其映射为自己的user,进行相应安全管理。

从而提供了两种身份认证模式:Windows认证模式和SQL Server认证模式。

1.Windows认证模式SQL Server数据库系统通常运行在NT服务器平台或基于NT 构架的Windows server上,而NT作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,所以Windows认证模式正是利用这一用户安全性和账号管理的机制,允许SQL Server也可以使用NT的用户名和口令。

实验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服务器的安全性检查之后,将接受第二层的安全性检查,即是否具有访问某个数据库的权利。

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

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

精品数据库原理及应用实验报告题目:数据库安全性与完整性实验专业:网络工程班级:学号:姓名:太原工业学院计算机工程系2016年10 月15日一、实验目的与要求目的:使学生加深对数据安全性与完整性实验的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法,熟悉通过SQL语句副i数据进行完整性控制。

要求:1.数据库的安全性实验,在SQL Server企业管理器中设置SQL server的安全认证模式,实现对SQL server的用户和角色管理,设置和管理数据操作权限。

2.指出用户和角色的区别二、实验内容1.设置SQL server的安全认证模式(windows或SQL server和Windows(s)认证模式)、。

2.登陆的管理创建一个登录用户3.数据库用户的管理登录用户只有成为数据库(Database User)后才能访问数据库。

每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。

SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。

通过系统存储过程或企业管理器可以创建新的数据库用户。

4.角色的管理创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

5.在学生表中定义主键、外键约束6.在课程表的“课程名”字段上定义唯一约束7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100.“课程号”字段只能输入数字字符8.定义规则,并绑定到学生表的“性别”字段,使之只能取“男、女”值9.在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日期。

三、解决方案和实验结果1.创建一个SQL Server身份验证的登录(命名方式:数据库名称+Login),默认数据库是新创建的数据库,并为该登录指定sysadmin服务器角色2..登陆的管理创建一个登录用户3.在已有数据库中创建一个数据库用户(命名方式:数据库名称+User),与上面的登录关联4.角色的管理创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

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

一、 实验目的与要求
目的:
使学生加深对数据安全性与完整性实验的理解,并掌握 SQL Server 中有关用户,角色及操作
权限的管理方法,熟悉通过 SQL 语句副i 数据进行完整性控制。

要求:
1. 数据库的安全性实验,在 SQL Server 企业管理器中设置 SQL server 的安全认证模式,实现 对SQL server 的用户和角色管理,设置和管理数据操作权限。

2. 指出用户和角色的区别
二、 实验内容
1. 设置SQL server 的安全认证模式(windows 或SQL server 和 Windows ( s )认证模式)、。

2. 登陆的管理 创建一个登录用户
3. 数据库用户的管理
登录用户只有成为数据库(Database User )后才能访问数据库。

每个数据库的用户信息都存放在 系统表Sysusers 中,通过查看 Sysusers 表可以看到该数据库所有用户的情况。

SQLServer 的数
据库中都有两个默认用户: dbo (数据库拥有者用户)和(dba )。

通过系统存储过程或企业管理
器可以创建新的数据库用户。

4. 角色的管理
创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

5. 在学生表中定义主键、外键约束
6. 在课程表的“课程名”字段上定义唯一约束
7. 在选课表的“成绩”字段上定义 check 约束,使之必须大于等于
0且小于等于100.
“课程号”字段只能输入数字字符
8. 定义规则,并绑定到学生表的“性另『字段,使之只能取“男、女”值
9. 在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日 期。

数据库原理及应用
实验报告
题 目: 数据库安全性与完整性实验 专 业:
网络工程
班 级:

号:

名:
太原工业学院计算机工程系 2016年 10月15日
2..登陆的管理创建一个登录用户
sp_addlogin,BBBlogin,,' *, ' BBB*
exec sp_addsrvrolemember J BBBlogin* , * sysadmin5
三、解决方案和实验结果
1.创建一个SQL Server身份验证的登录(命名方式:数据库名称+Login ),默认数据库是新创
建的数据库,并为该登录指定sysadmin服务器角色
已创堡新登录*〒r
n BBBlogin R已瘁加至Q帚色f sysa(iniin n中 *
舉据库用户匡性—EBBUser
他登录即
用户名
0J)
数据库角色成员
Q):
BB Blogin
BBBUser
权限的…
确走|
3•在已有数据库中创建一个数据库用户(命名方式:数据库名称+ User),与上面的登录关联
exec sp_grantdbaccess 'BBBlogin' ,' EBBUser^
< I 已向'BBBlogiiV授予数IB库访同稅*
4•角色的管理创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。

在已有数据库中创建一个自定义数据库角色(命名方式:数据库名称+ Role),并把上面用户指定为该角色成员
II exec sp_addrole ?BBBRole5 exec sp_addrolemember ' BBBRole',” BBB|l T ser?
于甬鱼已添加*
f BEBUser1己添加到朗色r BBBRole'中*
命令已咸功完成。

5.在学生表中定义主键、外键约束
I create table students
(Sno char(9 J primary key
foreign key(Sno;references Sc Sno))
| < rrr
恤劳器:—消宣睥鸟「鱸则⑹ 状悲鼠行1
I数据库中已存在容%R students-的对象。

6•在课程表的“课程名”字段上定义唯一约束
create t硕ble Course
ame char 20) unique)
服努謹「消克对同,级别1恥状态E,行1 数堀障中已存在客为-Course^的嗣象。

7•在选课表的“成绩”字段上定义c h e c k约束,使之必须大于等于0且小于等于100.“课程号”字段只能输入数字字符
create table Sc
Sno char not null, Grade smallint che|ck(Grade>=0 and Grade<=100))
8•定义规则,并绑定到学生表的“性另『字段,使之只能取“男、女”值
CREATE RULE sex_rule AS @ssex IN (' 男','女')
sp_b in drule sex_rule,'stude nt.ssex'
CREATE RULE ssex_rule AS @sex_rule IN ('男'「女')
sp_bindrule SEE|x_rule, ?Student. Ssex?
9.在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日期。

五、出现的问题及解决的方法。

相关文档
最新文档