实验七《数据的安全性》
- 格式:doc
- 大小:618.50 KB
- 文档页数:16
云计算平台安全性评估实验报告引言:“云计算”是近年来信息技术领域的一个重要概念,对于企业和个人而言都具有巨大的意义。
然而,随着云计算平台的快速发展,安全性问题逐渐备受关注。
为了全面了解云计算平台的安全性,本实验报告通过对云计算平台安全性进行评估实验,系统地分析了其安全性的问题与挑战,并在实验的基础上提出了相应的解决方案。
一、实验背景云计算平台的安全性问题不容忽视,它涉及到用户数据的隐私保护、系统漏洞的防范、恶意攻击的检测与抵御等方面。
因此,评估云计算平台的安全性显得至关重要。
二、实验目的本实验旨在评估云计算平台的安全性,包括但不限于以下几个方面:1. 用户数据的隐私保护能力;2. 系统漏洞的防范与修复能力;3. 恶意攻击的检测与抵御能力。
三、实验方法为了评估云计算平台的安全性,本实验采用了以下方法:1. 收集云计算平台的安全防护措施和技术规范;2. 搭建实验环境,模拟实际云计算平台;3. 运用各种合法手段进行安全性测试,包括主动攻击、被动嗅探等;4. 分析实验结果,评估云计算平台的安全性。
四、实验过程1. 收集资料:通过研究相关文献和标准,了解云计算平台的安全防护要求和技术规范;2. 搭建实验环境:根据收集到的资料,搭建具有云计算平台特征的实验环境;3. 安全性测试:利用常见的安全测试工具和方法,对云计算平台进行全面测试;4. 数据分析:收集测试数据,根据实验结果进行数据分析和安全性评估。
五、实验结果与讨论1. 用户数据的隐私保护能力评估:通过对云计算平台的隐私保护措施和加密算法的评估,发现当前的云计算平台在数据隐私保护方面存在着一定的薄弱环节,需要进一步完善;2. 系统漏洞的防范与修复能力评估:通过模拟典型攻击手段对云计算平台进行测试,发现其在漏洞检测和修复方面存在一定的不足,应加强对系统漏洞的及时监测和修复工作;3. 恶意攻击的检测与抵御能力评估:通过模拟各类恶意攻击对云计算平台进行测试,发现其在恶意攻击的检测与抵御方面表现出一定的能力,但仍需要进一步提升。
实验7 数据库安全性策略一、实验目的1.掌握使用SQL语句进行数据库完全备份的办法2.掌握使用客户端程序进行完全备份的方法3.掌握数据库用户账号的建立与删除方法4.掌握数据库用户权限的授予方法二、实验准备1.了解在MySQL Administrator中进行数据库备份操作的方法2.了解数据库安全的重要性3.了解数据库用户账号的建立于删除的方法4.了解数据库用户权限的授予和回收方法三、实验内容及要求1.用SQL语句进行数据库备份和恢复1)备份YGGL数据库中的Employees表到D盘FILE文件夹下,并在执行完成后查看D盘FILE文件夹下是否有Employees.txt文件。
2)先删去Employees表中的几行数据,再使用SQL语句恢复Employees表,执行完成后使用SELECT查看Employees表的变化。
2.使用客户端工具备份和恢复表1)使用mysqldump备份数据库YGGL中的Salary表,并查看是否备份成功。
2)备份整个YGGL数据库,并查看是否备份成功。
3)先删除YGGL数据库中的Employees表,再使用mysql恢复数据库。
4)假设原来的Salary表内容已经备份成Salary.txt文件,如果Salary表中的数据发生了变动,使用mysqlimport恢复表数据。
3.数据库用户1)创建数据库用户user_1和user_2,密码都为1234(假设服务器名为localhost)。
2)将用户user_2的名称修改为user_3。
3)将用户user_3的密码修改为123456。
4)删除用户user_3。
5)以user_1用户身份登陆MySQL。
6)刚刚创建的用户有什么样的权限。
7)创建一个用户,并以该用户的身份登录。
4.用户权限的授予与收回1)授予用户user_1对YGGL数据库Emlpoees表的所有操作权限及查询操作权限。
2)授予用户user_1对Emlpoees表进行插入,修改,删除操作权限。
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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-->展开键、约束。
#### 实验名称:加密算法设计与实现#### 实验时间:2023年10月15日#### 实验地点:XX大学计算机科学与技术学院实验室#### 实验者:[姓名] [学号]#### 一、实验目的1. 理解并掌握常见的加密算法原理,包括对称加密算法和非对称加密算法。
2. 能够运用所学知识设计并实现简单的加密算法。
3. 通过实验加深对加密算法安全性的认识。
#### 二、实验内容本次实验主要包括以下内容:1. 对称加密算法:DES算法实现。
2. 非对称加密算法:RSA算法实现。
3. 加密算法的安全性分析。
#### 三、实验原理1. 对称加密算法(DES):DES算法是一种基于密钥的加密算法,其密钥长度为56位。
它将64位的明文输入经过16轮迭代,最终生成64位的密文输出。
DES算法的核心是它的密钥生成和迭代加密过程。
2. 非对称加密算法(RSA):RSA算法是一种基于公钥和私钥的非对称加密算法。
它利用了数论中的大数分解难题。
RSA算法包括密钥生成、加密和解密三个过程。
其中,公钥用于加密,私钥用于解密。
#### 四、实验步骤1. DES算法实现:- 实现DES算法的初始化密钥生成。
- 实现DES算法的16轮迭代加密过程。
- 对明文进行加密,生成密文。
2. RSA算法实现:- 实现RSA算法的密钥生成过程。
- 实现RSA算法的加密和解密过程。
- 对明文进行加密,生成密文;对密文进行解密,恢复明文。
3. 加密算法的安全性分析:- 分析DES算法和RSA算法的安全性。
- 比较两种算法的优缺点。
#### 五、实验结果与分析1. DES算法:- 加密速度较快,适合加密大量数据。
- 密钥长度较短,安全性相对较低。
2. RSA算法:- 加密速度较慢,适合加密少量数据。
- 密钥长度较长,安全性较高。
#### 六、实验总结通过本次实验,我们掌握了DES和RSA两种加密算法的原理和实现方法。
在实验过程中,我们深刻认识到加密算法在信息安全中的重要性。
实验七数据库的安全性一、实验目的使学生加深对数据库安全性的理解,并掌握SQL SERVER中有关用户、角色及操作权限的管理方法。
二、实验内容(1)首先创建一个windows登陆用户login,密码为123456,再使用SSMS将windows登录用户增加到SQL SERVER登录账户中,为windows身份验证。
(2)使用SSMS查看登录账户login。
(3)使用SSMS为登录账户login创建数据库用户login。
(4)使用SSMS为登录账户login创建与管理服务器角色。
(5)使用SSMS为数据库用户login创建与管理数据库角色。
(6)为数据库用户login创建与删除用户自定义数据库角色。
三、实验过程(1)在windows中,进入“控制面板”的管理工具文件夹,运行“计算机管理”工具,给windows添加账号login进入SQL Server数据库中,双击安全性,右键点击登录名,选择“新建登录名”,单击“搜索”按钮,将刚才创建的Windows账号“login”添加到SQL Serve中,此时在登录名选项下会出现一个新账号“login”。
(2)进入SQL Server数据库,在对象资源管理器中,分别展开“安全性”->“登录名”选项,找到login右键单击,选择属性选项,查看登录账户信息,可以在此修改登录信息,但是不能改变身份验证模式。
(3)打开student数据库,选择“安全性”->“用户”选项,右键单击用户选项,选择“新建用户”(4)打开“安全性”->“服务器角色”选项,选择sysadmin,右键选择属性选项,在属性窗口单击“添加”按钮,单击“浏览”,选择登录用户login,并点击确定。
(5)选择“数据库”->“student”->“安全性”->“角色”->“数据库角色”选项,右键单击“数据库角色”,选择新建数据库角色菜单,如图所示。
在角色名称中输入login,单击添加按钮,为该角色设置角色成员,选择“login”用户。
数据库安全性及数据库编程2、登录mysql服务器Mysql –u username –p二、实验内容及步骤一、查看并了解当前mysql数据库中的用户权限信息表MySQL中的权限表都存放在mysql数据库中。
MySQL5.6以前,权限相关的表有user表、db表、host表、tables_priv表、columns_priv表、procs_priv表(存储过程和函数相关的权限)。
从MySQL5.6开始,host表已经没有了。
在mysql数据库中,授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。
Mysql权限检查从user表到db表再到tables_priv表最后是columns_priv表,它们的权限是逐层细化的。
对于已经通过身份合法性验证的用户的权限读取和分配的机制如下:1.读取uesr表,user表中的普通权限是针对所有数据库的,例如在user表中的select_priv为Y,则对所有数据库都有select权限。
2.读取db表,db表是针对特定数据库中所有表的,通过db表可查看为用户针对哪个数据库分配了对应的权限。
3.读取tables_priv表,针对特定表中所有列的权限。
4.读取columns_priv表,看看对哪些具体的列有什么权限。
步骤一:先使用navicate在mysql数据库中查看当前服务器下所有的用户信息。
查看命令如下所示:use mysql;SELECT * FROM USER;SELECT * FROM DB;…二、创建用户命令语法为:CREATE USER '用户名'[@'主机名'][ IDENTIFIED BY '密码]';步骤二:(1)按照上述创建用户的命令创建用户TEST1,该用户只能通过本机访问数据库,密码为123。
此时主机名为localhost。
用户TEST1创建后使用SELECT语句查看user表的数据。
实验五数据库完整性与安全性实验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中不存在)的学生成绩信息。
数据安全是当今社会中非常重要的一环,因为随着数字化时代的到来,我们越来越多的信息都保存在电脑网络中,这也增大了我们的安全隐患。
而作为一个合格的公民,我们需要对数据安全的保护有一定的理解和掌握,这也需要从小学开始就加强教育普及。
为此,我们需要开展一次数据安全知识教育班会,切实提升学生对数据安全的认知和了解。
一、教学目标通过开展本次数据安全知识教育班会,学生将了解以下内容:1.认识数据安全的重要性和风险;2.学习并掌握几种与数据安全相关的基本概念,如“病毒”、“木马”、“钓鱼网站”、“信息泄露”等等;3.了解一些安全好习惯,如保护个人信息、不打开不熟悉的链接、不随便下载软件等等;二、教学过程1.导入,呈现数据泄露案例(10分钟)由教师呈现一个真实的数据泄露案例。
通过这个案例,建立起学生对数据安全重要性的认识和理解,了解数据泄露的影响及其危害。
2.教授数据安全相关基本概念和风险(30分钟)接下来,根据教材,分别讲解诸如“病毒”、“木马”、“钓鱼网站”、“信息泄露”等等与数据安全相关的基本概念。
让学生从基本概念开始掌握数据安全的知识,并了解相关的安全威胁和风险。
3.制定安全维护计划(30分钟)为了让学生在生活中更好的保护自己的数字信息,让他们根据学习的知识制定一个安全维护计划。
先由教师给出一些示例,学生进行讨论并自己制定计划。
如:(1)不随便相信陌生人发送的信息和邮件。
(2)注意支付宝,微信等金融账户安全问题,避免信息被泄露。
(3)不轻易将个人信息提供给不相识的人或第三方机构。
(4)学会使用防病毒软件、安全卫士等的防护工具去保护自己。
(5)不要随便下喜欢的软件,以免给计算机带来恶意软件。
4.小组互动拓展知识面(10分钟)在安排小组讨论的环节中,以小组为单位为主题,让同学们互动,分享彼此怎样保护自己数据安全的好方法。
鼓励学生积极发言,分享各自的意见和想法,从而拓宽学生对数据安全领域的认识和理解,并能够加深对安全问题的了解。
一、实验目的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 实例连接。
在页脚内容1Windows 身份验证模式或混合模式下,通过Windows NT 4.0 或Windows 2000 用户帐户连接的用户可以使用信任连接。
2. SQLServer的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。
其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。
SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。
Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。
SQL Server 登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。
(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。
徐龙琴、刘双印设计制作实验四数据完整性安全性数据的完整性、安全性实验四实验目的一、掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。
1.SQL Server中有关用户、角色及操作权限的管理方法.掌握2.学会创建和使用规则、缺省。
3.二、实验内容1 数据库的安全性实验,通过SSMS设置SQL Server的安全认证模式.实现对SQL Server的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。
使用Transact-SQL设计规则、缺省、约束和触发器。
三、实验要求.数据的完整性实⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK)列名数据类型长度是否允许为空值N 6 Char 学号N 8 Char 姓名N 性别 Bit1smalldatetime 出生日期 2Char 10 专业名Char 10 所在系Y11char联系电话create database xscjuse xscjcreate table xsqk(学号char(6)not null,姓名char(8)not null,性别bit not null,出生日期smalldatetime,专业名char(10),所在系char( 10),null))11(char联系电话徐龙琴、刘双印设计制作实验四数据完整性安全性课程表(KC)列名数据类型长度是否允许为空值N Char 课程号 3N Char 课程名 2010 Char 教师开课学期 1 TinyintTinyint 1 学时NTinyint学分 1create table kc(课程号char(3)not null,课程cha2nonull,教师char(10),开课学期tinyint,学时tinyint,学分tinyint not null)成绩表(XS_KC)数据类型长度是否允许为空值列名Char N 学号 6Char 课程号N 3Smallint成绩2create table xs_kc(学号char(6)not null, 课程号char(3)not null,)smallint成绩实验四数据完整性安全性徐龙琴、刘双印设计制作⑵数据的实体完整性实验①用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健alter table xs_kcadd primary key(学号,课程号)实验四数据完整性安全性徐龙琴、刘双印设计制作⑶数据的参照完整性实验①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号alter table xs_kcadd constraint FK_KC_ID foreign key (课程号)references kc(课)程号.实验四数据完整性安全性徐龙琴、刘双印设计制作⑷数据的用户定义完整性实验①用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束alter table xsqkadd constraint ch_xsqk_unique unique(姓名))的性别列创建一个检查约束,使得性别的值为男或女XSQK为学生情况表(SSMS②用.实验四数据完整性安全性徐龙琴、刘双印设计制作③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间alter table xs_kcadd constraint ch_grade check(成绩between 0 and 100)60)的学时列创建一个缺省约束,缺省值为KC语句课程表(SSMS④用.实验四数据完整性安全性徐龙琴、刘双印设计制作⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2alter table kcadd constraint default_kc_credit default 2 for学分的格式,并分别将其导入数据库的各个表中:Excel2.将如下数据分别转换成文本数据或.徐龙琴、刘双印设计制作数据完整性安全性实验四):学生情况表(XSQK学号姓名性别出生日期专业所在系联系电话88297147 020101 杨颖 1980-7-20 0 计算机应用计算机88297147 计算机计算机应用 1981-1-15 020102 方露露088297151 1980-2-20 俞奇军 1 信息管理020103 计算机 88297151 胡国强1 1980-11-7 020104 计算机信息管理88297152 020105 1980-7-29 薛冰1 水利工程水利系 88297161 电子商务经济系1981-3-10 020201 0 秦盈飞88297062 电子商务经济系 1980-9-25 0 020202 董含静88297171 电子商务经济系1980-8-7 1 020203 陈伟 88297171房建1980-7-20020204陈新江1水利系实验四数据完整性安全性徐龙琴、刘双印设计制作实验四数据完整性安全性徐龙琴、刘双印设计制作:)KC课程表(.徐龙琴、刘双印设计制作实验四数据完整性安全性课程号课程名教师开课学期学时学分3 计算机原理2 45 101 陈红3 3 102 王颐计算方法 454 60 2 103 操作系统徐格5 3 数据库原理及应用应对刚104 753 网络基础吴江江4 105 456 高等数学孙中文 1 90 1066 英语陈刚107 1 90 5VB赵红韦3108程序设计 70实验四数据完整性安全性徐龙琴、刘双印设计制作实验四数据完整性安全性徐龙琴、刘双印设计制作:)XS_KC成绩表(.徐龙琴、刘双印设计制作数据完整性安全性实验四学号课程号成绩85 020101 10187 020101 102 88 107 020101 58 101 02010263 020102 10276 020104 10755 020202 103 80 108 020202 57 103 02020371020204103实验四数据完整性安全性徐龙琴、刘双印设计制作3. 理解默认值的概念和作用①用语句创建名为Xi_default,值为“计算机系”的默认值create default Xi_default as'计算机系'实验四数据完整性安全性徐龙琴、刘双印设计制作②将默认值Xi_default绑定到学生表中的所在系的属性列上sp_bindefault Xi_default,'xsqk.所在系'③解除学生表所在系的属性列上的默认值sp_unbindefault'xsqk.所在系'④删除默认值Xi_defaultdrop default Xi_default注:创建默认值的格式: create default 默认值名 as ‘默认值'默认值绑定的格式:sp_bindefault 默认值名, <'表名.列名'︱自定义数据类型名称>解除默认值绑定格式:sp_unbindefault <'表名.列名'︱自定义数据类型名称>删除默认值格式:Drop default 默认值名4.理解规则的概念和作用①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6create rule rule_kkxq as@ss in(1,2,3,4,5,6)②将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,'C语言','李方',8,64,4)sp_bindrule rule_kkxq,'kc.开课学期'不能正常执行因为数值8不在规则rule_kkxq所绑定的数据范围内③若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_ kkxq :sp_unbindrule'kc.开课学期'drop rule rule_kkxq注:创建规则的格式: create rule 规则名 as @列名约束条件规则绑定的格式: sp_bindrule 规则名, <'表名.列名'︱自定义数据类型名称>解除规则绑定格式:sp_unbindrule <'表名.列名'︱自定义数据类型名称>删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式①写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。
《数据库原理》实验指导实验7 数据的安全性一、实验目的本实验的目的是通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。
相关知识介绍:SQL Server提供以下四种防线:(1)Windows NT操作系统的安全防线Windows NT的网络管理员负责建立用户组,设置帐号并注册,同时决定不同的用户对不同的系统资源的访问级别。
用户只有拥有了一个有效的Windows NT登录帐号,才能对网络资源进行访问。
(2)SQL Server的运行安全防线SQL Server 通过另外一种帐号设置来创建附加安全层。
SQL Server具有标准登录和集成登录两种用户登录方式,用户只有登录成功,才能与SQL Server 建立一次连接。
(3)SQL Server数据库的安全防线SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问其数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。
(4)SQL Server数据库对象的安全防线SQL Server可以对权限进行管理,SQL的DCL功能保证合法用户即使登陆了数据库也不能进行超越权限的数据操作,即合法用户必须在自己的权限范围内进行数据操作。
二、实验内容(1)在SQL Server Management Studio中设置SQL Server的安全认证模式。
(2)通过图形界面,实现对SQL Server的用户和角色管理。
(3)分别通过SQL Server图形界面和SQL的数据控制功能,设置和管理数据操作权限。
三、实验步骤1.在SQL Server Management Studio中为所属的SQL服务器设置为SQL Server和Windows NT混合安全认证模式。
其步骤如下:(1)在对象资源管理器中,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现服务器对话框。
如图6-1所示,在“选择页”中选择“安全性”。
(2)在“服务器身份验证”中选择“SQL Server和Windows身份验证模式”单选项。
图6-1 服务器属性对话框2.在SQL Server Management Studio中为自己建立一个服务器用户、数据库用户和数据库角色。
(1)在对象资源管理器中展开服务器,用鼠标单击“安全性”文件夹右侧的‘+’,再用鼠标右击“登录名”,在弹出的菜单中选择“新建登录名”选项,则出现新建登录名对话框。
(2)如图6-2所示,选择“选择页”中的“常规”选项,输入登录名(本例为U1),选择SQL Server身份验证,并输入用户口令。
指定此登录名可以访问的数据库(本例选中Test数据库)。
图6-2 新建登录名对话框——常规选项(3)如图6-3所示,选择“选择页”中的“服务器角色”选项,需要确定用户所属的服务器角色,在本例中采用缺省值public即可。
图6-3 新建登录名对话框——服务器角色(4)如图6-4所示,选择“选择页”中的“用户映射”选项,需要确定映射到此登录名的用户,在本例中勾选Test。
数据库角色成员身份选择public。
图6-4 新建登录名对话框——用户映射(5)单击“确定”按钮,即完成了创建登录用户的工作。
(6)按照上述方法创建登录用户U2、U3。
3.登录新建用户。
(1)重新登录SQL Server Management Studio,如图6-5所示,选择“SQL Server身份验证”,用户名为U1,输入用户口令,连接到SQL Server。
图6-5 新建用户登录(2)新建查询,选择Test数据库,在查询编辑窗口中键入SQL查询命令“SELECT * FROM Student”。
运行后,在运行结果窗口得到消息“拒绝了对对象'Student'(数据库'Test',所有者'dbo')的SELECT 权限。
”,可见用户U1没有对Student表的SELECT权限。
4.要将Test数据库的部分操作权限赋予数据库用户U1,有两种方法。
方法一:通过图形界面方式(1)以sa身份进入SQL Server Management Studio,展开服务器,用鼠标单击“数据库”文件夹右侧的‘+’,用鼠标单击Test数据库文件夹右侧的‘+’,用鼠标右击“用户”。
在屏幕右侧的“用户”窗口中选择“U1”项,用鼠标右击,在弹出的菜单中选择“属性”项,则出现数据库用户属性对话框,选择“安全对象”选项,如图6-6所示。
图6-6 数据库用户U1对话框——安全对象选项(2)点击“搜索”按钮,出现“添加对象”对话框,选择“特定对象”,点击“确定”按钮,如图6-7所示。
图6-7 添加权限对象对话框(3)如图6-8所示,在“选择对象”对话框中点击“对象类型”按钮。
图6-8 选择权限对象对话框(4)如图6-9所示,在“选择对象类型”对话框中勾选“表”,然后点击“确定”按钮,返回到“选择对象”对话框。
图6-9 选择权限对象类型(5)如图6-10所示,在“选择对象”对话框中,点击“浏览”按钮,进入“查找对象”对话框。
图6-10 选择权限对象(6)如图6-11所示,在“查找对象”对话框中勾选表Student,然后点击“确定”按钮,再次返回到“选择对象”对话框。
图6-11 查找权限对象(7)如图6-12所示,点击“确定”按钮,返回到安全对象设置对话框。
图6-12 选择权限对象对话框(8)在安全对象设置对话框中,通过勾选dbo.Student对应的权限给用户U1授权。
如图6-13所示,勾选“选择”权限对应的授权框,再点击“确定”按钮,使得用户U1获得Student表的查询权限。
图6-13 授权(9)验证用户U1对Student表的操作权限。
以用户U1的身份登录,在SQL Server Management Studio中新建查询,并在查询编辑区中使用SQL语句查询到Student表中的数据。
但是如果以用户U1的身份查询其他基本表,依然无法查看表中数据。
方法二:通过SQL的数据控制功能对用户U1授权,必须是数据库对象拥有者以上用户授予。
我们可以以系统管理员或sa用户登录。
选择“Test”数据库,在查询编辑区中输入授权语句“GRANT SELECT ON SC TO U1;”,然后执行即可。
5.使用角色来管理数据库权限。
创建角色,使该角色拥有一组权限,然后将角色授予一个指定的用户。
方法一:通过图形界面创建角色R1,使该角色拥SC表的插入、更新权限,然后将角色R1授予指定的用户U1。
(1)在“对象资源管理器”中展开服务器,用鼠标单击“数据库”文件夹右侧的‘+’,用鼠标单击Test数据库文件夹右侧的‘+’,展开数据库文件夹,然后依次展开“安全性”、“角色”。
鼠标右击“数据库角色”,在弹出的菜单中选择“新建数据库角色”项(如图6-14所示),则出现数据库角色属性对话框。
图6-14 新建数据库角色(2)在“选择页”中选择“常规”选项,并在“角色名称”一栏输入R1,如图6-15所示。
图6-15 数据库角色对话框——常规选项(3)赋予角色权限的方法与赋予“数据库用户权限”的方法类似。
在“选择页”中选择“安全对象”选项,如图6-16所示。
图6-16 数据库角色对话框——安全对象选项(4)点击“搜索”按钮,出现“添加对象”对话框,选择“特定对象”,点击“确定”按钮,如图6-17所示。
图6-17 添加权限对象对话框(5)如图6-18所示,在“选择对象”对话框中点击“对象类型”按钮。
图6-18 选择权限对象对话框(6)如图6-19所示,在“选择对象类型”对话框中勾选“表”,然后点击“确定”按钮,返回到“选择对象”对话框。
图6-19 选择权限对象类型对话框(7)如图6-20所示,在“选择对象”对话框中,点击“浏览”按钮,进入“查找对象”对话框。
图6-20 选择权限对象对话框(8)如图6-21所示,在“查找对象”对话框中勾选表SC,然后点击“确定”按钮,再次返回到“选择对象”对话框。
图6-21 查找权限对象对话框(9)如图6-22所示,点击“确定”按钮,返回到安全对象设置对话框。
图6-22 选择权限对象对话框(10)在安全对象设置对话框中,通过勾选dbo.SC对应的权限给角色R1授权。
如图6-23所示,勾选“选择”权限对应的授权框,点击“确定”按钮,使得角色R1获得SC表的插入和修改权限。
图6-23 角色授权(11)如图6-24所示,在“选择页”中选择“常规”选项,点击“添加”按钮,实现将角色R1授予用户。
图6-24 角色赋予用户(12)如图6-25所示,在“选择数据库用户或角色”对话框中,点击“浏览”按钮,进入“查找对象”对话框。
图6-25 选择数据库用户或角色对话框(13)如图6-26所示,在“查找对象”对话框中勾选U1,点击“确定”按钮返回。
图6-26 选择被授权用户对话框(14)如图6-27所示,点击“确定”按钮完成授权,实现把角色R1授予用户U1。
图6-27 完成角色授权(15)验证用户U1的操作权限。
以用户U1的身份登录,在SQL Server Management Studio中新建查询,并在查询编辑区中使用SQL语句,验证用户U1的操作权限。
方法二:通过SQL的数据控制功能对角色授权,必须是数据库对象拥有者以上用户授予。
我们可以以系统管理员或sa用户登录SQL Server Management Studio。
创建角色R2,使该角色拥Student表的SELECT、INSERT权限,然后将角色R2授予指定的用户U2和U3。
1)在平台中使用语句sp_addrole @rolename='角色名'创建角色R2;2)用GRANT语句为角色R2赋予Student表的SELECT、INSERT权限;3)在查询分析器中使用语句sp_addrolemember '角色名','用户名'将角色授予指定的用户。
6.分别以用户U1,U2,U3的身份进入数据库,实现权限内的操作和权限外的操作,看看会得到什么结果?附录:实验7 数据库安全性基本权限表。