安全性-安全保护及用户.ppt

上传人:tian****1990 文档编号:7981356 上传时间:2020-03-26 格式:PPT 页数:27 大小:131.05KB
返回 下载 相关 举报
安全性-安全保护及用户.ppt_第1页
第1页 / 共27页
安全性-安全保护及用户.ppt_第2页
第2页 / 共27页
安全性-安全保护及用户.ppt_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第22章安全性 安全保护及用户权限 安全性是数据库最重要的特性之一 可将保护SQLServer视为一系列步骤 其涉及到4方面 平台 身份验证 对象 包括数据 及访问系统的应用程序 而SQL注入是一种最为常见的攻击方式 严重威胁到SQLServer的安全性 合理的用户权限也是系统安全的保障之一 22 1架构 架构是包含表 视图 过程等的容器 其位于数据库内部 而数据库位于服务器内部 这些实体像嵌套框一样放置在一起 服务器是最外面的框 而架构是最里面的框 22 1 1用户与架构的分离 在SQLServer2008中 架构不等效于数据库用户 现在 每个架构都是独立于其创建数据库用户存在的不同命名空间 也就是说 架构只是对象的容器 任何用户都可以拥有架构 并且架构所有权可以转移 22 1 2新目录视图 在SQLServer2008中架构是反映的显式实体 因此 架构只能有一个所有者 但一个用户可以拥有一个架构 也可以拥有多个架构 还可以不荣拥有架构 这种复杂关系并未在以前数据库版本的系统表中反映 因此SQLServer2008使用了新的目录视图 以准确反映新的元数据 22 1 3什么是默认架构 每个用户都拥有一个默认架构 可以使用CREATEUSER或ALTERUSER的DEFAULT SCHEMA选项来设置和更改默认架构 如果未定义DEFAULT SCHEMA 则数据库用户将使用dbo作为默认架构 如存储过程的名字一般为dbo uspGetBillOfMaterials 22 2主体 主体是可以请求SQLServer资源的实体 与SQLServer授权模型的其他组件一样 主体也可以按层次结构排列 主体的影响范围取决于主体定义的范围 Windows 服务器或数据库 以及主体是否不可分或是一个集合 22 2 1典型的主体 在SQLServer2008中典型的主体有SQLServersa登录名 public数据库角色 以及基于证书的SQLServer登录名 1 SQLServersa登录名 2 public数据库角色 3 基于证书的SQLServer登录名 4 客户端和数据库服务器 5 非主体 INFORMATION SCHEMA和sys 22 2 2选择身份验证模式 对于SQLServer2008的登录名主体 在安装过程中 必须为数据库引擎选择身份验证模式 可供选择的模式有两种 Windows身份验证模式和混合模式 Windows身份验证模式会启用Windows身份验证并禁用SQLServer身份验证 混合模式会同时启用Windows身份验证和SQLServer身份验证 Windows身份验证始终可用 并且无法禁用 1 配置身份验证模式 2 通过Windows身份验证进行连接 3 通过SQLServer身份验证进行连接 4 SQLServer身份验证的缺点 5 SQLServer身份验证的优点 22 3SQLServer登录用户的管理 操作SQLServer的人员一般称为SQLServer用户 在打开SQLServer后 都会出现一个连接对话框 要求输入服务器名称和身份验证等信息 身份验证信息就是一个用户的用户名和密码 通过SQLServer的 用户 对象 可以设置数据库的使用权限 同一个数据库可以拥有多个用户 同一个用户也可以同时访问多个数据库 22 3 1添加用户 使用SQLServerManagementStudio可以可视化的添加用户 步骤如下所示 22 3 2使用用户登录 创建登录名后 可以用该登录名来登录数据库实例 下面就列用上面创建好的登录名进行操作 步骤如下所示 22 3 3为用户设置权限 本节介绍在SQLServerManagementStudio里为用户添加权限的方法 步骤如下 22 4角色 为便于管理服务器和数据库上的权限 SQLServer提供了若干 角色 这些角色是用于分组其他主体的安全主体 角色 类似于MicrosoftWindows操作系统中的 组 22 4 1服务器级别角色 服务器级角色也称为 固定服务器角色 因为用户不能创建新的服务器级角色 服务器级角色的权限作用域为服务器范围 用户可以向服务器级角色中添加SQLServer登录名 Windows账户和Windows组 固定服务器角色的每个成员都可以向其所属角色添加其他登录名 22 4 2数据库级别的角色 为便于管理数据库中的权限 SQLServer同样也提供了若干 角色 这些角色是用于分组其他主体的安全主体 数据库级角色的权限作用域为数据库范围 SQLServer中有两种类型的数据库级角色 数据库中预定义的 固定数据库角色 和可以自己创建的 灵活数据库角色 22 5权限 每个SQLServer安全对象都有可以授予主体的关联权限 从大的范围来讲 SQLServer2008的权限也无非是服务器级安全性的权限 就是数据库库安全性的权限 22 5 1了解权限 本节需要先了解数据库都提供了哪些权限 22 5 2权限层次结构 数据库引擎管理着可以通过权限进行保护的实体的分层集合 这些实体称为 安全对象 在安全对象中 最突出的是服务器和数据库 但可以在更细的级别上设置离散权限 SQLServer通过验证主体是否已获得适当的权限来控制主体对安全对象执行的操作 22 5 3将用户设为服务器角色成员 既然角色相当于用户组 那么就可以将用户设为角色成员 以继承角色的权限 下面将WANG账户设为dbcreator角色成员为例 介绍如何将用户设为角色成员 22 5 4将用户设为数据库角色成员 将用户设为数据库角色成员与将用户设为服务器角色成员的操作类似 只是权限不同 下面以将WANG账户设为db datareader角色成员为例 介绍如何将用户设为数据库角色成员 22 6SQL注入的安全防范 现在SQL注入已经成为所有数据库应用程序所必须注意的问题 SQL注入是一种攻击方式 在这种攻击方式中 恶意代码被插入到字符串中 然后将该字符串传递到SQLServer的实例以进行分析和执行 任何构成SQL语句的过程都应进行注入漏洞检查 因为SQLServer将执行其接收到的所有语法有效的查询 一个有经验的 坚定的攻击者甚至可以操作参数化数据 22 6 1什么是SQL注入 SQL注入的形式包括直接将代码插入到与SQL命令串联在一起 并使其得以执行的用户输入变量 一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串 在存储的字符串随后串连到一个动态SQL命令中时 将执行该恶意代码 22 6 2验证所有用户输入 始终通过测试类型 长度 格式和范围来验证用户输入 实现对恶意输入的预防时 注意应用程序的体系结构和部署方案 注意 设计为在安全环境中运行的程序可能会被复制到不安全的环境中 22 6 3检查代码中的SQL注入 应检查所有调用EXECUTE EXEC或sp executesql的代码 可以使用类似如下的查询来帮助标识包含这些语句的过程 1SELECTobject Name id FROMsyscomments2WHEREUPPER text LIKE EXECUTE 3ORUPPER text LIKE EXEC 4ORUPPER text LIKE SP EXECUTESQL 1 使用QUOTENAME 和REPLACE 包装参数 2 由数据截断启用的注入 3 使用QUOTENAME variable 和REPLACE 时的截断 4 使用QUOTENAME variable 时的截断 22 7 1描述登入 用户 角色的区别 这个题目很容易把考试者绕进去 它们的区别和说明如下 登入是SQL实例级的 用户是数据库级的 角色有实例级和数据库级两种 登入决定你是否能访问SQL实例 用户与登录对应 确实某个登录后 它对那些数据库有哪些权限 角色是为了方便管理一类登录或者用户所具有的权限 当某一类登录或者用户具有相同的权限时 可以简单地给予它们对应的角色即可 22 7 2在SQLServer中如何堵住SQL注入的漏洞 要确保使用数据库的Web应用程序最少访问权限 管理员确保需要使用Web应用的SQL用户具有最小权限是十分必要的 Web应用程序不应当给予以诸如 sysadmin 的服务器管理员权限 或 db owner 的数据库权限 22 8小结 数据库操作过程中 其安全性一直都是开发及人员最容易忽略的问题之一 对于数据库刚入门的用户更是如此
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!