SQLServer的安全管理.ppt
《SQLServer的安全管理.ppt》由会员分享,可在线阅读,更多相关《SQLServer的安全管理.ppt(45页珍藏版)》请在三一办公上搜索。
1、第十三章 SQL Server的安全管理,1,本章主题,了解用户、角色和登录名的区别如何通过视图来限制用户对敏感数据的访问如何用角色来明确访问的级别,2,SQL Server的安全管理,安全性问题对于绝大多数的数据库应用程序来说都是至关重要的。设计每一个数据库应用程序的元素时,都要有安全意识。设置的安全因素包括身份验证模式、登录、用户、角色、授权、废除和拒绝Transact-SQL语句和对象上的许可以及资料加密。合理有效的数据库安全机制既可以保证被授权用户能够方便地访问数据库中的数据,又能够防止非法用户的入侵。SQL Server 2005提供了设计完善、操作简单的安全管理机制。Microso
2、ft SQL Server 2005 Analysis Services(SSAS,SQL Server分析服务器)依赖 Microsoft Windows 来对用户进行身份验证。默认情况下,只有经过身份验证的用户(在 Analysis Services 内具有权限)才能建立与Analysis Services的连接。当用户连接到Analysis Services之后,则用户在 Analysis Services内具有的权限由直接分配或通过 Windows 角色中成员身份分配给该用户所属 Analysis Services 角色的权限来确定。本章将介绍如何对SQL Server实例和数据库的访
3、问进行授权、如何在数据库级和服务器级管理角色。,3,第一节 SQL Server的安全概述,要弄清楚SQL Server是如何保证数据库安全,则需要了解SQL Server的安全机制。SQL Server 2005的权限是分层进行管理的,在每一层都有相应的安全性机制,SQL Server通过管理这种分层的安全性机制,保证数据库的安全使用。SQL Server 2005的安全性管理可分为三个等级:即操作系统级、SQL Server级和数据库级。,4,(一)服务器级的安全性,SQL Server的服务器级的安全性建立在控制服务器登陆帐号和密码的基础上。用户在登录时提供的登录帐号和密码,决定了用户能
4、否获得SQL Server的访问权,以及在登录以后,用户在访问SQL Server进程时可以拥有的权利。SOL Server采用了标准SQL Server登录和集成Windows NT登录两种方式。无论是使用那种登录方式,用户在登录时提供的登录帐号和口令,决定了用户能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server进程时可以拥有的权限。管理和设计合理的登录方式是SQL Server管理员DBA(数据库管理员)的重要任务,是SQL Server安全体系中,DBA可以发挥主动性的第一道防线。SQL Server首先使用以下三种方法之一来识别用户:Window
5、s用户登录 Windows用户组的成员资格 SQL Server专用登录,5,(二)数据库级的安全性,在用户通过SQL Server服务器的安全性检验以后,将直接面对不同的数据库入口,这是用户接受的又一次安全性检验。在建立用户的登录帐号信息时,SQL Server会提示用户选择默认的数据库,以后用户每次连接上服务器后,都会自动转到默认的数据库上。对任何用户来说,master数据库的门总是打开的,如果在设置登录帐号时没有指定默认的数据库,则用 户的权限将局限在master数据库以内。用户登录了数据库后,仍然不能访问数据,必须为其授予访问数据库对象(表、存储过程、视图和函数等)的权限,才能够访问数
6、据。权限的分配通过角色来定义,用户定义的角色是定制的角色,其作用就像一个用户组。可以为角色授予访问数据库对象的权限,并将用户加入数据库的用户定义角色。服务器角色成员在每个数据库内创建这些数据库角色,向这些数据库角色授予管理或用户权限,然后将 Windows 用户和组添加到这些数据库角色中。,6,(三)对象的所有权,权限用于控制用户对数据库对象的访问,以及指定用户对数据库可以执行的操作。用户可以设置服务器和数据库的权限,服务器权限允许数据库管理员执行管理任务,数据库权限用于控制对数据库对象的访问和语句执行。1.服务器权限 服务器权限允许数据库管理员执行管理任务。这些权限定义在固定服务器角色(fi
7、xed Server roles)中。固定服务器角色的权限可以分配给其他角色,但固定服务器角色本身是不能修改的。一般只把服务器权限授给DBA,他不需要修改或者授权给别的用户登录。2.数据库对象权限 数据库对象权限指对已存在的数据库对象的操作权限,包括对数据库对象的SELECT、INSERT、UPDATE、DELETE和EXECUTE权限。数据库对象权限是授予用户以允许他们访问数据库中对象的一类权限,对象权限对于使用SQL语句访问表或者视图是必须的。3.数据库权限 对象权限使用户能够访问存在于数据库中的对象,除了数据库对象权限外,还可以给用户分配数据库权限。SQL Server 2005对数据库
8、权限进行了扩充,增加了许多新的权限,这些数据库权限除了授权用户可以创建数据库对象和进行数据库备份外,还增加了一些更改数据库对象的权限。,7,第二节 管理角色,角色用来简化将很多权限分配给很多用户这一复杂任务的管理。角色允许用户分组接受同样的数据库权限,而不用单独给每一个用户分配这些权限。用户可以使用系统自带的角色,也可以创建一个代表一组用户使用的权限角色,然后把这个角色分配给这个工作组的用户。一般而言,角色是为特定的工作组或者任务分类而设置的,新 用户可以根据自己所执行的任务成为一个或多个角色的成员。当然用户可以不属于是 任何角色,SQL Server允许为用户分配个人权限。角色是一个强大的工
9、具,它可以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除权限适用于该角色中的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。,8,(一)固定服务器角色,服务器角色只有固定服务器角色,用于对数据库服务器的操作。对数据库服务器操作的权限不能直接赋给其他登录帐户,只能使某些登录帐户成为固定服务器角色的成员,才能使他们具有这些权限。固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。服务器角色是负责管理与维护SQL Server的组,一般指定需要管理服务器的登录帐号属于服务器角色。SQL Server在安装过程中定义几个固
10、定的服务器角色,其具体权限如表13-1所示。,表13-1固定服务器角色成员表,9,(二)固定数据库角色,10,固定数据库角色用于对单个数据库进行操作,每个数据库都有一系列固定数据库角色,尽管在不同的数据库内他们是同名的,但各自的作用范围都仅限于本数据库。固定数据库角色(Database Roles)是数据库级的主体,可以使用固定数据库角色来为一组数据库用户指定数据库权限。在SQL Server中,固定数据库角色可分为两种:标准(默认)角色和应用程序角色。SQL Server 2005为数据库创建了一套标准(默认)的数据库角色。表13-2列出了这些标准(默认)的角色。标准(默认)角色是由数据库成
11、员所组成的组,成员可以是用户或者其他的数据库角色。应用程序角色用来控制应用程序存取数据库,它本身并不包括任何成员。,表13-2标准(默认)的数据库角色,(三)自定义角色的管理,11,角色是一个强大的工具,它可以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限适用于该角色中的任何成员。可以建立一个角色来代表单位中类工作人员所执行的工作,然后给这个角色授予适当的权限。创建用户定义的数据库角色就是创建一组用户,这些用户具有相同的一组权限。如果一组用户需要执行在SQL Server中指定的一组操作并且不存在对应Windows NT/Windows 2000/Windwos
12、 2003组,或者没有管理Windows NT/Windows 2000/Windwos 2003用户帐户的权限,就可以在数据库中建立一个用户自定义的数据库角色。用户自定义的数据库角色有两种类型,即标准角色和应用程序角色。标准角色通过对用户权限等级的认定将用户划分为不同的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。所有固定的数据库角色或SQL Server管理者自定义的某一角色都是标准角色。应用程序角色是一种比较特殊的角色。当打算让某些用户只能通过特定的应用程序间接地存取数据库中的数据,而不是直接地存取数据库数据时,就应该考虑使用应用程序角色。当某一用户使用了应用程序角色时,
13、他便放弃了己被赋予的所有数据库专有权限,他所拥有的只是应用程序角色被设置的角色。通过应用程序角色,能够以可控的方式限定用户的语句或者对象权限。编写数据库应用程序时,可以定义应用程序角色,让应用程序的操作者能用该应用程序来存取SQL Server的数据。也就是说,应用程序的操作者本身并不需要在 SQL Server上有登录帐号以及用户帐号,仍然可以存取数据库,这样可以避免操作者自行登录SQL Server。,第三节 管理服务器的安全性,12,(一)使用Management Studio管理登录帐户,13,1配置身份验证模式可以通过以下方法在SQL Server Management Studio
14、中配置身份验证模式。(1)从【开始】菜单中选择【所有程序】|【Microsoft SQL Server 2005】|【SQL Server Management Studio】。(2)在【连接到服务器】对话框中,单击【连接】按钮。(3)在【对象资源管理器】中,右键单击SQL Server实例名(如NET-DB)并在弹出菜单中选择【属性】。(4)在【选择页】面板中,选择【安全性】图标。(5)在【服务器身份验证】区域,选择自己想要的身份验证模式。如图13.1所示。2.Windows验证模式 在该验证模式下,SQL Server检测当前使用的Windows用户帐号,并在Syslogins表中查找该帐
15、号,以确定该帐号是否有权登录。由于已经通过了Windows的认证,用户不必提供密码或者登录名让SQL Server验证。,14,使用Management Studio管理登录帐户,图13.1 在SQL Server Management Studio中设置身份验证模式,图13.2 Windows验证模式登录图,15,使用Management Studio管理登录帐户,Windows验证模式下主要有以下优点:(1)数据库管理员的工作可以集中在管理数据库方面,而不是管理用户帐户。对用户帐户的管理可以交给Windows NT/2000/2003去完成。(2)WindowNT/2000/2003有着更
16、强的用户帐户管理工具。可以设置帐户锁定、密码期限等。如果不是通过定制来扩展SQL Server,SQL Server是不具备这些功能的。(3)Windows NT/2000/2003的组策略支持多个用户同时被授权访问SQL Server。3.混合身份验证模式 在这种身份验证模式下,用户既可以使用Windows身份验证模式又可以使用SQL Server身份验证模式来连接SQL Server。在后一种情况下,SQL Server依据现有的SQL Server登录名来验证用户的身份。使用SQL Server身份验证需要用户在连接字符串中提供连接SQL Server的用户名和密码。使用哪种模式取决于在
17、最初通信时使用的网络库。如果一个用户使用的是TCP/IP的Sockets进行登录验证,则将使用SQL Server验证模式;如果用户使用命名管道,则登录时将使用Windows验证模式。,16,使用Management Studio管理登录帐户,SQL Server验证模式下,处理登录的过程为:用户在输入登录名和密码后,SQL Server在系统注册表中检测输入的登录名和密码。如果输入的登录名存在,而且密码也正确,就可以登录到SQL Server上。混合验证登录参看图13.3。混合验证模式具有以下优点:(1)创建了Windows NT/2000/2003之上的另外一个安全层次。(2)支持更大范围
18、的用户,如非Windows NT客户、Novell网用户等。(3)一个应用程序可以使用单个的SQL Server登录帐号和口令。一般情况下,Windows身份验证模式是推荐的身份验证模式。在Windows身份验证模式中,连接链路中没有密码信息。还可以在集中的企业存储方案(例如Active Directory)中管理用户帐户信息,利用操作系统已有的所有安全特性。,图13.3混合验证模式登录图,(二)使用T-SQL语句管理登录帐户,17,使用Transact-SQL创建登录的语法结构如下:CREATE LOGIN login_name WITH FROM:=WINDOWSWITH.|CERTIFI
19、CATE certname|ASYMMETRIC KEY asym_key_name:=PASSWORD=password HASHED MUST_CHANGE,:=SID=sid|DEFAULT_DATABASE=database|DEFAULT LANGUAGE=1anguage|CHECK EXPIRATION=ON|OFF|CHECK_POLICY=ON|OFF|CREDENTIAL=credential-name:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language,18,使用T-SQL语句管理登录帐户,参数说明如下。login_n
20、ame:要创建的登录的名称。WINDOWS:说明登录将被映射到Windows登录。CERTIFICATE certname:指定创建的登录所映射的证书,此证书必须在master数据库中存在。ASYMMETRIC KEY asym_key_name:制定登录所映射的非对称密钥,此密钥必 须在master数据库中存在。PASSWORD=Password:要创建的登录的密码,只使用于SQL Server登录。HASHED:只使用于SQL Server登录。用于确定用户输入的密码将被散列存储。如果没有此选项,密码将首先被散列计算,然后存储在数据库中。MUST_CHANGE:创建新登录后,第一次登录必须
21、更改密码,只使用于SQL Server 登录。SID=sid:指定新创建登录的GUID,指适用于SQL Server登录,如果没有定义,将随机分配一个GUID给新创建的登录。DEFAULT DATABASE=database:新创建登录可以访问的默认数据库,如果没有定义,默认为master数据库。DEFAULT_LANGUAGE=language:登录使用的默认语言,如果没有指定就为当前服务器的默认语言,以后更改服务器的默认语言并不会影响已创建登录的默认语言。CHECK EXPIRATION=ON|OFF:是否使用终止期限策略,只使用于SQL Server登录。CHECK_POLICY=ON|
22、OFF:是否对新建登录使用Windows的口令策略,只 使用于SQL Server登录。CREDENTIAL=credential name:新创建的SQL Server登录要映射的信任的名称。此信任必须已经存在于数据库中。,(三)sa帐户,19,sa登录是默认的登录,对SQL Server有完全的管理权限。如果启用SQL Server身份验证模式的安装,在安装过程中将强制为该帐户设置密码,因为sa是功能十分强大的登录,它存在于所有的SQL Server安装中。当用sa登录到SQL Server时,将能够完全控制SQL Server的任何一个特性。无论安装采用何种身份验证模式,SQL Serv
23、er中都将加入这一ID,所以应该尽量避免名为sa的登录ID。如果在【身份验证模式】界面选择了混合模式身份验证,则必须为sa帐户设置强密码。在这一点上,SQL Server 2005有了很大的改进,它强制要求为帐户设置密码,尽管设置的密码可能是极易被猜出的。例如,不要使用类似password或adminpwd的密码。不仅要始终保证密码安全,而且要在安全的地方记下密码。否则,如果忘记了sa的密码,而sa是当前存在的唯一的管理ID,那么只有重装SQL Server。妥当的密码应该是混合了数字和字母的,但不要总包含可以转化成数字的字母或者可以转化成字母的数字。例如,P455W0RD是很容易由PASSW
24、ORD来猜出的。有时需要使用混合模式身份验证。例如,由于很多应用程序可能运行在一台Web服务器上,因此因特网提供商(ISP)使用混合模式验证身份。如果ISP是转售商,谁也不会希望同样使用该计算机的其他用户能看到自己的数据。可是已经决定了不以sa身份登录,那么该怎么做呢?可以这样,创建一个具有用户需要的访问权力的登录ID,也就是说,该ID具有刚好能够看到数据并用所需要的数据进行工作的能力,不多也不少。ISP可能要求提供用户ID和密码,以便在其SQL Server实例上创建帐户。,(四)服务器角色,20,通过给用户分配固定服务器角色,可以使用户具有执行管理任务的角色权限。固定服务器角色的维护比单个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 安全管理
链接地址:https://www.31ppt.com/p-6520787.html