数据库系统实验报告 实验三 数据控制(安全性)..

合集下载

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

数据库原理实验报告-实验三-数据完整性与安全性控制
唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择’修改’ 命令t右击sname-->选择’索引和键’命令-->打开’索引和键’框图-->添加-->是否唯一改为’是’-->名称改为’us_sname'-->关闭。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
-CCtJSTRAJNTfkcnaF?[tEIGN KEYcncREFERENCESC (cnc;
用SQL语句新建约束:
USE[atudent]
□ALTER TABLE5
I
ADD CCNST FAINTck—anoPR1MAKY KEYsne::
ALTER TABLES
ALTER COLUMNsnairenvarcnar20:null;
ALTER TABJLE3
ADD CCtTSTRAINTU5_srar.euniquesnare:
ALTER TABLES
ADD CONSTRAINTdf ssexdefault'男'FORsssx?
ALTER TABLESC
ADD CONSTRAINTck_arade2HECX([ccrade]>=(0j&:•】匚【亡^工玄丘亡]v=(100j j:
ALTER TABLEsc
ADD CCtTSTRAlNTfksncFOREIGNKEY[sn=:RZFERENCE55(sno),
设默认约束:单击数据库Student宀单击表宀单击右击sno^选择’修改’命
令t单击cno-->在默认值栏输入‘男’t保存
關趴I
笑称)
数据塑型允许创值 曰表设计器R NhomakorabeaOwGmd
S标识披范

实验三实现数据库的安全性与数据的完整性

实验三实现数据库的安全性与数据的完整性

实验三实现数据库的安全性与数据的完整性一、实验目的1.了解SQL Server 2000 的身份验证方法。

2.把握合法登录帐户的设置。

3.把握用户的权限治理方法。

4.把握实体完整性与参照完整性的实现方法。

5.把握域完整性的实现方法。

二、实验内容1.Windows和SQL Server2000身份验证的比较。

2.设置登录帐户。

3.设置数据库用户权限。

4.参照完整性5.实体完整性6.域完整性三、实验预备1.登录模式a) SQL Server和Windows:指定用户能够使用SQL Server身份验证和Windows身份验证连接到SQL Server。

b) 仅Windows:指定用户只能使用Windows身份验证连接SQL Server。

2.权限验证当验证了用户的身份并承诺其登录到SQL Server 2000实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。

在每个数据库中都要求用户帐户可防止用户连接到 SQL Server 实例并访问服务器上的所有数据库3.角色利用角色,SQL Server治理者能够将某些用户设置为某一角色,如此只对角色进行权限设置便能够实现对所有用户权限的设置,大大减少了治理员的工作量。

SQL Server提供了用户通常治理工作的预定义服务器角色和数据库角色。

服务器角色系统治理员:拥有SQL Server所有的权限许可。

●服务器治理员:治理SQL Server服务器端的设置。

●磁盘治理员:治理磁盘文件。

●进程治理员:治理SQL Server系统进程。

●安全治理员:治理和审核SQL Server系统登录。

●安装治理员:增加、删除连接服务器,建立数据库复制以及治理扩展储备过程。

●数据库创建者:创建数据库,并对数据库进行修改数据库角色●public:爱护全部默认许可。

●db_owner:数据库的所有者,能够对所拥有的数据库执行任何操作。

●db_accessadmin:能够增加或者删除数据库用户、工作组和角色。

实验三数据库安全性实验报告

实验三数据库安全性实验报告

实验三数据库安全性实验报告第一篇:实验三数据库安全性实验报告一实验目的1.熟悉通过SQL语句对数据进行安全性控制;2.针对具体应用要求,完成授权和收回权限的操作;二实验工具SQL Server 2005利用SQL Server 2005 SSMS及其SQL查询编辑器。

三实验内容和要求使用SQL对数据进行安全性控制,包括:授权和权力回收。

操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。

根据以上要求认真填写实验报告,记录所有的实验用例。

具体操作可以参照课件中的实例。

具体操作内容:创建以下两个关系模式,并分别插入相应的数据。

职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号码)(1)请用SQL的Grant和Revoke语句(加上视图机制)完成以下授权定义或存取控制功能,并进行相应的安全性测试;(a)用户王明对两个表有select权力;(b)用户李勇对两个表有insert和delete权力;(c)每个职工只对自己的记录有select权力;(d)用户刘星对职工表有select权力,对工资字段具有更新权力;(e)用户张新具有修改这两个表的结构的权力;(f)用户周平具有对两个表所有权力(对,插,改,删数据),并具有给其他用户授权的权利;(g)用户杨兰具有从每个部门职工中select最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。

(2)把上面(a)~(g)的每一种情况,撤销各用户所授予的权力。

四实验报告4.1 实验环境:Windows XPMicrosoftSQL server Management Studio 20054.2 实验内容与完成情况:--新建数据库create database workgouse work--创建以下两个关系模式,并分别插入相应的数据。

--Worker(职工号,姓名,年龄,职务,工资,部门号)gocreate table Worker(职工号varchar(10),姓名char(10),年龄int,职务 char(15),工资 int,部门号 char(50))--Section(部门号,名称,经理名,地址,电话号码)create table Section(职工号char(10),名称char(10),经理名char(10),地址 char(50),电话 char(15));go--插入部门信息insert into Section values('a001','市场部门','李永','白理工','***');insert into Section values('a002','营销部门','李刚','白理工','***');--插入职工信息insert into Worker values('a001001','王明',20,'市场营销员',2000,'a001');insert into Worker values('a001002','李村',29,'市场营销员',2000,'a001');insert into Worker values('a001003','李永',20,'经理',5000,'a001');insert into Worker values('a002001','罗杰',18,'销售员',2000,'a002');insert into Worker values('a002002','李红',24,'销售员',2000,'a002');insert into Worker values('a002003','李刚',32,'经理',5000,'a002');--查询部门表和职工表的数据select *from Worker;select *from Section;--授权use workgo--(a)用户王明对两个表有select权力;create login [王明] with password=N'1234';create user [王明] for login [王明];grant select on Worker to [王明];grant select on Section to [王明];--插入数据权限测试insert into Worker values('a002004','罗红',28,'销售助理',4000,'a002');--查询数据权限测试select *from Worker;--(b)用户李勇对两个表有insert和delete权力;use workgocreate login [李勇] with password=N'1234';create user [李勇] for login [李勇];grant insert,delete on Worker to [李勇];grant insert,delete on Section to [李勇];--插入数据权限测试insert into Worker values('a002005','罗莉',52,'销售助理',4000,'a002');--查询数据权限测试select *from Worker;--删除权限测试delete Worker from where 职工号='a002001';--(c)每个职工只对自己的记录有select权力;use workgocreate view Myself as select * from Workerwhere 姓名=user;grant select on Myself to public;--(d)用户刘星对职工表有select权力,对工资字段具有更新权力;use workgocreate login [刘星] with password=N'1234';create user [刘星] for login [刘星];grant select,update(工资)on Worker to [刘星];--更新修改权限测试update Worker set 工资=3500 where 职工号='a002001'--查询数据权限测试select *from Worker;--(e)用户张新具有修改这两个表的结构的权力;use workgocreate login [张新] with password=N'1234';create user [张新] for login [张新];grant all PRIVILEGES on Worker to 张新;grant all PRIVILEGES on Section to 张新;--(f)用户周平具有对两个表所有权力(对,插,改,删数据),并具有给其他用户授权的权利;use workgocreate login [周平] with password=N'1234';create user [周平] for login [周平];grant all PRIVILEGES on Worker to 周平with grant option;grant all PRIVILEGES on Section to 周平with grant option;--(g)用户杨兰具有从每个部门职工中select最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。

数据库系统实验课实验报告

数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。

本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。

2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。

3、学会使用 SQL 语句进行复杂的数据查询和数据处理。

4、理解数据库的完整性约束、索引和存储过程的概念及应用。

5、培养解决实际数据库问题的能力和团队协作精神。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,实验在 Windows 10 操作系统上进行。

使用的开发工具包括 MySQL Workbench 和命令行终端。

三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。

2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。

“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。

“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。

在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。

3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。

4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。

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

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

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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-->展开键、约束。

软件学院实验报告3

软件学院实验报告3

江西理工大学软件学院计算机类课程实验报告课程名称:数据库系统概论班级:11软件机电2班姓名:李国学号:11212229江西理工大学软件学院教务部印实验三实验名称数据库操作实验日期2012/11/13 实验成绩实验目的、要求及内容数据安全性、视图的建立与维护1 首先学习数据库的备份。

将之前的xuesheng数据库还原2 备份还原分离附加的意思3创建一个登录用户,学习使用企业管理器4 . 创建新的数据库用户,学习使用企业管理器。

5使用GRANT语句,把对基本表student的select权限赋予用户,使用revoke语句,收回权限。

6建立男学生的视图schoolboy,属性包括学号、姓名和年龄。

7在视图schoolboy中查询年龄为19的学生学号与姓名。

实验环境江西理工大学(南昌)3422机房Windows xp 实验平台sql server 2000实验具体过程1.授予权限:grant selecton studentto liguo,2.收回权限:Revoke selectOn table student to liguo3 .建立视图:Create view schoolboy (学号,年龄,姓名) AsSelect sno from studentWhere sex=“男“4.查询视图Select 学号,姓名From schoolboyWhere sage= 19总结实验结果分析:由于用户被授予了访问xuesheng数据库的权限所以用户输入用户名登录后就可以访问该数据库了,用户但是只有select的权限,没有其他的权限,例如,create ,alter delete drop 等权限权限还可以利用revoke语句收回,收回权限后用户就不再有访问数据库的权限了,而且不可以循环授权。

心得:这个实验让我知道了如何提高数据库的安全性,数据库的安全控制可以通过授权机制,视图机制,审计,数据加密等实现。

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

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

数据库原理及应用实验报告实验四实验题目:数据控制(安全性和完整性)实验类型:验证_______________________________ 实验地点:软件实验室二系班级:计科系***班_____________________姓名:***______________________学号:***______________________2013年11月10日一、实验项目名称:数据控制(安全性和完整性)二、实验目的和任务:理解SQL Server的用户与权限管理机制,通过企业管理器创建用户,并给定的用户分配权限,并掌握数据库完整性概念,实现实体、参照和自定义约束。

三、实验内容:1.创建数据库ycudata,它包含两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),部门(部门号,名称,经理名,地址,电话号)2.创建用户sqlaa,它对关系模式职工具有查询和删除权限3.创建用户sqlbb,它对关系模式职工和部门具有所有的权限(所有权限的表达)4.对该用户sqlcc授予查找职工关系模式,更新部门关系模式的权限,同时可以将该权限进行传播,并将权限传播给用户sqlaa5.创建用户sqldd,它对关系模式职工修改表结构的权限6.收回用户sqlcc的相应权限,了解sqlaa的权限情况7.创建角色role1,它的权限是对部门关系模式进行查、插、改、删,将用户sqldd 和sqlcc归于角色role1,查看用户的权限8.定义部门和职工关系模式的主键,外键,定义职工年龄不超过60岁,部门名称必须取值唯一以下为选做内容:1.定义用户sqlee,具有从每个部门职工中查看最高工资,最低工资和平均工资的权力,但他不能查看每个人的工资2.在对关系模式定义外键时,分别设置无行动和级连两种方式,并进行数据插入四、实验步骤及截图:1、打开SQL Server 2005,建立连接。

2、创建数据库ycudata,它包含两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),部门(部门号,名称,经理名,地址,电话号)(1)创建职工关系模式:(2)创建部门关系模式:3、创建用户sqlaa,它对关系模式职工具有查询和删除权限(1)创建登录名为work的用户:打开安全性,右击登录名,然后新建一个登录名,点击确定。

数据库系统原理实验3——数据安全性控制及数据库恢复

数据库系统原理实验3——数据安全性控制及数据库恢复

数据库系统原理实验三数据安全性控制及数据库恢复(3课时)实验目的:⏹理解数据库安全性概念,熟悉数据库安全性控制技术⏹掌握SQL Server数据库中通过用户及角色权限管理实现的安全控制措施⏹掌握SQL Server数据库的备份及还原操作实验方法:本次实验课的内容包括两部分,先由教师补充讲解,然后学生根据实验报告进行实验。

第一部分讲解一、数据安全性控制数据库安全控制的目的是保护数据库以防止数据泄露、更改或破坏,确保授权的用户可以使用相应的数据,其他人不可以访问和使用数据。

SQL Server 的安全性设计:SQL Server使用流程:登录服务器→访问数据库→操作数据库安全性设计:登录用户操作用户操作权限T-SQL授权语句:GRANT <操作类型>[,<操作类型>]...ON <对象名>TO <用户>[,<用户>]...[WITH GRANT OPTION]T-SQL收权语句:REVOKE <操作类型>[,<操作类型>]...ON <对象名>FROM <用户>[,<用户>]二、数据库恢复SQL Server中提供数据库备份和还原机制,保证数据在发生数据故障后能及时通过备份数据来进行恢复。

1.对数据库进行备份选择某数据库,在右键快捷菜单中选择“任务”/“备份”,按需设置各项。

2.对数据库作修改3.还原数据库选择要还原的数据库,在右键快捷菜单中选择“任务”/“还原”/“数据库”,在“选项”选项卡中勾选“覆盖现有数据库”,然后在“常规“选项卡中按需设置各项。

第二部分实验根据实验报告内容进行实验。

首先需要创建数据库shiyan3,在其中建三张表Students、Courses、Reports,并加入若干行数据。

附:创建数据库、表的T-SQL语句create database shiyan3gouse shiyan3create table students(sno char(9) primary key,sname char(8) not null,ssex char(2),sage smallint,sdept char(20))create table courses(cno char(4) primary key,cname char(10) not null,pre_cno char(4),credit smallint,foreign key(pre_cno) references courses(cno))create table reports(sno char(9),cno char(4),grade smallint,primary key(sno,cno),foreign key(sno) references students(sno),foreign key(cno) references courses(cno))实验报告专业:计算机科学与技术课程:数据库系统原理。

实验报告3 数据库安全性的设计与实现

实验报告3 数据库安全性的设计与实现
例5-2
执行过程
执行结果:
删除成功
例5-3
执行过程:
结果:
WINDOWS用户MXC\user设为SQL Server登录者。
例5-4
执行过程
例5-5
执行过程:
执行结果:
成功删除MXC\user
七.实验总结
通过这次实验学会给不同的用户设置不同的角色,知道了数据库角色之间的不同,明白了数据库安全性的重要性。
5)授予他在student数据库中创建视图、创建表的权限;
6)授予他对student数据库中的study表具有所有权限,且可将这些权限授予他人;
7)撤销他对student数据库中的study表的修改权限;
8)禁止他对student数据库中的study表的删除权限。
例录成功
4)对OrderCenter数据库中的products表具有插入、修改和删除的权限。
2.在查询分析器中使用SQL语句完成下列任务:
1)创建一个登录名student,口令为123,缺省数据库为student;
2)将其加入到student数据库的用户中;
3)将其加入到sysadmin角色中;
4)将其加入到student数据库的db_owner角色中;
实验3:数据库安全性的设计与实现
一.实验目的
通过本实验使学生加深对数据库安全性的理解,并掌握数据库管理系统中有关用户、角色及操作权限的管理方法。
二.实验类型验证型
三.实验学时2学时
四.实验原理及知识点
1.安全模式的设置
2.服务器登录标识管理
3.数据库用户管理
4.权限管理
五.实验环境
1.硬件设备要求:PC及其联网环境;
2.软件设备要求:Windows操作系统;MS SQL Server数据库管理系统。

数据库系统实验报告 实验三 数据控制(安全性)

数据库系统实验报告 实验三 数据控制(安全性)

可得到最后界面如下:3.以sa用户(DBA)登录,运行教材上4.2.4中的例1~例7对7个新用户授权。

每运行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。

注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出在SQL 2000中的权限授予与回收命令语句。

【例1】把查询student表的权限授给用户u1。

GRANT SELECTTO u1;执行完授权语句后,用u1登录,验证其是否已有查询权利。

重新连接数据库,登录界面如下:用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。

【例2】把对student表和course表的全部操作权限授予用户u2和u3。

GRANT ALL PRIVILEGESON studentTO u2,u3;GRANT ALL PRIVILEGESTO u2,u3;执行完授权语句后,用u2登录,验证其是否已有所有权利。

用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。

说明u2已具有了对student表和SC表的所有权限。

同u2一样,u3也已具有了对student表和SC表的所有权限。

【例3】把对表SC的查询权限授予所有的用户。

GRANT SELECTON SCTO PUBLIC;【例4】把查询student表和修改学生学号的权限授予用户u4。

GRANT UPDATE(Sno),SELECTON studentTO u4;执行完授权语句后,用u4登录,验证其是否已有相应权利。

用u4登录后,执行一条SELECT命令和一条UPDATE命令,显示了查询结果如下所示,说明u4已具有了对student表的查询权限,和对学生学号的修改权限。

【例5】把对表SC的insert权限授予u5用户,并允许将此权限再授予其他用户。

实验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)回收李勇、张新的权限。

数据库原理实验报告-数据库的安全性

数据库原理实验报告-数据库的安全性

实验题目三数据库的安全性
一、实验目的
熟悉SQL Server中有关用户、角色及操作权限的实用,加深学生对数据库安全性的理解。

二、实验内容和要求
1.理解SQL Server的安全控制机制;
2.对SQL Server的登录名、用户和角色进行管理;
3.学习通过SQL语言的数据控制功能,设置和管理数据操作权限;
三、实验主要仪器设备和材料
1.计算机及操作系统:PC机,Windows 2000/XP或更高版本;
2.数据库管理系统:SQL Server 2005或更高版本;
四、实验方法、步骤及结果测试
对teaching数据库完成以下操作。

1.新建登录名“UserA(+学号)”,选择“SQL Server身份验证模式”并设置密码。

设置页面
2.使用“UserA”登录名登录,查看teaching数据库中student表的学生信息。

执行结果
3. 使用“sa”重新登录。

修改“UserA”的属性:服务器角色面板中,勾选
sysadmin 两项;用户映射中,赋予对数据库teaching和master的“db_owner”角色权限。

设置界面设置界面
4. 使用“UserA”登录数据库,查询teaching数据库中student表的学生信息,验证是否
执行结果
在服务器级别上新建两个“SQL Server身份验证”的登录名:login1(学号)、
执行结果
数据库新建两个用户:User1(学号)、Use_2(学号)分别对应login1
五、思考题
1.解释说明SQL Server 中的登录名、用户、服务器角色、数据库角色。

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

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

课程实验报告新权力;(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)回收勇、新的权限。

总结此次数据库实验是我认为对自身知识补充最大一次实验,关于数据库的安全性和完整性问题,是数据库十分重要的问题。

数据库的完整性,主要是建立一些表级约束和列级约束条件来使基本表条件更加完整。

但是表级约束和列级约束也存在不同。

虽然效果一样,但是表级约束和列级约束相比灵活性更,所以实验中要求对某些约束条件进行删除更加方便,因此在本次实验中主要采用的时表级约束条件。

除此之外数据库的安全性问题,书上的代码是不能直接使用的。

使用前提是首先要这个用户是存在的,因此在做数据库实验的时候,首先就是创建登录名,一级登录名下面的用户。

只有创建了用户之后,才能对用户进行权利的授予。

附录(1)利用查询分析器创建上述3个基本表。

Create table Student(sno varchar(10),sname varchar(8),ssex varchar(2)default'男',/*默认是男*/sage int,/*年龄介于20-50*/sdept varchar(20),constraint sno1primary key(sno),constraint sage1check(sage between 20 and 50));。

实验三、数据库安全性(目的、要求和模板)

实验三、数据库安全性(目的、要求和模板)

实验三:数据库的安全性一、实验目的1. 掌握Windows认证模式下数据库用户帐号的建立与取消方法;2. 掌握混合模式下数据库用户帐号的建立与取消方法;3. 掌握数据库用户权限的设置方法;4. 熟悉数据库数据库用户帐号的权限分配、回收等方法;5. 了解数据库角色的分类、作用及使用方法。

二、实验环境SQL Server 企业版三、实验学时2学时四、实验原理:1. Microsoft? SQL Server? 可以在两种安全(身份验证)模式:(1)Windows身份验证模式(Windows身份验证)Windows身份验证模式使用户得以通过Microsoft Windows NT? 4.0或Windows? 2000用户帐户进行连接。

(2)混合模式(Windows身份验证和SQL Server 身份验证)混合模式使用户得以使用Windows身份验证或SQL Server身份验证与SQL Server实例连接。

在Windows身份验证模式或混合模式下,通过Windows NT4.0 或Windows 2000用户帐户连接的用户可以使用信任连接。

SQL Servar安全性决第树2. SQL S erver的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。

其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。

SQLServer中的登录名主要有两种:第一种是 Windows 登录名,第二种是 SQLServer 登录名。

Windows登录名对应 Windows 验证模式,该验证模式所涉及的账户类型主要有Windows 本地用户账户、Windows 域用户账户、 Windows 组。

SQL Server 登录名对应 SQL Server 验证模式,在该验 证模式下,能够使用的账户类型主要是SQL Server 账户。

(2) 数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、 DDL 事件、架构等。

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

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

课程实验报告新权力;(4)用户新具有创建表的权力;(5)用户周平具有对$也~。

M表和。

出$。

表所有权力,并具有给其他用户授权的权力;(6)回收勇、新的权限。

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

■sn口5name ssejc idept及实验结庠NUil NULL NULL NULL NULL果CHD cname cpno credit米NULL NULL NULL NULLsno eno- grade米NULL NULL NULL(2)_删除St100 % -4消息命等已(3)用户王udent表的关于sage 20至ij 50的约束成功宾成。

明对Student表和Course表有SELECT权力;笔和 尖型李里:用户 A 用O 於呈利捏眼(t)⑸用户新具有创建表的权力n ri 正接% 一团 □ □ 由揆亘利 口 nFl (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 如士口 日 引至的权限田] 总结 此次数据库实验是我认为对自身知识补充最大一次实验,关于数据库的安 全性和完整性问题,是数据库十分重要的问题。

实验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数据表相关的表权限。

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

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

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

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

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

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

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

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

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

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

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

数据控制的实验报告(3篇)

数据控制的实验报告(3篇)

第1篇一、实验目的1. 理解数据控制的基本概念和原理;2. 掌握数据控制的方法和技巧;3. 培养实际操作能力,提高编程水平。

二、实验内容1. 实验环境:Windows操作系统,C语言编程环境(如Visual Studio、Dev-C++等)。

2. 实验工具:C语言编译器、调试器、文本编辑器等。

3. 实验任务:(1)编写程序,实现以下功能:① 输入一组整数,存储到数组中;② 求出数组中最大值、最小值和平均值;③ 对数组进行排序,可以使用冒泡排序、选择排序或插入排序等方法;④ 统计数组中正数、负数和零的个数;⑤ 将数组逆序输出。

(2)分析实验过程中遇到的问题,并给出解决方案。

三、实验步骤1. 编写程序,实现以下功能:(1)定义一个整型数组,用于存储输入的整数;(2)通过循环读取用户输入的整数,直到用户输入-1为止;(3)计算最大值、最小值和平均值;(4)对数组进行排序;(5)统计正数、负数和零的个数;(6)逆序输出数组。

2. 编译、运行程序,观察结果。

3. 分析实验过程中遇到的问题,并给出解决方案。

四、实验结果与分析1. 实验结果:(1)输入一组整数,存储到数组中;(2)求出数组中最大值、最小值和平均值;(3)对数组进行排序;(4)统计数组中正数、负数和零的个数;(5)逆序输出数组。

2. 实验分析:(1)在实现数组排序时,使用了冒泡排序算法。

冒泡排序是一种简单的排序算法,其基本思想是通过比较相邻元素的值,将较大的元素交换到后面,较小的元素交换到前面,直到整个数组排序完成。

虽然冒泡排序的效率较低,但易于实现,适合小规模数据排序。

(2)在统计正数、负数和零的个数时,使用了计数器变量。

通过遍历数组,判断每个元素的正负,并更新计数器变量。

(3)在逆序输出数组时,通过一个循环,从数组的最后一个元素开始,逐个输出元素,直到第一个元素。

五、实验总结1. 通过本次实验,我们了解了数据控制的基本概念和原理,掌握了数据控制的方法和技巧。

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

《数据库系统概论》实验报告题目:实验三数据控制(安全性)班级姓名学号日期2014年6月6日一、实验目的1.通过SQL对数据库进行安全性控制2.完成教材中例题的上机练习二、实验平台微软SQL Server 2000或以上版本。

对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。

三、实验内容和要求使用SQL对数据进行安全性控制,包括授权和权力回收。

操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。

在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。

认真填写实验报告,记录所有的实验用例。

四、实验步骤1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建我们前几次实验所建立的表。

CREATE TABLE course (Cno char(4) NOT NULL,Cname char(40) DEFAULT NULL,Cpno char(4) DEFAULT NULL,Ccredit smallint DEFAULT NULL,PRIMARY KEY (Cno)) ;---- 转存表中的数据'course'--INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES('1', '数据库', '5', 4);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES('2', '数学', NULL, 2);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('3', '信息系统', '1', 4);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('4', '操作系统', '6', 3);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('5', '数据结构', '7', 4);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('6', '数据处理', NULL, 2);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('7', 'PASCAL语言', '6', 4);INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('8', 'DB_DESIGN', '1', 2);---- 表的结构'sc'--CREATE TABLE sc (Sno char(9) NOT NULL DEFAULT '',Cno char(4) NOT NULL DEFAULT '',Grade smallint DEFAULT NULL,PRIMARY KEY (Sno,Cno),) ;---- 转存表中的数据'sc'--INSERT INTO sc (Sno, Cno, Grade) V ALUES('200215121', '1', 92);INSERT INTO sc (Sno, Cno, Grade) V ALUES('200215121', '2', 85);INSERT INTO sc (Sno, Cno, Grade) V ALUES('200215121', '3', 88);INSERT INTO sc (Sno, Cno, Grade) V ALUES('200215122', '2', 90);INSERT INTO sc (Sno, Cno, Grade) V ALUES('200215122', '3', 80);-- ------------------------------------------------------------ 表的结构'student'--CREATE TABLE student (Sno char(9) NOT NULL,Sname char(20) DEFAULT NULL UNIQUE,Ssex char(2) DEFAULT NULL,Sage smallint DEFAULT NULL,Sdept char(20) DEFAULT NULL,PRIMARY KEY (Sno),)---- 转存表中的数据'student'--INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES('200215121', '李勇', '男', 20, 'CS');INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES('200215122', '刘晨', '女', 19, 'CS');INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES('200215123', '王敏', '女', 18, 'MA');INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES('200215125', '张立', '男', 19, 'IS');INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept) V ALUES('200215128', '陈冬', '男', 18, 'IS');---- 限制表'course'--ALTER TABLE courseADD CONSTRAINT course_ibfk_1 FOREIGN KEY (Cpno) REFERENCES course (Cno);---- 限制表'sc'--ALTER TABLE scADD CONSTRAINT sc_ibfk_1 FOREIGN KEY (Sno) REFERENCES student (Sno); ALTER TABLE scADD CONSTRAINT sc_ibfk_2 FOREIGN KEY (Cno) REFERENCES course (Cno);2.创建数据库服务器的登录名u1~u7,服务器角色为空,数据库访问许可增加对前上一步建立的DB的访问权。

(1)建立用户u1~u7;在SQL的企业管理器中,在DB下的安全性目录下选择新建登录名,分别创建用户u1~u7。

(2)增加对DB的访问权;将创建完的用户u1~u7属性中的数据库访问内,在对DB的访问权打上勾。

如下所示:可得到最后界面如下:3.以sa用户(DBA)登录,运行教材上4.2.4中的例1~例7对7个新用户授权。

每运行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。

注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出在SQL 2000中的权限授予与回收命令语句。

【例1】把查询student表的权限授给用户u1。

GRANT SELECTTO u1;执行完授权语句后,用u1登录,验证其是否已有查询权利。

重新连接数据库,登录界面如下:用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。

【例2】把对student表和course表的全部操作权限授予用户u2和u3。

GRANT ALL PRIVILEGESON studentTO u2,u3;GRANT ALL PRIVILEGESTO u2,u3;执行完授权语句后,用u2登录,验证其是否已有所有权利。

用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。

说明u2已具有了对student表和SC表的所有权限。

同u2一样,u3也已具有了对student表和SC表的所有权限。

【例3】把对表SC的查询权限授予所有的用户。

GRANT SELECTON SCTO PUBLIC;【例4】把查询student表和修改学生学号的权限授予用户u4。

GRANT UPDATE(Sno),SELECTON studentTO u4;执行完授权语句后,用u4登录,验证其是否已有相应权利。

用u4登录后,执行一条SELECT命令和一条UPDATE命令,显示了查询结果如下所示,说明u4已具有了对student表的查询权限,和对学生学号的修改权限。

【例5】把对表SC的insert权限授予u5用户,并允许将此权限再授予其他用户。

GRANT INSERTON SCTO u5WITH GRANT OPTION;执行完授权语句后,用u5登录,验证其是否已有相应权利。

执行完INSERTINTO SC(Sno,Cno)V ALUES(‘200215128’,’1’)INSERTINTO SC(Sno,Cno)V ALUES(‘200215128’,’3’)语句后,由于在例3中把对表SC的查询权限授予所有的用户,所以通过查询命令显示结果如下:【例6】用户u5可以将此权限授予u6GRANT INSERTON SCTO u6WITH GRANT OPTION;【例7】u6可以将此insert权限授予u7。

相关文档
最新文档