安全性-安全保护及用户ppt课件_第1页
安全性-安全保护及用户ppt课件_第2页
安全性-安全保护及用户ppt课件_第3页
安全性-安全保护及用户ppt课件_第4页
安全性-安全保护及用户ppt课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2222章章 安全性安全性- -安全保护及用户权限安全保护及用户权限安全性是数据库最重要的特性之一,可将保护安全性是数据库最重要的特性之一,可将保护SQL Server视为一系列步骤视为一系列步骤,其涉及到,其涉及到4方面:平台、身份验证、对象(包括数据)及访问系统的应用程序;方面:平台、身份验证、对象(包括数据)及访问系统的应用程序;而而SQL注入是一种最为常见的攻击方式,严重威胁到注入是一种最为常见的攻击方式,严重威胁到SQL Server的安全性;合理的安全性;合理的用户权限也是系统安全的保障之一。的用户权限也是系统安全的保障之一。22.1 22.1 架构架构架构是包含表、视图、过程

2、等的容器,其位于数据库内部,而数据库位于架构是包含表、视图、过程等的容器,其位于数据库内部,而数据库位于服务器内部。这些实体像嵌套框一样放置在一起。服务器是最外面的框,而架构服务器内部。这些实体像嵌套框一样放置在一起。服务器是最外面的框,而架构是最里面的框。是最里面的框。22.1.1 22.1.1 用户与架构的分离用户与架构的分离在在SQL Server 2008中,架构不等效于数据库用户。现在,每个架构都是独中,架构不等效于数据库用户。现在,每个架构都是独立于其创建数据库用户存在的不同命名空间。也就是说,架构只是对象的容器。立于其创建数据库用户存在的不同命名空间。也就是说,架构只是对象的容器

3、。任何用户都可以拥有架构,并且架构所有权可以转移。任何用户都可以拥有架构,并且架构所有权可以转移。22.1.2 22.1.2 新目录视图新目录视图在在SQL Server 2008中架构是反映的显式实体。因此,架构只能有一个所有中架构是反映的显式实体。因此,架构只能有一个所有者。但一个用户可以拥有一个架构,也可以拥有多个架构,还可以不荣拥有架构者。但一个用户可以拥有一个架构,也可以拥有多个架构,还可以不荣拥有架构。这种复杂关系并未在以前数据库版本的系统表中反映,因此。这种复杂关系并未在以前数据库版本的系统表中反映,因此SQL Server 2008使使用了新的目录视图,以准确反映新的元数据。用

4、了新的目录视图,以准确反映新的元数据。22.1.3 22.1.3 什么是默认架构什么是默认架构每个用户都拥有一个默认架构,可以使用每个用户都拥有一个默认架构,可以使用CREATE USER或或ALTER USER的的DEFAULT_SCHEMA选项来设置和更改默认架构。如果未定义选项来设置和更改默认架构。如果未定义DEFAULT_SCHEMA,则数据库用户将使用,则数据库用户将使用dbo作为默认架构。如存储过程的名作为默认架构。如存储过程的名字一般为字一般为dbo.uspGetBillOfMaterials。22.2 22.2 主体主体主体是可以请求主体是可以请求SQL Server资源的实体

5、。与资源的实体。与SQL Server授权模型的其他组授权模型的其他组件一样,主体也可以按层次结构排列。主体的影响范围取决于主体定义的范围(件一样,主体也可以按层次结构排列。主体的影响范围取决于主体定义的范围(Windows、服务器或数据库),以及主体是否不可分或是一个集合。、服务器或数据库),以及主体是否不可分或是一个集合。22.2.1 22.2.1 典型的主体典型的主体在在SQL Server 2008中典型的主体有中典型的主体有SQL Server sa登录名、登录名、public数据库数据库角色,以及基于证书的角色,以及基于证书的SQL Server登录名。登录名。(1)SQL Ser

6、ver sa登录名登录名(2)public数据库角色数据库角色(3)基于证书的)基于证书的SQL Server登录名登录名(4)客户端和数据库服务器)客户端和数据库服务器(5)非主体,)非主体,INFORMATION_SCHEMA和和sys22.2.2 22.2.2 选择身份验证模式选择身份验证模式对于对于SQL Server 2008的登录名主体,在安装过程中,必须为数据库引擎选的登录名主体,在安装过程中,必须为数据库引擎选择身份验证模式。可供选择的模式有两种:择身份验证模式。可供选择的模式有两种:Windows身份验证模式和混合模式。身份验证模式和混合模式。Windows身份验证模式会启用

7、身份验证模式会启用Windows身份验证并禁用身份验证并禁用SQL Server身份验证。身份验证。混合模式会同时启用混合模式会同时启用Windows身份验证和身份验证和SQL Server身份验证。身份验证。Windows身份身份验证始终可用,并且无法禁用。验证始终可用,并且无法禁用。(1)配置身份验证模式)配置身份验证模式(2)通过)通过Windows身份验证进行连接身份验证进行连接(3)通过)通过SQL Server身份验证进行连接身份验证进行连接(4)SQL Server身份验证的缺点身份验证的缺点(5)SQL Server身份验证的优点身份验证的优点22.3 SQL Server22

8、.3 SQL Server登录用户的管理登录用户的管理操作操作SQL Server的人员一般称为的人员一般称为SQL Server用户,在打开用户,在打开SQL Server后后,都会出现一个连接对话框,要求输入服务器名称和身份验证等信息。身份验证,都会出现一个连接对话框,要求输入服务器名称和身份验证等信息。身份验证信息就是一个用户的用户名和密码,通过信息就是一个用户的用户名和密码,通过SQL Server的的“用户用户”对象,可以设置对象,可以设置数据库的使用权限。同一个数据库可以拥有多个用户,同一个用户也可以同时访数据库的使用权限。同一个数据库可以拥有多个用户,同一个用户也可以同时访问多个

9、数据库。问多个数据库。22.3.1 22.3.1 添加用户添加用户使用使用SQL Server Management Studio可以可视化的添加用户,步骤如下可以可视化的添加用户,步骤如下所示。所示。22.3.2 22.3.2 使用用户登录使用用户登录创建登录名后,可以用该登录名来登录数据库实例,下面就列用上面创建创建登录名后,可以用该登录名来登录数据库实例,下面就列用上面创建好的登录名进行操作,步骤如下所示。好的登录名进行操作,步骤如下所示。22.3.3 22.3.3 为用户设置权限为用户设置权限本节介绍在本节介绍在SQL Server Management Studio里为用户添加权限的

10、方法。里为用户添加权限的方法。步骤如下。步骤如下。22.4 22.4 角色角色为便于管理服务器和数据库上的权限,为便于管理服务器和数据库上的权限,SQL Server提供了若干提供了若干“角色角色”,这些角色是用于分组其他主体的安全主体。这些角色是用于分组其他主体的安全主体。“角色角色”类似于类似于Microsoft Windows操作系统中的操作系统中的“组组”。22.4.1 22.4.1 服务器级别角色服务器级别角色服务器级角色也称为服务器级角色也称为“固定服务器角色固定服务器角色”,因为用户不能创建新的服务器,因为用户不能创建新的服务器级角色。服务器级角色的权限作用域为服务器范围。用户可

11、以向服务器级角色中级角色。服务器级角色的权限作用域为服务器范围。用户可以向服务器级角色中添加添加SQL Server登录名、登录名、Windows账户和账户和Windows组。固定服务器角色的每个组。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。成员都可以向其所属角色添加其他登录名。22.4.2 22.4.2 数据库级别的角色数据库级别的角色为便于管理数据库中的权限,为便于管理数据库中的权限,SQL Server同样也提供了若干同样也提供了若干“角色角色”,这,这些角色是用于分组其他主体的安全主体。数据库级角色的权限作用域为数据库范些角色是用于分组其他主体的安全主体。数据库级角色的

12、权限作用域为数据库范围。围。SQL Server中有两种类型的数据库级角色:数据库中预定义的中有两种类型的数据库级角色:数据库中预定义的“固定数据库固定数据库角色角色”和可以自己创建的和可以自己创建的“灵活数据库角色灵活数据库角色”。22.5 22.5 权限权限每个每个SQL Server安全对象都有可以授予主体的关联权限。从大的范围来讲安全对象都有可以授予主体的关联权限。从大的范围来讲,SQL Server 2008的权限也无非是服务器级安全性的权限,就是数据库库安全性的权限也无非是服务器级安全性的权限,就是数据库库安全性的权限。的权限。22.5.1 22.5.1 了解权限了解权限本节需要先

13、了解数据库都提供了哪些权限。本节需要先了解数据库都提供了哪些权限。22.5.2 22.5.2 权限层次结构权限层次结构数据库引擎管理着可以通过权限进行保护的实体的分层集合。这些实体称数据库引擎管理着可以通过权限进行保护的实体的分层集合。这些实体称为为“安全对象安全对象”。在安全对象中,最突出的是服务器和数据库,但可以在更细的。在安全对象中,最突出的是服务器和数据库,但可以在更细的级别上设置离散权限。级别上设置离散权限。SQL Server通过验证主体是否已获得适当的权限来控制主通过验证主体是否已获得适当的权限来控制主体对安全对象执行的操作。体对安全对象执行的操作。22.5.3 22.5.3 将

14、用户设为服务器角色成员将用户设为服务器角色成员既然角色相当于用户组,那么就可以将用户设为角色成员,以继承角色的既然角色相当于用户组,那么就可以将用户设为角色成员,以继承角色的权限,下面将权限,下面将WANG账户设为账户设为dbcreator角色成员为例,介绍如何将用户设为角色角色成员为例,介绍如何将用户设为角色成员。成员。22.5.4 22.5.4 将用户设为数据库角色成员将用户设为数据库角色成员将用户设为数据库角色成员与将用户设为服务器角色成员的操作类似,只将用户设为数据库角色成员与将用户设为服务器角色成员的操作类似,只是权限不同,下面以将是权限不同,下面以将WANG账户设为账户设为db_d

15、atareader角色成员为例,介绍如何将角色成员为例,介绍如何将用户设为数据库角色成员。用户设为数据库角色成员。22.6 SQL22.6 SQL注入的安全防范注入的安全防范现在现在SQL注入已经成为所有数据库应用程序所必须注意的问题。注入已经成为所有数据库应用程序所必须注意的问题。SQL注入注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到符串传递到SQL Server的实例以进行分析和执行。任何构成的实例以进行分析和执行。任何构成SQL语句的过程都应语句的过程都应进行注入漏洞检查,因为进

16、行注入漏洞检查,因为SQL Server将执行其接收到的所有语法有效的查询。一将执行其接收到的所有语法有效的查询。一个有经验的、坚定的攻击者甚至可以操作参数化数据。个有经验的、坚定的攻击者甚至可以操作参数化数据。22.6.1 22.6.1 什么是什么是SQLSQL注入注入SQL注入的形式包括直接将代码插入到与注入的形式包括直接将代码插入到与SQL命令串联在一起,并使其得命令串联在一起,并使其得以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。在存储的字符串随后串连到一个动态元数据存储的

17、字符串。在存储的字符串随后串连到一个动态SQL命令中时,将执命令中时,将执行该恶意代码。行该恶意代码。22.6.2 22.6.2 验证所有用户输入验证所有用户输入始终通过测试类型、长度、格式和范围来验证用户输入。实现对恶意输入始终通过测试类型、长度、格式和范围来验证用户输入。实现对恶意输入的预防时,注意应用程序的体系结构和部署方案。注意,设计为在安全环境中运的预防时,注意应用程序的体系结构和部署方案。注意,设计为在安全环境中运行的程序可能会被复制到不安全的环境中。行的程序可能会被复制到不安全的环境中。22.6.3 22.6.3 检查代码中的检查代码中的SQLSQL注入注入应检查所有调用应检查所

18、有调用EXECUTE、EXEC或或sp_executesql的代码。可以使用类的代码。可以使用类似如下的查询来帮助标识包含这些语句的过程。似如下的查询来帮助标识包含这些语句的过程。1SELECT object_Name(id) FROM syscomments 2WHERE UPPER(text) LIKE %EXECUTE (% 3OR UPPER(text) LIKE %EXEC (% 4OR UPPER(text) LIKE %SP_EXECUTESQL% (1)使用)使用QUOTENAME()和和REPLACE()包装参数包装参数 (2)由数据截断启用的注入)由数据截断启用的注入(3)使用)使用QUOTENAME(variable,)和和REPLACE()时的截断时的截断(4)使用)使用QUOTENAME(variable,)时的截断时的截断22.7.1 22.7.1 描述登入、用户、角色的区别描述登入、用户、角色的区别这个题目很容易把考试者绕进去。它们的区别和说明如下。这个题目很容易把考试者绕进去。它们的区别和说明如下。登入是登入是SQL实例级

温馨提示

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

评论

0/150

提交评论