数据库完整性与安全性实验.docx_第1页
数据库完整性与安全性实验.docx_第2页
数据库完整性与安全性实验.docx_第3页
数据库完整性与安全性实验.docx_第4页
数据库完整性与安全性实验.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

(一)、 安全性实验内容与要求:SQL Server 数据库实验:SQL Server提供了多种安全机制。主要的有如下3条:1最小权限原则:SQL Server通过给不同用户赋予不同权限的方式来保证安全。本原则要求只给某用户完成工作所必须的权限,以尽量减小用户有意或无意的错误对数据库造成的损害。2CIA原则:C:机密性,未授权者或使用非法手段无法访问数据。I:完整性,未授权者或使用非法手段无法修改数据。A:可用性,已授权者可随时使用数据。3深度防护:实际上任何一个程序都运行在操作系统上,一台计算机上还有其它应用程序。所以SQL Server的安全不能仅仅考虑本身的安全,而必须结合操作系统安全及其它相关因素(比如杀毒软件和防火墙)来考虑。这就是深度防护。SQL Server仅仅运行在Windows操作系统上,允许直接使用Windows用户作为SQL Server用户,由于是同一公司的产品,其和操作系统的联系和配合特别紧密,为其它数据库所远远不及的。在SQL Server服务器及其它Windows服务器上,应该进行多方面的安全配置:包括操作系统补丁管理、管理员用户和组管理、其它本地用户组管理和设置本地安全策略。为了提供网络上的客户端访问,还需要进行端点等相关设置。SQL Server对两种实体提供安全机制。分别是登录名(以前曾称为login,现在在T-SQL中仍然这样使用,但为避免混淆,Microsoft已经开始改称其为服务器主体)和用户名(user,就是数据库主体)。现在有3种登录名:windows域登录名(就是域用户),windows本地登录名(本地用户)和SQL Server登录名。用户登录以后,SQL Server将其映射为自己的user,进行相应安全管理。从而提供了两种身份认证模式:Windows认证模式和SQL Server认证模式。1Windows认证模式SQL Server数据库系统通常运行在NT服务器平台或基于NT 构架的Windows server上,而NT作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,所以Windows认证模式正是利用这一用户安全性和账号管理的机制,允许SQL Server也可以使用NT的用户名和口令。在该模式下,用户只要通过Windows的认证就可连接到SQL Server,而SQL Server本身也不需要管理一套登录数据。2SQL Server认证模式在SQL Server认证模式下,用户在连接到SQL Server时必须提供建立在SQL Server上的用户名(登录名)和登录密码,这些登录信息存储在系统表syslogins中,与NT的登录账号无关。SQL Server自己执行认证处理,如果输入的登录信息与系统表syslogins 中的某条记录相匹配则表明登录成功。注:该方式常用于系统开发中,因为客户机常常与服务器不是同一台计算机,甚至也不在同一个windows域中,所以使用该方式进行登录比较方便。实验内容:1. 以DBA身份(可以是SQL Server上的sa或者windows上的系统管理组的某个成员)登陆系统,在图形界面下创建新登录,新建登录用户可以使用Windows认证模式和SQL Server认证模式。首先,右键安全性,再选择登录名,最后选择新建登录名,便可以弹出如下的窗口,我们填写要新建的登录名,以及选择登录方式(windows身份验证还是SQL Server身份验证)。点击确定,便可以成功的新建登录。2. 使用T-SQL命令create login login-name 和create login login-name from windows重复第1步的内容。我们执行了如下的T-SQL命令:运行的结果如图所示,我们看到在安全性-登录名的目录下,已经有了名为majunyi的登录名,这表明我们之前进行的操作已经成功了:3. 在服务器角色选项卡中赋予新建用户角色。完成后查找T-SQL中对应命令,在图形界面上撤消该权限后使用命令完成授予权限和收回权限的任务。我们在服务器角色选项卡中选择了新建服务器角色,新建了一个名为majunyiX 服务器角色,并将安全对象选为我们刚刚创建的登录名majunyi,并开启所有权限。之后,我们打开在这个服务器角色,再将登录名majunyi的权限全部取消,如下图所示。执行如下的SQL代码,即可将权限授予登录名majunyi:执行后,我们看到,权限已经被授予了:执行如下的SQL代码,即可将登录名majunyi的权限取消:查看执行后的结果,我们又发现权限被去除了。4. 将新建用户映射到移动通信数据库某用户。执行相关SQL操作,检查该用户的权限。用户在权限范围内、超出权限范围访问相应数据对象,查看访问结果和DBMS的反映。我们执行了如下的代码,来将新建登录名majunyi 映射到我们存有移动通信数据的数据库DB_EXP中。我们右键了数据库DB_EXP,选择属性,再查看权限。可以看到我们刚刚映射进来的用户majunyi,以及他的权限(如图所示)。为了进一步的验证权限的影响,我们将用户majunyi的权限设置为拒绝新建表。接下来,我们用用户majunyi连接数据库,再执行一条新建表的语句,查看执行的效果,我们执行了如下的语句:执行后的结果如图所示,果不其然,由于权限的限制,用户majunyid 建表操作被拒绝了,没有执行成功。5. 对特定服务器对象设置权限,双击登陆名以后选择安全对象,赋予该登录名对服务器内的某个对象的权限。执行相关SQL操作,检查该用户的权限。用户在权限范围内、超出权限范围访问相应数据对象,查看访问结果和DBMS的反映。如下图所示,我们双击了登录名majunyi,并选择了安全对象,在安全对象JUNYIMA-PC中,我们拒绝了他创建服务器角色的权限。之后,我们便执行下面的SQL语句,尝试去创建一个服务器角色,看看会有什么样的反映。执行后的结果如下图所示,可见,由于权限的限制,用户majunyi创建服务器角色的操作失败了,并且系统给出了“用户没有此权限”的提示。6. 分别在图形化界面、命令行中,撤销用户权限。当我们在图形界面时,我们首先需要双击需要进行更改的用户名,再选择安全对象。将我们想要撤销的权限的对勾给去掉(如图所示),最后点击确定,便可以完成此操作。当我们使用命令行时,我们可以执行如下的SQL脚本,来进行消除用户权限的操作。如下图所示的代码执行后,将会将原来赋予用户majunyi可以查看任意数据库的权限改成拒绝。7. 分别在图形化界面、命令行中,删除数据库用户。当我们在图形化界面中时,如图所示,我们右键想要删除的用户,选择删除,即可。8. 根据实际操作,指出服务器角色和数据库角色有多少种,分别有什么权限?如上图所示,默认的数据库角色成员身份有9种,分别为db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_denydatareader, db_denydatawriter, db_owner, db_securityadmin 下面我将详细的介绍一下这几个数据库角色成员身份。db_accessadmin: 可以添加或删除用户 IDdb_backupoperator: 可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。db_datareader: 可以选择数据库内任何用户表中的所有数据。db_datawriter: 可以更改数据库内任何用户表中的所有数据。db_denydatareader: 不能选择数据库内任何用户表中的任何数据。db_denydatawriter: 不能更改数据库内任何用户表中的任何数据。db_owner: 在数据库中有全部权限。db_securityadmin: 可以管理全部权限、对象所有权、角色和角色成员资格。 如上图所示,默认的服务器角色有7个,分别为bulkadmin, dbcreator, diskadmin, processadmin, scurityadmin, serveradmin, setupadmin. 下面我将详细的介绍他们。Bulkadmin:固定服务器角色的成员可以运行 BULK INSERT 语句Dbcreator:固定服务器角色的成员可以创建数据库,并更改还原自己的数据库。Diskadmin:固定服务器角色的成员用于管理磁盘文件。Processadmin:固定服务器角色的成员可以终止 SQL Server 实例中运行的进程。Scurityadmin:固定服务器角色的成员将管理登录名及其属性。它们可以 GRANT、DENY 和 REVOKE 服务器级权限。也可以 GRANT、DENY 和 REVOKE 数据库级权限。另外,它们可以重置 SQL Server 登录名的密码。Serveradmin:固定服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。Setupadmin:固定服务器角色的成员可以添加和删除链接服务器,并且也可以执行某些系统存储过程。9. 创建数据库时,还会自动创建 SYS、GUEST 和 dbo 组。通过帮助文档,了解这些组在数据库中起到的作用。数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时,SQL SERVER 会自动在该数据库中创建三个段: SYSTEM、LOGSEGMENT 、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象。10. 以DBA身份登陆系统,创建用户组,为用户组授予(grant)或撤销(revoke)针对数据库中表、视图等不同数据对象的不同的访问权限。首先,我们以windows用户登录并连接到数据库,并针对用户majunyi执行如下的SQL代码,即可将权限授予登录名majunyi, 在这里我选择了所有的权限,即试图将用户majunyi赋予所用的数据库权限:执行这一段SQL脚本后,我们使用图形界面查看用户majunyi的权限。我们可以看到,权限已经被授予给他了:执行如下的SQL代码,即可将登录名majunyi的权限取消:再次进入图形界面,查看SQL脚本执行后的结果,我们又发现权限被去除了。11. 将组成员资格授予现有用户或组,现有用户或组访问数据库对象,查看访问结果。撤销现有用户或组的组成员资格,查看访问结果。我们右键了数据库DB_EXP,选择属性,再查看权限。可以看到我们刚刚映射进来的用户majunyi,以及他的权限(如图所示)。为了进一步的验证权限的影响,我们将用户majunyi的权限设置为拒绝新建表。接下来,我们用用户majunyi连接数据库,再执行一条新建表的语句,查看执行的效果,我们执行了如下的语句:执行后的结果如图所示,果不其然,由于权限的限制,用户majunyid 建表操作被拒绝了,没有执行成功。12. 分别在图形化界面、命令行中从数据库删除组。当我们在图形化界面中时,如图所示,我们右键想要删除的用户,选择删除,即可。当我们使用命令行进行删除用

温馨提示

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

评论

0/150

提交评论