实验九 数据库安全性

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验九SQLServer安全管理一、实验目的1.掌握创建登录帐号的方法;2.掌握创建数据库用户的方法;3.掌握语句级许可权限管理;4.掌握对象级许可权限管理。二、实验内容背景知识对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到SQLServer,并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此安全性管理与用户管理是密不可分的。SQLServer2000提供了内置的安全性和数据保护,并且这种管理有效而又容易。SQLServer2000的安全性管理是建立在认证(authentication)和访问许可(permission)两者机制上的。认证是用来确定登录SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQLServer的权限。但是通过认证阶段并不代表该用户能够访问SQLServer中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作(主要是针对数据库对象,如表、视图、存储过程等),这种用户访问数据库权限的设置是通过用户账号来实现的,同时在SQLServer中,角色作为用户组的代替物大大地简化了安全性管理。1.管理SQLServer登录认证模式一、介绍SQLServer的登录认证模式SQLServer2000提供了两种确认用户的登录认证模式:Windows认证模式和混合认证模式。1.Windows认证模式SQLServer数据库系统通常运行在NT服务器平台或基于NT构架的Windows2000上,而NT作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,所以Windows认证模式正是利用这一用户安全性和账号管理的机制,允许SQLServer也可以使用NT的用户名和口令。在该模式下,用户只要通过Windows的认证就可连接到SQLServer,而SQLServer本身也不需要管理一套登录数据。2.混合认证模式在混合认证模式下,Windows认证和SQLServer认证这两种认证模式都是可用的。NT的用户既可以使用NT认证,也可以使用SQLServer认证。在SQLServer认证模式下,用户在连接SQLServer时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins中,与NT的登录账号无关。SQLServer自己执行认证处理,如果输入的登录信息与系统表syslogins中的某条记录相匹配则表明登录成功。注:该方式常用于系统开发中,因为客户机常常与服务器不是同一台计算机,必须使用该方式进行登录。二、设置SQLServer的登录认证模式可以使用企业管理器来设置SQLServer的登录认证模式。在企业管理器中,展开SQLServer服务组,右键单击需要设置的SQLServer服务,从弹出的菜单中选择“属性”命令,如图所示。SQL服务的快捷菜单弹出“SQLServer属性(配置)”对话框,选择“安全性”选项卡,如下图所示。在“安全性”区中选择“SQLServer和Windows”或“仅Windows”单选按钮来设置登录认证模式。注意:设置改变后,用户必须停止并重新启动SQLServer服务,新设置才能生效。设置登录认证模式2.管理登录账号SQLServer有两个默认的用户登录账号:即sa和administrators\builtin。sa是系统管理员,它是SQLServer的一个超级登录账号,这个账号具有操作SQLServer服务器的一切权限。BUILTIN\Administrators组成员的WindowsNT4.0或Windows2000用户自动成为sysadmin固有服务器角色成员。一、使用企业管理器管理SQLServer登录账号1.分别创建Windows身份验证的登录帐号和使用SQLServer身份验证的登录帐号。例1:创建Windows身份验证的登录帐号WinUser,设置默认数据库student和可访问数据库master。(1)在Windows中打开“控制面板”,在“用户帐户”中添加一个用户WinUser。(2)在企业管理器中,展开实例下的“安全性”,右击“登录”按钮,在弹出的快捷菜单中选择“新建登录”,打开SQLServer登录属性对话框。在“常规”选项卡中,单击“名称”输入框右侧的按钮,从列表框中选择WinUser账号,在“身份验证”选项中,选择“Windows身份验证”。默认数据库选择student单击确定,完成登陆账号WinUser的创建。选择一个WindowsNT用户或用户组增加一个WindowsNT用户或用户组(3)选择“服务器角色”选项卡,可以在服务器角色列表框中选择相应的服务器角色成员。如图所示。在这里,设置登录用户WinUser的服务器角色为系统管理员。“服务器角色”选项卡(4)选择“数据库访问”选项卡,如下图所示,在列表框中列出了该账号可以访问的数据库,如果单击数据库左边的复选框,表示该用户可以访问相应的数据库。在这里,选中数据库master和student左边的复选框,表示登陆用户WinUser可以访问的数据库为master和student。“数据库访问”选项卡(5)查看当前登录账号,如图所示,可以看到WinUser已存在,查看它的属性。登录账号列表同时,打开企业管理器,展开数据库student,选择“用户”节点,在用户列表中可以看到数据库student中已经建立一个数据库用户WinUser,如图所示。数据库用户列表(6)验证用WinUser账号登录SQLServer:首先在操作系统中注销当前用户的登陆,将用户切换到WinUser,再用此账号连接SQLServer查询分析器,用Windows身份验证登录,可以进入查询分析器,使用数据库master和student。例2:创建使用SQLServer身份验证的登录账号SQLUser,设置默认数据库为master数据库,可访问的数据库为所有的数据库。(1)在企业管理器中,展开实例下的“安全性”,右击“登录”按钮,在弹出的快捷菜单中选择“新建登录”,打开SQLServer登录属性对话框。在“常规”选项卡中,单击“名称”输入框右侧的按钮,从列表框中选择SQLUser账号,在“身份验证”选项中,选择“SQLServer身份验证”,并且输入密码。在“数据库”下拉列表框中选择master。增加一个SQLServer用户注意:采用该方法创建的SQLServer登录账号只能用于登录SQLServer服务,与登录的计算机的Windows账号无关,不能用此账号登录Windows。(2)单击“数据库访问”选项卡,在“指定此登录可以访问的数据库”中,将所以有数据库都选中。(3)单击“确定”按钮,在“确认密码”对话框中再次输入密码,单击“确定”,完成账号的创建。(4)双击查询分析器,用SQLUser账号登录,可以进入查询分析器。3管理数据库用户数据库用户用来指出哪一个人可以访问哪一个数据库。用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的。用户账号总是基于数据库的,即两个不同数据库中可以有两个相同的用户账号。在数据库中,用户账号与登录账号是两个不同的概念。一个合法的登录账号只表明该账号通过了NT认证或SQLServer认证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作,只有当他同时拥有了用户账号后,才能够访问数据库。所以一个登录账号总是与一个或多个数据库用户账号(这些账号必须分别存在相异的数据库中)相对应,这样才可以访问数据库。例如,登录账号sa自动与每一个数据库用户dbo相关联。一、使用企业管理器管理数据库用户例1:给数据库student增加一个用户dbuser。1.打开企业管理器,展开服务器组,展开服务器,选择要创建用户的数据库,如student,用鼠标右键单击“用户”节点,从弹出的菜单中选择“新建数据库用户”命令。弹出“新建用户”对话框,如图所示。在“登录名”下拉框中选择一个登录账号,在“用户名”文本框中输入数据库用户的名称,如dbuser,然后选择相应的数据库角色,单击“确定”按钮,即可完成数据库用户的创建。“新建数据库用户”对话框2.删除数据库student中的数据库用户dbuser。在企业管理器中,用鼠标右键单击要删除的数据库用户,如dbuser,从快捷菜单中选择“删除”命令即可。4.管理数据库角色SQLServer2000服务器和数据库都有自己的固有角色。固有角色是指SQLServer2000预先定义好的系统角色。用户不能修改这些角色的任何属性,也不能创建新的服务器固有角色和数据库固有角色。数据库角色是在数据库的安全级别上创建,一个数据库角色只在其所在的数据库中有效,对其他数据库无效。在数据库中,除了有固有的数据库角色外,还可以自定义数据库角色,同时根据需要,可以为数据库角色添加成员或删除自定义角色。一、使用企业管理器管理数据库角色1.创建自定义的数据库角色例1:给数据库studnet增加一个角色NewRole,同时将用户WinUser添加到该角色中。在企业管理器中,展开要添加角色的数据库,如student,用鼠标右键单击“角色”节点,从弹出的菜单中选择“新建数据库角色”命令,弹出“新建角色”对话框,如图所示。在“名称”文本框中输入数据库新角色的名称,如NewRole,并选中“标准角色”单选按钮,然后单击“添加”按钮,在弹出的“添加角色成员”对话框中选择要添加的用户,如WinUser。单击“确定”按钮,完成角色创建。新建数据库角色2.删除自定义的数据库角色例2:删除数据库student的自定义角色NewRole。在企业管理器中,用鼠标右键单击要删除的自定义角色,如NewRole,从弹出的菜单中选择“删除”命令即可删除自定义角色。注意:不能删除一个有成员的角色,在删除角色之前,应先删除其成员。5.管理许可(权限)许可用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQLServer之后,其用户账号所归属的NT组或角色所被赋予的许可(权限)决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在SQLServer中包括对象许可和语句许可。一、使用企业管理器管理权限1.进行语句级许可权限管理:例1:授予用户WinUser可以在数据库student中创建视图和表。授予用户SQLUser可以在数据库student中进行除创建视图和表以外的所以操作。(1)启动企业管理器,展开实例数据库,右击student数据库,在弹出的快捷菜单中选择“属性”,然后选择“权限”选项卡。在用户WinUser一栏中,将“创建表”和“创建视图”选中。在SQLUser一栏中,则选择除“创建表”和“创建视图”以外的选项。说明:许可权限中复选框单击为勾号时:表示授予该权限。许可权限中复选框单击为叉号时:表示角色或用户不具有该操作权限。许可权限中复选框既没勾号,也没叉号时:表示角色或用户是否具有该操作权限要根据隐含规则来决定。2.进行对象级许可权限管理:例2:授予用户WinUser对数据库student中Student表有SELECT、INSERT和UPDATE权限;授予用户WinUser对数据库student中Course表的Cno和Cname列的SELECT权限。(1)启动企业管理器,展开实例,再展开数据库student,单击“用户”选项,右击WinUser用户,在弹出的快捷菜单中选择“所有任务|管理权限”,在打开的“数据库用户属性”对话框中,将Student一栏中的SELECT、INSERT和UPDATE都选中。(2)单击Course表,然后单击左下角的“列”按钮,在打开的“列权限”对话框中,将列Cno和Cname的SELECT选中。二、使用Transact-SQL语句管理权限可以使用Transact-SQL语言的GRANT、DENY和REVOKE命令完成权限的授予、禁止和收回。这些语句的语法格式、操作功能

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功