数据库实验三 安全管理
实验--数据库安全性管理

北华航天工业学院《数据库原理与应用》实验报告报告题目:_______ 数据库安全性管理__________ 作者所在系部:计算机作者学号:201322542作者所在专业:—软件工程____________________作者姓名:魏志鹏指导教师姓名:贾振华完成时间:2015.5.20北华航天工业学院教务处制数据库安全性管理1、2理解数据库的安全性机制;掌握SQL Server 2008的验证模式、登录管理、用户管理、角色管理以及权限管理;_ 、实验内容(一)附加上次实验所创建的数据库“db_Library ”,并回顾该库的数据表信息。
(二)设置SQL Server的安全验证模式,并以两种方式尝试登录。
(三)登录账户管理1、在当前Windows系统中新建一个用户Test,密码为secret,然后以管理员身份登录SQL Server,并将该系统用户添加为登录用户,并赋予系统管理员的权限。
然后以该用户身份登录SQL Server。
2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。
创建完成后,以该账户来进行登录。
3、使用SQL语句来修改上述登录账户的密码。
4、禁用上述登录账户连接SQL Server,并进行验证。
5、设置上述登录账户为数据库创建者的权限。
(四)数据库用户管理1、使用SSMS添加db_Library数据库用户User1,其登录账户为上题所创建的Windows账户,使用默认dbo架构。
2、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server 登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。
(五)权限管理1、使用SSMS将创建数据表和创建视图的权限授予User2。
2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。
数据库的安全管理

数据库的安全管理实验名称:数据库的安全管理实验需求:一.关闭危险地存储过程二.禁用不必要的协议三.修改SA密码实验过程:一.关闭危险地存储过程1.使用SAC(外围应用配置器)打开xp_cmdshell功能2,执行以下代码二.禁用不必要的协议打开SQL server Configuratio Manager配置管理器三:修改SA密码打开安全文件夹右击选择属性在用户属性窗口,可以重新输入SA的密码重新使用SA登陆,确认密码修改成功。
知识小结:1.删除不必要的存储过程是因为有些存储过程很容易被人利用,利用提升权限或进行破坏。
重要的存储过程有注册表类、文件操作类、进程管理类、任务管理类。
2.默认情况下,所有对安全又严格规定的公司都会要求在数据库上禁用没有必要的协议,在SQL server上主要是通过配置管理器来完成这项工作,它具有以下功能:禁用不需要的协议减少监听的网卡和IP地址改变监听端口号3.SA是SQL server默认的超级管理员,所以一定要确保SA密码的安全性。
大多数安全系统中弱的管理员密码是最关键的漏洞。
所以对于SA密码,长度至少8位,并且满足密码复杂性要求。
如果有必要,可以修改SA的有户名。
4. 设置C2级别数据审核如果希望更加严密的审核跟踪,可以启C2审核跟踪,C2是一个政府安全级别,它保证系统能够保护资源并具有足够的审核能力。
C2模式会监听对所有数据库实体的所有访问企图。
5.数据加密SQL Server数据加密概述在网络上发表报表、处理数据都会发生一些严重的安全问题。
网络最大的担忧在于有人可以拦截通信信号并捕捉数据。
所以最好要对数据信息进行加密传输。
保证数据安全性。
实现步骤如下:对SQL Server表信息实施加密创建证书建立测试用表使用加密函数测试数据提取加密的数据解密加密后的数据6.定期安装补丁时刻注意程序补丁。
程序的发布、更新都会引入新的问题,使用程序补丁是防止外界干扰和保护数据的最好和最容易的方法。
实验三数据库安全性实验报告

实验三数据库安全性实验报告第一篇:实验三数据库安全性实验报告一实验目的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最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。
数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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. 数据库安全实验:通过实际操作和实验,验证数据库安全措施的有效性,包括对数据库的访问控制、数据加密、安全审计等方面的实验。
三、实验结果通过实验研究,我们发现了一些数据库安全方面的问题,并提出了一些解决方案。
例如,通过加强访问控制和权限管理,可以有效防止未经授权的访问;通过数据加密技术,可以保护数据库中的敏感信息不被泄露;通过安全审计和监控,可以及时发现数据库安全事件并进行处理。
四、结论数据库安全是信息系统安全的重要组成部分,需要引起足够的重视。
通过本次实验的研究和实践,我们对数据库安全有了更深入的理解,也掌握了一些保护数据库安全的实用技术和方法。
希望通过我们的努力,能够提高数据库的安全性和可靠性,保护数据不受到侵害。
总之,数据库安全实验报告的研究和实验对于提高数据库的安全性和可靠性具有重要的意义,也为信息安全领域的发展做出了一定的贡献。
希望我们的研究成果能够对相关领域的研究和实践提供一定的参考和借鉴。
数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验南京晓庄学院《数据库原理与应⽤》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号::1.实验⽬的(1)理解SQL Server 2005常⽤数据类型和表结构的设计⽅法。
理解主键、外键含义,掌握建⽴各表相关属性间参照关系的⽅法。
(2)熟练掌握使⽤SQL Server Management Studio图形⼯具创建表,删除表,修改表结构,插⼊及更新数据的⽅法。
(3)熟练掌握使⽤Transact-SQL语句创建表,删除表,修改表结构,插⼊及更新数据的⽅法。
2.实验要求基本实验:(1)在实验⼆所创建的“TM”数据库中合理设计以下各表逻辑结构:学⽣信息(学号,,性别,籍贯,出⽣⽇期,民族,学院/系别号,班级号)课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时)学习信息(学号,课程号,考试成绩,平时成绩)院系信息(院系号,院系名称)要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2)依据你所设计的表结构,使⽤SQL Server Management Studio图形⼯具在“TM”数据库中创建学⽣信息表和课程信息表,并试验在图形界⾯中修改表结构,删除数据表,输⼊并更新数据的⽅法。
(3)依据你所设计表结构,使⽤Transact-SQL语句创建学习信息表和院系信息表,并试验使⽤T-SQL语句修改表结构,删除数据表,插⼊和更新数据的⽅法。
(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引⽤完整性约束。
(5)按要求完成实验报告。
扩展实验:(1)在“TM”数据库中补充设计以下各表结构:教师信息(教师号,,性别,出⽣⽇期,学历,学位,⼊职时间,职称,院系号)授课信息(教师号,课程号,学期)班级信息(班级号,班级名称,专业号)专业信息(专业号,专业名称,学制,学位)图书信息(图书号,书名,作者,,出版⽇期,册数,价格,分类)借书偏息(学号,图书号,借出时间,归还时间)奖励信息(学号,奖励类型,奖励⾦额)(2)设计并实现各表之间相关属性的参照关系。
数据库系统实验报告 实验三 数据控制(安全性)

可得到最后界面如下: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课时)实验目的:⏹理解数据库安全性概念,熟悉数据库安全性控制技术⏹掌握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))实验报告专业:计算机科学与技术课程:数据库系统原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三安全管理
一、实验目的
1.掌握SQL Server安全控制的两种模式
2.学会管理SQL Server登录账号、数据库用户、各种权限3.学会使用角色管理用户及权限
二、实验内容
1.用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2和log3。
Log2 、log3建立如同上图
2.利用实验一建立的“教师授课管理数据库”,用log1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中“教师授课管理数据库”?为什么?
可以看到。
因为所用的数据库服务器名称是一样的,所以该数据库服务器上的数据库就可以看到,但是没有访问权限。
3.将log1、log2和log3映射为“教师授课管理数据库”中的用户,用户名同登录名。
Log2 、log3建立如同上图
4.再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表中是否能看到并选中“教师授课管理数据库”?为什么?答:可以看到,因为给其设置了访问权限。
5.用log1用户在“教师授课管理数据库”中执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能成功。
因为LOG1没有对课程
6.授予log1具有对课程表的查询权限,授予log2具有对课程表的插入权限。
答:
对log2设置插入权限时只需将Insert权限的授予选中即可。
7.在SSMS中,用log2建立一个新的数据库引擎查询,执行下述语句(根据自建数据库修改表名、列数等),能否成功?为什么?
INSERT INTO 课程表VALUES(‘C001’,’数据库基
础’,4)
答:可以,因为给予其插入权限,所以可以插入新内容。
再执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能成功。
因为log2没有查询权限。
8.在SSMS中,在log1建立的数据库引擎查询中,再次执行语句:
SELECT * FROM 课程表
答:可以成功。
因为授予log1查询权限了。
这次能否成功?但如果执行下列语句:
INSERT INTO 课程表VALUES(‘C003’,’软件工程’,4)
能否成功?为什么?
答:不能成功。
因为log1没有查询权限。
9.授予log3在“教师授课管理数据库”中具有建表权限。
10.在“教师授课管理数据库”中建立用户定义的角色SelectRole,并授予该角色对教师表、课程表和授课表具有
查询权。
11.新建立一个SQL Server身份验证模式的登录名:pub_user,并让该登录名成为“教师授课管理数据库”中的合法用户。
答:该操作和LOG1的操作相同,先建立SQL Server身份验证模式的登录名:pub_user,然后设置“教师授课管理数据库”为其默认数据库。
12.在SSMS中,用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能,因为pub_user没有查询权限。
13.将pub_user用户添加到SelectRole角色中。
14.在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:可以。
因为SelectRole角色对教师表、课程表和授课表具有查询权,将pub_user添加在SelectRole角色中,
pub_user就有了查询权,就可以查询了。