SQLServer25的安全.ppt
《SQLServer25的安全.ppt》由会员分享,可在线阅读,更多相关《SQLServer25的安全.ppt(73页珍藏版)》请在三一办公上搜索。
1、第10章 SQL Server 2005的安全管理,内容提要:SQL Server 2005数据库系统具有各种高度精确的可配置安全特性,可以实现经过优化的深度防御。本章主要介绍:SQL Server的安全体系结构两种验证模式及其设置登录账号的设置角色与用户的创建方法权限设置与使用,第10章 SQL Server 2005的安全管理,本章内容:10.1 SQL Server 2005的安全性机制 10.2 管理服务器范围的安全性10.3 管理数据库范围的安全性10.4 管理密匙与证书10.5 权限管理10.6小结,10.1SQL Server 2005的安全性机制,SQL Server 2005
2、的安全性机制主要包括以下5个方面的内容:SQL Server 2005客户机的安全机制。网络传输的安全机制。SQL Server 2005服务器的安全机制。数据库的的安全机制。数据对象的安全机制。,10.1SQL Server 2005的安全性机制,基本概念若要在SQL Server 2005的安全机制下,首先需要了解下面常用的基本概念或术语。(1)主体(Principal)。主体是可以请求对SQL Server资源的访问权限的用户、组和进程。主体有几个共同的特征。每个主体都有自己的安全标识号(SID)。主体可以是主体的集合(比如数据库角色或Windows组)或不可分割的主体(比如本地登录或域
3、登录)。每个主体有一个作用域,作用域基于定义主体的级别。,10.1SQL Server 2005的安全性机制,基本概念(2)安全对象。安全对象是 SQL Server 2005数据库引擎授权系统控制对其进行访问的资源。通过创建可以为自己设置安全性的名为“范围”的嵌套层次结构,可以将某些安全对象包含在其他安全对象中。安全对象范围包括服务器、数据库、架构和对象。,10.1SQL Server 2005的安全性机制,基本概念(3)用户、数据库用户、账户、账号、登录名和密码。用户是指能够在SQL Server 2005安全机制下,访问数据库对象中的数据的操作员或客户。用户若要访问数据库对象,必须获得管
4、理员分配的账号和密码。从SQL Server 2005管理系统的角度来看,用户就是一组匹配的账户和密码。账户和账号是一个概念的不同说法,在服务器中的账户又叫登录名(Login),因此访问服务器也称为登录服务器。服务器的登录名可以映射到数据库中成为数据库用户。一个登录名可以映射多个数据库用户,而一个用户只能映射一个登录名。,10.1SQL Server 2005的安全性机制,基本概念(4)角色(roles)。角色是SQL Server 2005中管理权限相近的安全账户的集合,相当于Windows域中的组。(5)权限。权限是SQL Server 2005安全性的最后一个级别,实际上是安全机制的设计
5、者分配给某一个用户(或角色)访问数据库时,对数据对象的可以进行的操作集合。要拥有对SQL Server 2005上的安全对象的访问权限,主体必须具有在在数据对象上执行操作的权限。,10.1SQL Server 2005的安全性机制,基本概念(6)身份验证与授权。身份验证(Authentication)是SQL Server 2005系统标识用户或进程的过程,SQL Server 2005 中有两种身份验证方式:Windows身份验证模式和混合身份验证模式。客户端自身必须通过服务器的身份验证后才可以请求其他资源。授权(Authorization)是授予通过身份验证的用户或进程以访问或修改资源的指
6、定权限的过程。,10.1SQL Server 2005的安全性机制,查询权限用户可以利用fn_my_permissions函数查询用户的有效权限,该函数一般返回调用对方服务器的有效权限列表。fn_my_permissions函数语法格式如下:fn_my_permissions(securable,securable_class)fn_my_permissions 函数的返回列如表10.1所示.,10.1SQL Server 2005的安全性机制,基本概念,例10.1 列出对服务器的有效权限。程序代码如下:USE master GOSELECT*FROM fn_my_permissions(NU
7、LL,SERVER);GO,例10.2 列出对数据库test01的有效权限程序代码如下:USE test01GOSELECT*FROM fn_my_permissions(NULL,DATABASE);GO,10.1SQL Server 2005的安全性机制,基本概念,例10.3 列出对表的有效权限。分析:以下示例返回调用方对teaching数据库内dbo架构中teacher的有效权限的列表。程序代码如下:USE teaching;GOSELECT*FROM fn_my_permissions(dbo.teacher,OBJECT)ORDER BY subentity_name,permiss
8、ion_name;,例10.4列出一个用户的有效权限分析:以下示例返回数据库用户dbo对 teaching 数据库内dbo架构中score表的有效权限的列表。调用方需要对用户dbo具有 IMPERSONATE 权限。程序代码如下:EXECUTE AS USER=dbo;SELECT*FROM fn_my_permissions(dbo.score,OBJECT)ORDER BY subentity_name,permission_name;REVERT;GO,10.2 管理服务器范围的安全性,服务器访问权限是属于SQL Server的第1个安全层次,该权限决定是否允许客户端访问服务器,这个安全
9、级别总是由DBA负责。SQL Server 2005支持用Windows或SQL Server身份验证模式来验证客户端的身份。10.2.1 SQL Server 2005的验证模式SQL Server 2005的身份验证基于SQL Server存储在主数据库中的登录名和密码。客户端必须提供登录名和密码,才能获得授权访问服务器。SQL Server的安全性是和Windows操作系统集成在一起的,因此SQL Server提供了两种确认用户的验证模式:Windows验证和混合验证模式。,10.2 管理服务器范围的安全性,10.2.1 SQL Server 2005的验证模式1.Windows身份验证
10、模式SQL Server数据库系统通常运行在Windows服务器平台上,其本身就具备管理登录、验证用户合法性的能力,因此Windows 验证模式正是利用了这一用户安全性和账号管理的机制,允许SQL Server也可以使用Windows的用户账户和密码。在这种模式下,用户只需要通过Windows的验证,就可以连接到SQL Server,而SQL Server本身也就不需要管理一套登录数据。Windows身份验证通常被认为更安全和更易维护。Windows身份验证对于用户和管理员来说都比较容易管理。,10.2 管理服务器范围的安全性,10.2.1 SQL Server 2005的验证模式2.混合身份
11、验证模式混合验证模式允许以SQL Server验证模式或者Windows验证模式来进行验证。混合验证模式先将客户机的账号和密码与SQL Server 2005数据库中存储的账号和密码进行比较,如果符合就通过验证;如果不符合,则再和Windows中存储的账号和密码进行比较,如果符合就通过验证。Microsoft公司在SQL Server 2005中对SQL Server身份验证作了一些改进。例如,SQL Server实例可以设置为需要安全性更强的口令,以及在指定时间段后要求更新口令。,10.2 管理服务器范围的安全性,10.2.1 SQL Server 2005的验证模式3更新服务器的身份验证机
12、制的步骤(1)在“对象资源管理器”中,右击SQL Server 2005数据库实例,在弹出的快捷菜单中,选择“属性”命令。(2)在“服务器属性”对话框中选择“安全性”选项卡。(3)在“服务器身份验证”区域可以设置服务器身份验证模式,然后单击“确定”按钮即可完成设置。(4)重启SQL Server 2005,即可改变身份验证模式。,10.2 管理服务器范围的安全性,服务器角色SQL Server 2005的安全体系结构中包括含有特定隐含权限的两类预定义的角色:服务器角色和固定数据库角色。服务器角色是执行服务器管理操作的具有相近权限的用户集合。根据SQL Server的管理任务和重要性等级来把具有
13、SQL Server管理职能的用户划分到不同的服务器角色,每一个角色所具有的管理SQL Server的权限都是SQL Server内置的。,10.2 管理服务器范围的安全性,服务器角色服务器角色是服务器级别的主体,可以成为服务器角色的成员以控制服务器作用域中的可保护对象。表10.5列出了SQL Server 2005默认创建的服务器角色及其功能。SQL Server 2005的服务器角色在实例中的位置如图10.8所示。,10.2 管理服务器范围的安全性,管理登录名登录名就是可以访问SQL Server数据库系统的账户。1利用SQL Server Management Studio创建登录名(1
14、)启动SQL Server Management Studio工具后,在“对象资源管理器”下,右击“安全性”下的“登录名”节点,在弹出的快捷菜单中选择“新建登录名”命令。(2)在“登录名-新建”界面上,设置登录名(te_login)、身份验证模式(SQL Server身份验证)、密码(123456)、默认数据库(teaching)和语言的类型等,如图10.9所示。,10.2 管理服务器范围的安全性,管理登录名1利用SQL Server Management Studio创建登录名(3)可以选择“服务器角色”选项卡,配置登录的服务器角色,如sysadmin。(4)也可以选择其他选项卡进行“用户映
15、射”、“安全对象”和“状态”的配置。(5)然后单击“确定”按钮即可完成登录名的创建。(6)可以在“对象资源管理器”下查看新建登录名如图10.10所示。,10.2 管理服务器范围的安全性,管理登录名1利用SQL Server Management Studio创建登录名(7)右击登录名te_login,在弹出的快捷菜单中,选择“编写登录脚本为:”|“CREATE到”|“新查询编辑器窗口”命令,系统将创建登录名的过程以脚本形式保存下来。由此可知利用Transact-SQL语句创建登录名的方法。,脚本中的主要代码如下:CREATE LOGIN te_login WITH PASSWORD=N1234
16、56,DEFAULT_DATABASE=teaching,DEFAULT_LANGUAGE=简体中文,CHECK_EXPIRATION=OFF,CHECK_POLICY=OFFGOEXEC sys.sp_addsrvrolemember loginame=Nte_login,rolename=NsysadminGOALTER LOGIN te_login DISABLE,10.2 管理服务器范围的安全性,管理登录名2测试登录名下面使用SQL Server Management Studio测试新登录名是否成功连接服务器。(1)右击SQL Server 中的实例,在快捷菜单中选择“连接”命令。(
17、2)在弹出的“连接服务器”界面中,选择SQL Serve身份验证,然后输入登录名和密码,如图10.11所示。(3)单击“连接”按钮可以测试连接是否成功。如图10.12所示。,10.2 管理服务器范围的安全性,管理登录名3利用系统过程管理登录名利用master数据库下的下列系统存储过程sp_addlogin、sp_droplogin、sp_password也可以用于管理SQL Server的登录名。(1)sp_addlogin。系统过程sp_addlogin可以用于创建SQL Server登录名,用户可以通过该登录访问SQL Server系统,其语法过程如下:sp_addlogin login_
18、name,passwd,database,language,例10.5 利用系统过程sp_addlogin向“职员管理”数据库创建3个新登录。sp_addlogin rose,aabbcc,teachingGOsp_addlogin hanry,aabbcc,teaching GOsp_addlogin pool,aabbcc,teaching GO,10.2 管理服务器范围的安全性,管理登录名3利用系统过程管理登录名(2)sp_droplogin。利用系统存储过程sp_droplogin可以删除一个现有的SQL Server登录名,sp_droplogin系统过程可以通过系统表syslogi
19、ns中删除相应的行来达到删除登录名的目的。需要注意的是,正在访问的SQL Server 2005系统中的任何一个数据库的SQL Server登录名是不能被删除的。若要删除某登录名,必须先利用系统过程sp_revokedbaccess删除相应的数据库用户。,10.2 管理服务器范围的安全性,管理登录名3利用系统过程管理登录名(3)sp_password。系统存储过程sp_password为SQL Server登录创建密码,或替换现有的口令密码。利用该过程用户可以随时修改自己的口令密码,系统管理员通过sp_password可以更改任何口令密码。例如:sp_password aabbcc,11223
20、3,hanry,10.2 管理服务器范围的安全性,管理登录名4.密码的复杂性策略SQL Server 2005的密码复杂性策略是指一系列限制密码复杂性的规则。密码复杂性策略通过增加可能密码的数量来阻止强力攻击。实施密码复杂性策略时,新密码必须符合以下原则:长度至少有6个字符,最多可包含 128 个字符。密码包含以下4类字符中的3类:英文大写字母(A-Z)、英文小写字母(a-z)、10个基本数字(0-9)、非字母数字(例如:!、$、#或%)字典中查不到,且不是命令名、人名或用户名,不得包含全部或部分用户名。定期更改且与以前的密码明显不同的密码。,10.2 管理服务器范围的安全性,管理凭据 凭据是
21、包含连接到 SQL Server 之外的资源所需的身份验证信息的记录。1凭据的构成大多数凭据包含一个 Windows 登录名和密码。通过凭据,使用 SQL Server身份验证连接到 SQL Server 的用户可以连接到 Windows 或其他 SQL Server 以外的资源。在创建凭据之后,可以将凭据映射到登录名。单个凭据可映射到多个SQL Server 登录名,但是一个SQL Server 登录名只能映射到一个凭据。系统凭据是自动创建的,并与特定端点关联,其名称以#开头。,10.2 管理服务器范围的安全性,管理凭据 2.创建凭据的过程下面介绍创建凭据平局pingju的一般步骤。(1)在
22、“对象资源管理器”下,右击“安全性”下的“凭据”节点,在弹出的快捷菜单中选择“新建凭据”命令。(2)在弹出的“新建凭据”对话框中,输入凭据名称(pingju)、标识(JIANG-N9VJWXJ11 Administrator)和密码,如图10.13所示,即可完成创建凭据的操作。,10.2 管理服务器范围的安全性,管理凭据 2.创建凭据的过程例10.6 在 sys.credentials 目录视图中查看凭据的有关信息。分析:用户可以利用SELECT语句在sys.credentials目录视图中查看凭据的相关信息。程序代码如下:SELECT*FROM sys.credentials,例10.7 创
23、建映射到凭据的登录名分析:创建一个登录名USER1,然后将其映射到凭据pingju。程序代码如下:CREATE LOGIN USER1 WITH PASSWORD=1A2B3C4D CREENTIAL=pingjuGO,10.3 管理数据库范围的安全性,访问一个服务器并不意味着用户自动拥有数据库的访问权限。DBA以下列方式之一指定一个数据库登录用户:在每个用户需要访问的数据库中,创建一个与用户登录名对应的数据库用户。将数据库配置为把登录名或数据库用户作为数据库角色的成员对待的方式,使得用户能够继承角色中的所有权限。将登录名设置为使用默认账户之一:guest或dbo(数据库拥有者)。一旦授予了对
24、数据库的访问权限,用户就可以看到所有数据库对象。,10.3 管理数据库范围的安全性,10.3.1 数据库角色数据库角色是在数据库级别定义的,并且存在于每个数据库中,是对数据库对象操作权限的集合。SQL Server 2005的数据库角色分为固定数据库角色和用户自定义数据库角色。后者又分为标准角色和应用程序角色两种。1固定数据库角色固定数据库角色是数据库级别的主体,可以管理数据库作用域的可保护对象,其中,public公有角色比较特殊。每个被授予对数据库的访问权限的用户会自动成为公有角色的成员,并继承授予它的权限。,10.3 管理数据库范围的安全性,10.3.1 数据库角色1固定数据库角色一般情况
25、下,public角色允许用户做以下操作:public角色为数据库中所有用户保持默认权限。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限。通过guest账户访问任意数据库。用某些系统存储过程显示master数据库中的信息,查看系统表。执行一些不需要权限的语句,例如PRINT。表10.6具体列出了所有数据库角色的功能。,10.3 管理数据库范围的安全性,10.3.1 数据库角色1固定数据库角色对于某个数据库而言,每一个数据库角色都有它特定的许可。可以用系统过程sp_dbfixdrolepermission来查看每一个固定数据库角色的许可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer25 安全
链接地址:https://www.31ppt.com/p-5449359.html