试验3数据库的安全性和完整性
- 格式:docx
- 大小:83.96 KB
- 文档页数:7
实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1.了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。
4 数据库的安全性与完整性数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。
数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。
一般说来,对数据库的破坏来自以下4个方面:(1)非法用户非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户.一般说来,非法用户对数据库的危害是相当严重的。
(2)非法数据非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。
(3)各种故障各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。
(4)多用户的并发访问数据库是共享资源,允许多个用户并发访问(Concurrent Access),由此会出现多个用户同时存取同一个数据的情况。
如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性.针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下:(1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章4.1节“数据库安全性”应解决的问题。
(2)利用完整性约束,防止非法数据进入数据库,这是本章4。
2节“数据库完整性"应解决的问题。
(3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章4。
3节“故障恢复技术”的内容.(4)提供并发控制(Concurrent Control)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章4.4节“并发控制”的内容。
4.1 数据库安全性4.1.1 数据库安全性问题的概述1.数据库安全问题的产生数据库的安全性是指在信息系统的不同层次保护数据库,防止未授权的数据访问,避免数据的泄漏、不合法的修改或对数据的破坏。
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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)掌握数据完整性的分类。
3)掌握完整性约束的添加、删除方法。
4)掌握通用默认值的创建、实施与删除方法。
5)掌握规则的创建、实施与删除方法。
6)掌握级联删除、级联修改方法。
二、实验内容数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。
数据完整性分为以下3类:域完整性:是指一个列的输入有效性,如是否允许为空值等。
实体完整性:是指保证表中所有的行惟一。
由主键约束来实现。
参照完整性:也叫引用完整性。
参照完整性总是保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。
它涉及两个或两个以上表数据的一致性维护。
由外键约束来实现。
1、完整性约束的添加、删除约束是强制数据完整性的首选方法。
约束有6种类型:非空约束、默认值约束、Check约束、主键约束、外键约束、唯一性约束。
(1)使用企业管理器实施约束1>为表student的年龄字段创建约束,使输入的年龄大于15岁并且小于30岁。
添加约束操作步骤:删除该约束操作步骤:2>为表student的Splace字段即所在系字段,设置默认值约束,默认值取’内蒙’。
添加默认约束的操作步骤:删除默认约束的操作步骤:3>(若原有约束,请在企业管理器中删除student表的主键约束)在企业管理器中将sno重设为主键。
(会操作即可,操作步骤可略)4>为student表的sname字段添加唯一性约束。
添加唯一性约束操作步骤:删除唯一性约束操作步骤:5>(若原有约束,请在企业管理器中删除原有的外键约束)在企业管理器中删除SC原有的外键约束,在企业管理器中对sno,cno字段设置外键约束,约束名自已取。
并允许级联删除与级联更新。
添加外键约束的操作步骤:删除外键约束的操作步骤:2、通用默认值的实施(1)使用企业管理器实现1>使用企业管理器中为数据库XSGL创建一个默认的邮政编码,名称自取,值为:210000。
数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。
本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。
一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。
三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。
在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。
假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。
可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。
例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。
在我们的学生信息表中,学生的学号是唯一的标识符。
为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。
数据库运维课程实训报告实验3 数据库安全性与完整性控制实验实训名称:成绩教师评语教师签字日期学生姓名学号一、实训目标练习安全性授权方法、安全性和完整性查看的操作方法。
二、实训内容【实验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数据表相关的表权限。
课程实验报告课程名称数据库系统概论班级实验日期姓名学号实验成绩实验名称实验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)回收李勇、张新的权限。
课程实验报告
新权力;
(4)用户新具有创建表的权力;
(5)用户周平具有对$也~。
M表和。
出$。
表所有权力,并具有给其他用
户授权的权力;
(6)回收勇、新的权限。
调试过程
(1)利用查询分析器创建上述3个基本表。
■sn口5name ssejc idept
及实验结庠NUil NULL NULL NULL NULL
果
CHD cname cpno credit
米NULL NULL NULL NULL
sno eno- grade
米NULL NULL NULL
(2)_删除
St
100 % -
4消息命
等已
(3)用户王
udent表的关于sage 20至ij 50的约束
成功宾成。
明对Student表和Course表有SELECT权力;
笔和 尖型
李里
:用户 A 用O 於呈利捏眼(t)
⑸用户新具有创建表的权力
n ri 正接
% 一
团 □ □ 由揆亘利 口 n
Fl (6)用户周平具有对$加~巳酎表和Course 表所有权力,并具有给其他用户授权的权
力;
Create table Student
(
sno varchar (10),
sname varchar (8),
ssex varchar (2) default '男’,/*默认是男*/
sage int , /*年龄介于 20-50*/
sdept varchar (20),
constraint sno1 primary key (sno ),
constraint sage1 check (sage between 20 and 50) ); create table Course ( 虾 附注 ……i n □ n 的T. db<> 困 □ 选驿 匚 □ □ 士 t 画 阿 □ 空用 B n n =用 Jl-D 囹 画 □ 钊士:荣。
.. (用户 (7)回收勇、新的权限。
权限 援取者 授予 具有授予.. 拒期 创建IML 架里里含 □ □ □ 创建表 □ O n 创懿序集 □ B n 创靓列 □ □ o 创怒市里钊 □ B n ■41 曲dtT 如士口 日 引至的权限田] 总结 此次数据库实验是我认为对自身知识补充最大一次实验,关于数据库的安 全性和完整性问题,是数据库十分重要的问题。
数据库的完整性,主要是 建立一些表级约束和列级约束条件来使基本表条件更加完整。
但是表级约 束和列级约束也存在不同。
虽然效果一样,但是表级约束和列级约束相比 灵活性更,所以实验中要求对某些约束条件进行删除更加方便,因此在本 次实验中主要采用的时表级约束条件。
除此之外数据库的安全性问题,书 上的代码是不能直接使用的。
使用前提是首先要这个用户是存在的,因此 在做数据库实验的时候,首先就是创建登录名,一级登录名下面的用户。
只有创建了用户之后,才能对用户进行权利的授予。
附录 (1)利用查询分析器创建上述3个基本表。