数据库原理与应用实验9(二版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九数据安全性实验
一、实验目的及要求
本实验的目的是通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。主要要求有:
●理解SQL Server安全体系结构和安全机制。
●理解数据库登录账号和数据库用户账号之间的区别与联系。
●理解角色的概念,能创建角色。
●掌握为通过可视化管理器为数据库用户授权的方式。
●掌握通过T-SQL为用户授权及收权的方法法。
二、实验原理及背景知识
(一)SQL Server 安全体系
SQL Server提供以下四种安全防护:
1、Windows操作系统的安全防线
Windows的网络管理员负责建立用户组,设置帐号并注册,同时决定不同的用户对不同的系统资源的访问级别。用户只有拥有了一个有效的Windows登录帐号,才能对网络资源进行访问。
2、SQL Server的运行安全防线
SQL Server 通过另外一种帐号设置来创建附加安全层。SQL Server具有标准登录和集成登录两种用户登录方式,用户只有登录成功,才能与SQL Server建立一次连接。
3、SQL Server数据库的安全防线
SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问其数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。
4、SQL Server数据库对象的安全防线
SQL Server可以对权限进行管理,SQL的DCL功能保证合法用户即使进了数据库也不能有超越权限的数据操作,即合法用户必须在自己的权限范围内进行数据操作。
图2-9-1 数据库系统的安全机制
(二)数据访问级别和类型
DBMS中的安全系统必须具有伸缩性以便为各种数据级别授权。数据级别有以下几种:整个数据库、单个关系表(所有行和所有列)、关系表中特定列(所有行)、关系表中的特定行(所有列)以及关系表的特定行和特定列。
数据的常用访问模式和类型如下:
●插入或建立:在文件中添加数据,不销毁任何数据。
●读取:用户可通过应用程序或数据库查询,将数据从数据库复制到用户环境。
●更新:编写更新值。
●删除:删除和销毁特定数据库对象。
(三)任意控制(DAC)
采用该方法以若干种指派模式授予各个用户访问特定数据项的权限或权力。建立数据库对象的用户自动得到此对象的所有访问权限,包括将此对象的权限再授予他人。在授予或撤消访问权限时,有两种主要级别:
数据库对象:数据项或数据元素,一般是基本表或视图。
用户:可以用一些授权标识符识别的单个用户或用户组。
授权通常都是在这两种级别上进行。
1、授权
DBMS提供了功能强大的授权机制,它可以给用户授予各种不同对象(表、视图、存储过程等)的不同使用权限(如SELECT、update、insert、delete等)。
可以授予数据库模式和数据操纵方面的以下几种授权,包括:创建和删除索引、创建新关系、添加或删除关系中的属性、删除关系、查询数据、插入新数据、修改数据、删除数据等。
在数据库对象级别,可将上述访问权限应用于数据库、基本表、视图和列等。
2、数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是一组相关权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。
一般使用方法是先创建一个角色,并且把需要的许可分配给角色,而不是分配给个人用户,然后再把角色分配给特定用户。
1)服务器角色
系统管理员:拥有SQL Server所有的权限许可。
服务器管理员:管理SQL Server服务器端的设置。
磁盘管理员:管理磁盘文件。
进程管理员:管理SQL Server系统进程。
安全管理员:管理和审核SQL Server系统登录。
安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。
数据库创建者:创建数据库,并对数据库进行修改
2)数据库角色
public:维护全部默认许可。
db_owner:数据库的所有者,可以对所拥有的数据库执行任何操作。
db_accessadmin:可以增加或者删除数据库用户、工作组和角色。
db_addladmin:可以增加、删除和修改数据库中的任何对象。
db_securityadmin:执行语句许可和对象许可。
db_backupoperator:可以备份和恢复数据库。
db_datareader:能且仅能对数据库中的任何表执行SELECT操作,从而读取所有表的信息。
db_datawriter:能够增加、修改和删除表中的数据,但不能进行SELECT操作。
db_denydatareader:不能读取数据库中任何表中的数据。
db_denydatawriter:不能对数据库中的任何表执行增加、修改和删除数据操作。
(四)视图机制
视图机制也可以实现某种意义上的安全性。视图提供了一种灵活而简单的方法,以个人化方式授予访问权限,是强大的安全工具。在授予用户对特定视图的访问权限时,该权限只用于在该视图中定义的数据项,而未用于完整基本表本身。在使用视图的时候不用担心用户会无意地删除数据或者给基本表中添加有害的数据,并且可以限制用户只能使用指定部分的数据。
三、实验内容及步骤
Ⅰ:基本实验内容
(一)修改数据库验证方式
任务1:在SQL Server企业管理器中为所属的SQL 服务器设置为SQL Server和Windows NT混合安全认证模式.
SQL Server 2005中打开服务器属性界面后,点击左边的“安全性”即可修改,如图2-9-2所示。
图2-9-2
(二)管理服务器登录账户
任务2:为服务器建立一个登录账号stu01,赋予其一定权限,步骤如下:
1、展开服务器的“安全性”目录下面的“安全性”,然后在“登录名”上点击右键,选择“新建登录名”,弹出新建登录界面,如下图2-9-3所示。在登录名中输入stu01,同时设置为SQL Server 身份验证,输入登录名密码。