数据库原理实验报告s8数据库安全性.doc_第1页
数据库原理实验报告s8数据库安全性.doc_第2页
数据库原理实验报告s8数据库安全性.doc_第3页
数据库原理实验报告s8数据库安全性.doc_第4页
数据库原理实验报告s8数据库安全性.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库管理系统SQL Server实验报告实验8 数据库安全性实验日期和时间:2014/11/05实验室:2栋实验楼班级:12计科4学号:20123569姓名:施文君实验环境:硬件:Windows 7旗舰版( 32位/ DirectX 11 ) ,SQL Server 2005软件:CPU:英特尔 Pentium(奔腾) 双核 T4300 2.10GHz,内存:2 GB ( 海力士 DDR2 800MHz )硬盘:希捷 ST9500325AS ( 500 GB )显卡:ATI Mobility Radeon HD 4570 (M92) ( 512 MB / 华硕 )实验原理:SQL Server 2005数据库的安全性通过以下几个方面得以保证: 网络系统的安全性:这可以通过在网络系统边界安装防火墙系统得以实施。 服务器的安全性:即保证运行SQL Server 2005的服务器本身及其操作系统的安全。 SQL Server 2005的登录安全性:即允许哪些用户登录SQL Server服务器。 数据库的安全性:即规定用户登录SQL Server服务器以后可以使用哪些数据库。 数据库对象的安全性:即规定用户打开某一数据库后,可以操作哪些数据库对象以及怎样操作。实验主要任务:一、创建登录账户:SQL Server 2005的登录安全性(通过修改身份认证方式Windows身份认证和SQL、Windows混合身份认证及在服务器安全性里建立登录名实现)1. 理解Windows身份认证和SQL、Windows身份认证的含义区别,利用SQL管理控制平台建立5个登录账号,创建密码,默认数据库为MASTER,再利用SQL 语句创建3个登录账号,创建密码。如:create login s20120001 WITHPASSWORD =S123_456(登录账号建议使用本班学生的学号,密码用强密码方式)。然后用其中的登录账户进入系统。2. 删除一个登录账号3. 查看各服务器角色的含义并为所创建的登录账号分配服务器角色。(服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是SQL Server内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。SQL Server提供的固定服务器角色,其具体含义如下: 系统管理员(sysadmin):可以在数据库引擎中执行任何活动。默认情况下,Windows BUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。 服务器管理员(Serveradmin):可以更改服务器范围的配置选项和关闭服务器。 磁盘管理员(diskadmin):管理磁盘文件。 进程管理员(processadmin):可以终止在数据库引擎实例中运行的进程。 安全管理员(securityadmin):可以管理登录名及其属性。 安装管理员(setupadmin):可以添加和删除链接服务器,并可以执行某些系统存储过程。 数据库创建者(dbcreator):可以创建、更改、删除和还原任何数据库。 大容量插入操作管理者(bulkadmin):可以执行大容量插入操作)二、管理数据库的用户(通过在不同的数据库里建立用户名,并与相应的任务一所建立的服务器登录名建立映射关系实现)在数据库中,一个用户或工作组取得合法的登录账户,只表明该账户可以通过Windows认证或SQL Server认证,但并不表明其可以访问数据库和对数据库对象进行某种或某些操作,管理员必须在数据库中为用户建立一个数据库账户,并授予此账户访问数据库及数据库中对象的权限后,才能使该用户访问数据库。一台服务器除了有一套服务器登录帐户列表外,每个数据库中也都有一套相互独立的数据库用户列表。每个数据库用户都和服务器登录帐户之间存在着一种映射关系。系统管理员可以将一个服务器登录帐户映射到用户需要访问的每一个数据库中的一个用户帐户和角色上。一个登录帐户在不同的数据库中可以映射成不同的用户,从而拥有不同的权限。导入(或附加)学生成绩数据库,附加SPJ表,然后以不同的登录账户访问相关数据库对数据库实施如下操作:1. 使用USE 数据库名GO 查看各个登录账户能否使用各数据库。2. 分别使用SQL SERVER管理控制台为学生成绩数据库创建数据库用户U1-U5和TRANSACT-SQL的数据库用户U6,U7服务器的登录账号和数据库用户名可以一样,也可以不一样,如本实验,服务器的登录账号为学生的学号,数据库用户名为U1-U7,此时需要建立登录账号和数据库用户名之间的联系。,U8,与相应的登录账户建立好映射关系。如:USE 学生成绩create user u3for login s3-WITH DEFAULT_SCHEMA=DBO3. 查看各数据库角色的含义并为所创建的用户分配数据库角色(在SQL Server管理控制台中,展开SQL Server服务器组中相应服务器,展开“数据库”目录树,再展开某个具体的数据库,选择“安全性|角色|数据库角色”,在右侧窗口中会看到数据库中已存在的角色。在未创建新角色之前,数据库中只有固定数据库角色。)(数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以给一个用户授予属于同一数据库的多个角色。SQL Server在安装成功后,提供了十种固定数据库角色。固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。SQL Server提供的固定数据库角色的具体含义如下: public:维护全部默认权限。 db_accessadmin:可以为登录帐户添加或删除访问权限。 db_backupoperator:可以备份该数据库。 db_datareader:可以对数据库中的任何表或视图运行SELECT语句。 db_datawriter:可以在所有用户表中添加、删除或更改数据。 db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。 db_denydatareader:不能读取数据库内用户表中的任何数据。 db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。 db_owner:可以执行数据库的所有配置和维护活动。 db_securityadmin:可以修改角色成员身份和管理权限。在固定的数据库角色中,public是一个特殊的数据库角色,每个数据库用户都属于public数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的public角色的权限。)4. 利用TRANSACT-SQL语句DROP USER user_name 删除用户U8。三、权限的管理权限用来指定授权用户可以使用的数据库对象以及对这些数据库对象可以执行的操作。用户在登录到SQL Server之后,根据其用户帐户所属的Windows组或角色,决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中,用户的权限独立于用户帐户和用户在数据库中的角色,每个数据库都有自己独立的权限系统。权限的管理主要是完成对权限的授权、拒绝和回收。权限的管理主要是对权限的授权(grant)、拒绝(deny)、和回收(revoke)。管理权限可以通过以下方式实现:1. 从数据库的角度来管理。2. 从用户或角色的角度来管理。3. 从数据库对象的角度来管理。在SQL Server中,可以通过SQL Server管理控制台或Transact-SQL语句管理权限。(一)管理数据库的权限:从数据库的角度来管理。在SQL Server管理控制台中,展开SQL Server服务器组中相应服务器。(2)展开“数据库”,右击某个数据库的名称,在弹出的快捷菜单中选择“属性”选项,会弹出数据库属性对话框。单击“权限”选择页,打开权限窗口。在权限选择页中,可以单击“添加”按钮,添加用户或角色。选择权限。1.利用SQL Server管理控制台对学生成绩数据库为用户U1授予CONNECT、CREATE TABLE、 CREATE VIEW、 INSERT、 SELECT等6种权限。并验证相应的权限。(注意:要能执行建表语句,需要两个权限:(1).createtable权限: (2.)所在架构的alter权限:alter schema2.利用SQL Server管理控制台对学生成绩数据库为用户U1回收相应的权限,并验证。(二)管理用户的权限:从用户或角色的角度来管理管理用户的权限就是设置一个用户能对哪些对象执行哪些操作。选择数据库-安全性-用户-右键单击数据库用户-属性-安全对象-添加-特定对象-相关表或视图等-选择权限。,1.对用户U2,利用对用户的授权机制授予其查询课程表的权限, 并验证。2.回收其查询课程表的权限, 并验证。(三)管理数据库对象的权限:从数据库对象的角度来管理可以从数据库对象的角度完成相同的工作,即设置一个数据库对象能被哪些用户/角色执行哪些操作。在SQL Server管理控制台中,展开SQL Server服务器组中相应服务器。展开“数据库”,再展开指定的数据库,选择“表”,在右边窗口的数据表列表中右击表名称,在弹出的快捷菜单中选择“属性”选项,打开表属性对话框,选择“权限”选择页。可以单击“添加”按钮添加用户或角色,也可以撤消已授的权限。1.对于成绩表,对用户U3赋予其SELECT 、DELETE、 INSERT、 UPDATE成绩列的权限,并验证。同时验证验证将学号2005226146的成绩改为100验证学号2005226146的学号改为2005999999如果给用户U3赋予了修改学号的权限,可以修改吗?为什么(利用第五章的数据库的参照完整性回答)2. 回收其查询成绩表的权限,并验证。四、参照王珊教材第四章利用Transact-SQL语句完成下列权限的设置,并验证。(先在管理控制平台下回收用户的上述所有的权限。)(一)授权1. 把查询学生表和张姓同学的视图的权限授给用户U12. 把对学生表和课程表的全部权限授予用户U2和U33. 把对成绩表的查询权限授予所有用户4. 把查询学生表和修改学生学号的权限授给用户U45. 把对成绩的INSERT权限授予U5用户,并允许他再将此权限授予其他用户(with grant option)6. U5将相应权限授予U6,并允许他再将此权限授予其他用户7. U6将相应权限授予U7(二)回收权限8. 把用户U4修改学生学号的权限收回9. 收回所有用户对表SC的查询权限10. 把用户U5对成绩表的INSERT权限收回验证结果是否正确将以上任务的实验完成情况、实验结果、实验原理、总结分栏一一填写到下表中,格式参考任务1或者自定。任务1:1.理解Windows身份认证和SQL、Windows身份认证的含义区别,利用SQL管理控制平台建立5个登录账号,创建密码,默认数据库为MASTER,2.删除一个登录账号3.查看各服务器角色的含义并为所创建的登录账号分配服务器角色。完成情况(代码及运行结果评析):1. create login s20126666 withPASSWORD =S123create login s20127777 withPASSWORD =S123create login s20128888 withPASSWORD =S1232.3小结:任务2: 通过在不同的数据库里建立用户名,并与相应的任务一所建立的服务器登录名建立映射关系实现导入(或附加)学生成绩数据库,附加SPJ表,然后以不同的登录账户访问相关数据库对数据库实施如下操作:1.使用USE 数据库名GO 查看各个登录账户能否使用各数据库。2.分别使用SQL SERVER管理控制台为学生成绩数据库创建数据库用户U1-U5和TRANSACT-SQL的数据库用户U6,U7服务器的登录账号和数据库用户名可以一样,也可以不一样,如本实验,服务器的登录账号为学生的学号,数据库用户名为U1-U7,此时需要建立登录账号和数据库用户名之间的联系。,U8,与相应的登录账户建立好映射关系。3.查看各数据库角色的含义并为所创建的用户分配数据库角色4. 利用TRANSACT-SQL语句DROP USER user_name 删除用户U8。完成情况(代码及结果): 1 用户20121111的服务器角色是sysadmin,所以可以访问spj表2.create user U6for login s20126666create user U7for login s20127777create user U8for login s201288883.4.DROP USER U8命令成功完成,U8已经删除。总结:(实验结果及原理的分析)任务3: (一)管理数据库的权限:从数据库的角度来管理。1.利用SQL Server管理控制台对学生成绩数据库为用户U1授予CONNECT、CREATE TABLE、 CREATE VIEW、 INSERT、 SELECT等6种权限。并验证相应的权限。(注意:要能执行建表语句,需要两个权限:(1).createtable权限: (2.)所在架构的alter权限:alter schema2.利用SQL Server管理控制台对学生成绩数据库为用户U1回收相应的权限,并验证。(二)管理用户的权限:从用户或角色的角度来管理1.对用户U2,利用对用户的授权机制授予其查询课程表的权限, 并验证。2.回收其查询课程表的权限, 并验证。(三)管理数据库对象的权限:从数据库对象的角度来管理1.对于成绩表,对用户U3赋予其SELECT 、DELETE、 INSERT、 UPDATE成绩列的权限,并验证。同时验证验证将学号2005226146的成绩改为100验证学号2005226146的学号改为2005999999如果给用户U3赋予了修改学号的权限,可以修改吗?为什么(利用第五章的数据库的参照完整性回答)2. 回收其查询成绩表的权限,并验证。完成情况(代码及结果): 1. select *from 学生名单create table 宿舍(宿舍号char(20) primary key)2.34回收成绩表的权限后总结:(实验结果及原理的分析)可以从数据库对象的角度完成相同的工作,即设置一个数据库对象能被哪些用户/角色执行哪些操作。任务4: -1.把查询学生表和张姓同学的视图的权限授给用户U1GRANT SELECTON 学生TO U1;CREATE VIEW 张姓同学ASSELECT *FROM 学生WHERE 姓名LIKE 张%;GRANT SELECTON 张姓同学TO U1;我之后用用户U1登陆,验证结果如下:-2.把对学生表和课程表的全部权限授予用户U2和U3GRANT ALL PRIVILEGESON 学生TO U2,U3;GRANT ALL PRIVILEGESON 课程TO U2,U3 ;-3.把对成绩表的查询权限授予所有用户GRANT SELECTON 成绩TO PUBLIC;-4.把查询学生表和修改学生学号的权限授给用户U4GRANT UPDATE(学号),SELECTON 学生TO U4;-5.把对成绩的INSERT权限授予U5用户,并允许他再将此权限授予其他用户(with grant option)GRANT INSERTON 成绩TO U5WITH GRANT OPTION;-验证:INSERT INTO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论