201509-实验三:数据库的安全性课案
实验三数据库安全性实验报告
实验三数据库安全性实验报告第一篇:实验三数据库安全性实验报告一实验目的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最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。
数据库安全性及完整性 实验报告
以U7的身份进入查询分析器,进行对Student表的DELETE权限测试。
DELETEFROM "S-C".STUDENT
WHERE SNO='200215128';
SELECT * FROM "S-C".STUDENT;
例4.13减少角色R1对Student表的select权限
实验报告
课程名称:数据库系统概论
学院:工程学院
专业:
年级:班级:
姓名:学号:
指导教师:
年月日
教务处制
实验名称:
数据库安全性及完整性
时间:2015-12-17
地点:三教205机房
班组:
教师评语
成绩
教师签名
实验报告
1实验目的
1.熟悉通过SQL对数据进行安全性控制。
2实验工具KingbaseES
KingbaseES及其交互式查询工具ISQLW。
GRANT R1TO U7;
以U7的身份进入查询分析器,对Student表进行查询
SELECT *FROM "S-C"."STUDENT";
也可以一次性地通过R1来收回U7的这三个权限。
以system的身份进入查询分析器,一次性地通过R1来收回U7的这三个权限。
REVOKE R1
FROM U7;
以U7的身份进入查询分析器,对Student表进行查询
5.可以看用户手册研究企业管理器的更多功能,还有kingbase的其它各种功能。
GRANT SELECT
ON TABLE "S-C"."SC"
TO PUBLIC;
数据库系统原理实验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:数据库的安全性和完整性实验目的及要求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)回收李勇、张新的权限。
数据库的完整性和安全性上机实验报告
程
及
(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)回收李勇、张新的权限,调试过程如下图:。
数据库安全课程设计
数据库安全课程设计一、课程目标知识目标:1. 理解数据库安全的基本概念,掌握数据库安全的技术原理;2. 学会使用数据库管理系统(DBMS)进行安全设置,确保数据完整性、机密性和可用性;3. 掌握常见数据库安全漏洞及其防范方法;4. 了解我国数据库安全相关法律法规及合规要求。
技能目标:1. 能够运用所学知识对数据库进行安全风险评估;2. 熟练运用数据库安全防护技术,提高数据库安全性;3. 掌握数据库安全审计和监控方法,提高数据库安全事件应对能力;4. 能够针对不同场景设计合理的数据库安全策略。
情感态度价值观目标:1. 培养学生的安全意识,使其认识到数据库安全的重要性;2. 培养学生的团队协作精神,提高沟通与表达能力;3. 增强学生的法律意识,使其遵循我国相关法律法规,养成良好的职业素养;4. 激发学生学习兴趣,培养自主学习和持续学习的习惯。
课程性质:本课程为实践性较强的学科,要求学生在掌握理论知识的基础上,能够将所学应用于实际操作中。
学生特点:学生具备一定的数据库基础知识,但对数据库安全方面了解较少,需要从基础知识入手,逐步提高。
教学要求:结合课本内容,注重理论与实践相结合,通过案例分析和实际操作,使学生掌握数据库安全的相关知识和技能。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. 数据库安全概述- 数据库安全的重要性- 数据库安全的基本原则- 国内外数据库安全发展现状2. 数据库安全技术与策略- 访问控制技术- 加密技术- 安全审计与监控- 数据库安全防护策略3. 常见数据库安全漏洞与防范- SQL注入- 数据库权限滥用- 数据泄露- 防范措施及案例分析4. 数据库安全法律法规与合规要求- 我国数据库安全相关法律法规- 数据库安全合规要求- 数据库安全合规实践5. 数据库安全风险评估与应对- 数据库安全风险评估方法- 风险评估工具与实施- 数据库安全事件应对与处理6. 数据库安全实践操作- 数据库安全配置与优化- 安全防护工具的使用- 案例分析与实战演练教学内容安排和进度:1. 第1周:数据库安全概述2. 第2-3周:数据库安全技术与策略3. 第4-5周:常见数据库安全漏洞与防范4. 第6周:数据库安全法律法规与合规要求5. 第7周:数据库安全风险评估与应对6. 第8周:数据库安全实践操作教学内容与课本关联性:本教学内容依据教材相关章节,结合学生实际情况,注重理论与实践相结合,旨在帮助学生系统地掌握数据库安全知识。
数据库原理实验报告-数据库的安全性
实验题目三数据库的安全性
一、实验目的
熟悉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 中的登录名、用户、服务器角色、数据库角色。
数据库完整性与安全性实验
1. 实验五数据库完整性与安全性实验实验目的1.通过对完整性规则的定义实现,熟悉了解Mysql中完整性保证的规则和实现方法,加深对数据完整性的理解。
2.通过对安全性相关内容的定义,熟悉了解Mysql中安全性的内容和实现方法,加深对数据库安全性的理解实验内容完整性实验(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;(4)删除学生表中的所有数据,验证参照完整性约束;(5)定义存储过程,完成查询某个学生的选课情况,并执行。
(6)定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其进行测试。
(7)用sql完成以上操作。
安全性实验(1)定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限;(2)分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;(3)再次用此用户访问学生数据库,并对其中的学生表数据进行修改。
(4)用SQL语句分别完成以上内容。
实验环境Window8操作系统Mysql 8.0版本数据库Mysql workbench 8.0可视化工具Mysql命令行编辑器实验步骤及结果分析完整性1.1.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表添加外键。
实验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));。
试验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 数据库安全性与完整性控制实验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掌握学习SQ1Server2005身份验证模式。
2.掌握管理数据库的登录。
3.了解注册、启动、停止SQ1SerVer服务器。
二、课时分配4项目共3个任务,安排4课时。
三、教学重点通过本项目的学习,让学生了解学习安全身份验证中的Windows身份验证和SQ1SerVer身份验证,以及掌握验证模式的设置,学会访问许可确认;管理SQ1Server登录账号、用户账号管理、角色管理、;创建服务器组中的服务器注册与连接以及服务器启动、暂停和停止、服务器配置选项设置。
四、教学难点1掌握管理数据库的登录。
5.学习SQ1Server2005身份验证模式。
6.了解注册、启动、停止SQ1SerVer服务器。
五、教学内容任务十三SQ1Server2005身份验证模式SQ1Server提供了既有效又容易的安全管理模式,这种安全管理模式是建立在安全身份验证和访问许可两者机制上的。
一、安全身份验证安全身份验证用来确认登录SQ1SerVer的用户的登录账号和密码的正确性,由此来验证该用户是否具有连接SQ1SerVer的权限。
任何用户在使用SQ1Server数据库之前,必须经过系统的安全身份验证。
SQ1Server2005提供了两种确认用户对数据库引擎服务的验证模式:1.Windows身份验证SQ1Server数据库系统通常运行在Windows服务器上,而Windows作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,因此,WindoWS验证模式正是利用了这一用户安全性和账号管理的机制,允许SQ1SerVer可以使用Windows的用户名和口令。
在这种模式下,用户只需要通过Windows的验证,就可以连接到SQ1SerVer。
2.SQ1Server身份验证SQ1Server身份验证模式允许用户使用SQ1Server安全性连接到SQ1Server0在该认证模式下,用户在连接SQ1SerVer时必须提供登录名和登录密码,这些登录信息存储在系统表SyS1oginS中,与WindOWS的登录账号无关。
实验三、数据库安全性(目的、要求和模板)
实验三:数据库的安全性一、实验目的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 事件、架构等。
201509-实验三:数据库的安全性课案(word文档良心出品)
实验三:数据库的安全性一、实验目的熟悉通过SQL对数据进行安全性控制。
二、实验平台SQL Server 2008三、实验内容和要求1、掌握Windows登录名和SQL SERVER登录名的建立与删除方法;2、掌握数据库用户创建与管理的方法;3、掌握服务器角色的用法;4、掌握数据库权限授予、拒绝和撤销的方法;四、实验步骤(一)授权与回收。
[例1]授权。
在SQL Sever 中建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。
1)建立用户U1、U2、U3、U4、U5、U6、U7。
2)以系统管理员身份对这7个用户进行授权。
[例1-1]把查询Student 表的权限授给用户U1。
GRANT SELECTON StudentTO U1;[例1-2]把对Student 表和Course 表的全部操作权限授予用户U2 和U3。
GRANT ALL PRIVILEGESON StudentTO U2,U3;GRANT ALL PRIVILEGESON CourseTO U2,U3;[例1-3]把对表SC 的查询权限授予所有用户。
GRANT SELECTON SCTO PUBLIC;[例1-4]把查询Student 表和修改学生学号的权限授给用户U4。
GRANT UPDATE (Sno) , SELECTON StudentTO U4;[例1-5]把对表SC 的INSERT 权限授予U5,并允许U5 将此权限再授予其他用户。
GRANT INSERTON SCTO U5WITH GRANT OPTION;[例1-6]用户U5 将对表SC 的INSERT 权限授予U6,并允许将权限转授给其他用户。
首先应该以U5 的身份重新登录数据库,然后再进行授权。
GRANT INSERTON SCTO U6WITH GRANT OPTION;[例1-7]用户U6 将对表SC 的INSERT 权限授予U7。
首先应该以U6 的身份重新登录数据库,然后再进行授权。
实验报告3 数据库安全性的设计与实现
执行过程
执行结果:
删除成功
例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数据库管理系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:数据库的安全性一、实验目的熟悉通过SQL对数据进行安全性控制。
二、实验平台SQL Server 2008三、实验内容和要求1、掌握Windows登录名和SQL SERVER登录名的建立与删除方法;2、掌握数据库用户创建与管理的方法;3、掌握服务器角色的用法;4、掌握数据库权限授予、拒绝和撤销的方法;四、实验步骤(一)授权与回收。
[例1]授权。
在SQL Sever 中建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。
1)建立用户U1、U2、U3、U4、U5、U6、U7。
2)以系统管理员身份对这7个用户进行授权。
[例1-1]把查询Student 表的权限授给用户U1。
GRANT SELECTON StudentTO U1;[例1-2]把对Student 表和Course 表的全部操作权限授予用户U2 和U3。
GRANT ALL PRIVILEGESON StudentTO U2,U3;GRANT ALL PRIVILEGESON CourseTO U2,U3;[例1-3]把对表SC 的查询权限授予所有用户。
GRANT SELECTON SCTO PUBLIC;[例1-4]把查询Student 表和修改学生学号的权限授给用户U4。
GRANT UPDATE (Sno) , SELECTON StudentTO U4;[例1-5]把对表SC 的INSERT 权限授予U5,并允许U5 将此权限再授予其他用户。
GRANT INSERTON SCTO U5WITH GRANT OPTION;[例1-6]用户U5 将对表SC 的INSERT 权限授予U6,并允许将权限转授给其他用户。
首先应该以U5 的身份重新登录数据库,然后再进行授权。
GRANT INSERTON SCTO U6WITH GRANT OPTION;[例1-7]用户U6 将对表SC 的INSERT 权限授予U7。
首先应该以U6 的身份重新登录数据库,然后再进行授权。
GRANT INSERTON SCTO U7;3)在授权之后验证用户是否拥有了相应的权限。
在执行完上面七个语句之后,我们可以分别以不同用户的身份登录数据库,进行相关操作,检查系统是否许可。
例如:[例1-8]U4 更新Student 表的学生学号。
UPDATE StudentSET SNO = ‘95101’WHERE SNO = ‘95001’;显示更新 1 条记录,即U4 用户拥有了对Student 表Sno 的更新权限。
[例1-9]U7 向SC 表中插入一条数据:(95020,20,88)。
INSERT INTO SC V ALUES(‘95020’,’20’,88);显示插入 1 条记录,即用户U7 拥有了对SC 表的插入权限。
[例2]回收权限。
将[例1]授予的权限部分收回,检查回收后,该用户是否真正丧失了对数据的相应权限。
1)回收权限。
[例2-1]收回用户U4 修改学生学号的权限。
当前用户为SYSTEM,直接执行下列语句:REVOKE UPDATE (SNO)ON StudentFROM U4;[例2-2]收回所有用户对表SC 的查询权限。
REVOKE SELECTON SCFROM PUBLIC;[例2-3]收回用户U5 对SC 表的INSERT 权限。
将权限INSERT 授予给用户U5 时,允许该用户将权限再授予给其他用户;之后,用户U5 将INSERT 权限转授给了U6,U6 又将权限转授给U7。
因此,将用户U5 的INSERT 权限收回的时候必须级联收回,不然系统将拒绝执行该命令:REVOKE INSERTON TABLE SCFROM U5 CASCADE;执行该命令之后,U6 从U5 处获得的权限也将被收回,U7 从U6 处获得的权限也将同时被收回。
2)在回收权限之后验证用户是否真正丧失了该权限。
[例2-4]用户U3 查询表SC。
首先用户U3 重新登录数据库TEST。
执行命令:SELECT *FROM SC;执行失败,该用户不拥有此权限。
证实用户U3 丧失了对表SC 查询的权限。
[例2-5]用户U6 向表SC 中插入一条记录(‘95035’,’3’,92)。
首先用户U6 重新登录数据库TEST。
执行命令:INSERT INTO SC V ALUES(‘95035’,’3’,92);执行失败,该用户不拥有此权限。
证实用户U6 丧失了从用户U5 处获得的对表SC 插入的权限。
(二)数据库角色。
[例3]角色的创建与授权。
[例3-1]创建角色G1。
CREATE ROLE G1;[例3-2]给角色授权,使得角色G1 拥有对Student 表的SELECT、UPDATE、INSERT 的权限。
GRANT SELETE,UPDATE,INSERTON STUDENTTO G1;[例3-3]将用户U1,U3,U7 添加到角色G1 中来。
EXEC sp_addrolemember ‘G1’,’u1’EXEC sp_addrolemember ‘G1’,’u2’EXEC sp_addrolemember ‘G1’,’u3’将U1,U3,U7 添加到角色G1 中之后,U1,U3,U7 就拥有了G1 拥有的所有权限,即对Student 表的SELECT、UPDATE、INSERT 的权限。
[例3-4]对角色G1 的权限进行修改,增加对Student 表的DELETE 权限,并回收对Student表的INSERT 权限。
GRANT DELETEON STUDENTTO G1;REVOKE INSERTON STUDENTFROM G1;[例3-5]删除角色G1。
DROP ROLE G1;五、实验任务利用实验二建立的students数据库和其中的student、course、sc表,完成下列操作:1、建立SQL Server身份验证模式的登录账户:log1、log2和log3;(命令方式创建)CREATE LOGIN log1WITHPASSWORD='821742'GOCREATE LOGIN log2WITHPASSWORD='821742'GOCREATE LOGIN log3WITHPASSWORD='821742'GO2、用log1新建一个数据库引擎查询,这时在“可用数据库”下列列表框中是否能选中students数据库?为什么?3、将log1、log2和log3映射为students数据库中的用户,用户名同登录名;(命令方式创建)USE studentsGOCREATE USER log1FOR LOGIN log1USE studentsGOCREATE USER log2FOR LOGIN log2USE studentsGOCREATE USER log3FOR LOGIN log34、在log1建立的数据库引擎查询中,在“可用数据库”下列列表框中选中students 数据库,是否成功?为什么?能,因为授予了权限。
5、在log1建立的数据库引擎查询中,执行下述语句,能否成功?为什么?select * from course不能,因为Log1所在的数据库没有赋予查询权限。
6、授予log1具有course表的查询权限,授予log2具有course表的插入权限;7、用log2建立一个数据库引擎查询,然后执行下述两条语句,能否成功?为什么?Insert into course values(‘c101’,’java’,2,3)Insert into course values(‘c102’,’操作系统’,4,4)能,因为Log2赋予了插入权限。
再次执行下述语句,能否成功?为什么?select * from course不能,因为log2只有插入的权限,没有查询权限。
8、在log1建立的数据库引擎查询中,再次执行下述语句:select * from course这次能否成功?为什么?能,因为log1赋予的是查询功能。
让log1执行下述语句,能否成功?为什么?Insert into course values('c103','软件工程',4,6)不能,因为Log1所在的数据库没有赋予查询权限。
9、在students数据库中建立用户角色:role1,并将log1和log2添加到此角色中。
10、授予role1角色具有course表的插入、删除和查询权限;11、在log1建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?Insert into course values(‘c103’,’软件工程’,4,6)不能,因为Log1所在的数据库没有赋予查询权限。
12、在log2建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?select * from course不能,因为Log2所在的数据库没有赋予查询权限。
13、用log3建立一个数据库引擎查询,并执行下述语句,能否成功?为什么?select * from course不能,因为Log3所在的数据库没有赋予查询权限。
14、将log3添加到db_datareader角色中,并在log3建立的数据库引擎查询中再次执行下述语句,能否成功?为什么?select * from course15、在log3建立的数据库引擎查询中,执行下述语句,能否成功?为什么?Insert into course values(‘c104’,’C语言’,3,1)不能,因为Log3所在的db_datareader角色中没有赋予查询权限。
16、在students数据库中,授予public角色具有course表的查询和插入权限;17、在log3建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?Insert into course values(‘c104’,’C语言’,3,1)能,因为log3所属的public角色被赋予了插入权限。