安全生产_数据库的安全性管理教材_第1页
安全生产_数据库的安全性管理教材_第2页
安全生产_数据库的安全性管理教材_第3页
安全生产_数据库的安全性管理教材_第4页
安全生产_数据库的安全性管理教材_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第12章数据库的安全性管理 河北工程大学信电学院崔冬 数据库原理与SQLServer2005应用 教学目标 了解SQLServer2005的安全策略掌握SQLServer2005的网络配置掌握对MicrosoftSQLServer实例 数据库访问的管理掌握对实例 数据库 应用程序的角色管理了解数据库架构及其作用掌握对SQLServer实例 数据库 表和列访问的权限管理掌握对可编程对象访问的权限管理 SQLServer2005 教学重点 掌握SQLServer2005的网络配置掌握对MicrosoftSQLServer实例 数据库访问的管理掌握对实例 数据库 应用程序的角色管理掌握对SQLServer实例 数据库 表和列访问的权限管理掌握对可编程对象访问的权限管理 SQLServer2005 教学过程 SQLSever的安全机制登录和用户角色管理权限管理 SQLServer2005 成功登录客户机数据的加密和解密成功登录服务器成功访问数据库成功访问数据对象 SQLServer2005的安全机制 SQLServer2005 12 1SQLServer2005安全机制安全的总体策略 1 远程网络主机通过Internet访问SQLServer2005服务器所在的网络 2 网络中的主机访问SQLServer2005服务器 3 访问SQLServer2005数据库 4 访问SQLServer2005数据库中的表和列 SQLServer2005 12 1SQLServer的安全性机制 12 1 1权限层次机制 SQLServer2005的安全性管理可分为3个等级 1 操作系统级 2 SQLServer级3 数据库级 12 1 2操作系统级的安全性 在用户使用安客户计算机通过网络实现SQLServer服务器的访问时 用户首先要获得计算机操作系统的使用权 12 1 3SQLServer级的安全性 SQLServer的服务器级安全性建立在控制服务器登录帐号和口令的基础上 SQLServer采用了标准SQLServer登录和集成WindowsNT登录两种方式 无论是使用那种登录方式 用户在登录时提供的登录帐号和口令 SQLServer2005 12 1SQLServer的安全性机制 12 1 4数据库级的安全性 在用户通过SQLServer服务器的安全性检验以后 将直接面对不同的数据库入口这是用户将接受的第三次安全性检验 在建立用户的登录帐号信息时 SQLServer会提示用户选择默认的数据库 以后用户每次连接上服务器后 都会自动转到默认的数据库上 对任何用户来说master数据库的门总是打开的 设置登录账号时没有指定默认的数据库 则用户的权限将局限在master数据库以内 SQLServer2005 授权远程访问为了远程访问SQLServer实例 需要一个网络协议以建立到SQLServer服务器的连接 为了避免系统资源的浪费 只需要激活自己需要的网络连接协议 SQLServer2005的网络配置 SQLServer2005 1 从 开始 菜单中选择 所有程序 MicrosoftSQLServer2005 配置工具 SQLServer外围应用配置器 SQLServer2005的网络配置 SQLServer2005 2 在窗口底部的 配置外围应用到Localhost 区域 单击 服务和连接的外围应用配置器 SQLServer2005的网络配置 SQLServer2005 SQLServer2005的网络配置 3 随后在弹出窗口的左半部分 显示了可以进行配置的组件列表 在这个列表中 展开 DatabaseEngine 图标并单击 远程连接 SQLServer2005 SQLServer2005的网络配置 4 在右侧面板中选择 本地连接和远程连接 然后选择一个协议选项 基于安全和性能的考虑 推荐使用TCP IP协议 SQLServer2005 要想全面了解SQLServer2005的安全管理机制 必须首先了解SQLServer2005的安全管理机制的身份验证模式 各层SQLServer安全控制策略是通过各层安全控制系统的身份验证实现的 身份验证是指当用户访问系统时 系统对该用户的账号和口令的确认过程 身份验证的内容包括确认用户的账号是否有效 能否访问系统 能访问系统的哪些数据等 SQLServer2005的两种身份验证模式 Windows身份验证模式混合模式 12 2身份验证模式 SQLServer2005 12 2 1身份验证概述身份验证方式是指系统确认用户的方式 SQLServer的安全系统可在任何服务器上通过两种方式实现 SQLServer和Windows结合使用 SQLServerandWindows 使用Windows WindowsOnly 即 SQLServer身份验证 SQLServerAuthentication 方式和Windows身份验证 WindowsAuthentication 方式 这两种方式都有自己的登录账号类型 12 2身份验证模式 SQLServer2005 1 Windows身份验证模式在最外层 SQLServer的登录安全性直接集成到Widows的安全上 它允许Windows服务器验证用户 使用这种验证方式 SQLServer就可以利用Windows的安全特性 例如安全验证和密码加密 审核 密码过期 最短密码长度 以及在多次登录请求无效后锁定帐号 Windows身份验证模式 依赖于Windows操作系统提供的登录安全机制 SQLServer2005检验登录是否被Windows验证身份 并根据这一验证来决定是否允许该登录访问SQLServer2005服务器 12 2身份验证模式 SQLServer2005 2 混合模式混合模式最适合用于外界用户访问数据库或不能登录到Windows域时 身份验证模式是对服务器来说的 而身份验证方式是对客户端来说的 混合方式的SQLServer身份验证方式有下列优点 混合方式允许非Windows客户 Internet客户和混合的客户组连接到SQLServer中 混合身份验证模式 首先用户登录客户端网络 然后使用登录名和密码打开与SQLServer2005服务器的连接 此时的连接是一个不安全的连接 SQLServer2005服务器将登录名和密码与预先存储在数据库中的登录名和密码进行比较和验证 如果一致 则允许该登录访问相应资源 12 2身份验证模式 SQLServer2005 注意 当采用混合模式安装MicrosoftSQLServer系统之后 应该为sa指定一个密码 SQLServer2005安装进程在SQLServer2005安装过程中创建了一个SQLServer登录名sa sa登录名始终都会创建 即使安装时选择的是Windows身份验证模式 sa是一个默认的SQLServer登录名 拥有操作SQLServer系统的所有权限 该登录名不能被删除 SQLServer2005 设置身份验证模式 下面看一看如何在MicrosoftSQLServerManagementStudio中设置身份验证模式 1 打开MicrosoftSQLServerManagementStudio并连接到目标服务器 在 资源管理器 窗口中 在目标服务器上单击鼠标右键 弹出快捷菜单 从中选择 属性 命令 2 出现 服务器属性 窗口 选择 选择页 中的 安全性 选项 进入安全性设置页面 3 在 服务器身份验证 选项级中选择验证模式前的单选按钮 选中需要的验证模式 用户还可以在 登录审核 选项级中设置需要的审核方式 4 最后单击 确定 按钮 完成登录验证模式的设置 SQLServer2005 12 2 2身份验证方式设置在SQLServerManagementStudio中可以查看和更改数据库系统的身份验证方式 启动SQLServerManagementStudio后 在左上角 已注册服务器 组件中 打开其属性窗口 在该窗口中可以查看和改变身份验证方式 用户可以通过选择身份验证下拉列表框选择服务器的身份验证登录方式 12 2身份验证模式 SQLServer2005 如果用户选择 Windows身份验证模式 即用户只能通过Windows登录帐号登录SQLServer2005 如果用户选择 SQLServer和Windows身份验证模式 方式 用户即可以通过Windows登录帐号登录SQLServer2005数据库管理系统 也可以使用SQLServer帐号 登录SQLServer2005的SQLServer2005数据库管理系统 SQLServer2005 12 3登录 12 3 1登录身份验证模式及其设置 本节主要讲解登录和用户的基本概念 登录验证模式及其创建登录和用户的操作步骤 概念 登录登录 服务器级上的安全对象 用于连接到SQLServer账户都称SQLServer的登录 用户是为特定数据库定义的 要创建用户 你必须已经定义了该用户的登录 用户ID同登录类似 但是它的名称不需要与登录相同 SQLServer2005 12 3 2创建登录 登录属于服务器级的安全策略 要连接到数据库 首先要存在一个合法的登录 在ManagementStudio中创建登录的步骤如下 1 打开MicrosoftSQLServerManagementStudio并连接到目标服务器 在 对象资源管理器 窗口中 单击 安全性 节点前的 号 展开安全节点 在 登录名 上单击鼠标右键 弹出快捷菜单 从中 新建登录 N 命令 2 出现 登录名 对话框 单击需要创建的登录模式前的单选按钮 选定验证方式 3 选择 选择页 中的服务器角色 项 出现服务器角色设定页面 4 选择 登录名 对话框中的 用户映射 项 进入映射设置页面 可以为这个新建的登录添加映射到此登录名的用户 并添加数据库角色 从而使该用户获得数据库的相应角色对应的数据库权限 SQLServer2005 创建和管理登录名 数据库安全与角色管理 SQLServer2005 创建登录 SQLServer2005 创建登录 2 使用Transact SQL创建登录 CREATELOGINlogin name WITH FROM WINDOWS WITH CERTIFICAEcertname ASYMMETRICKEYasym key name PASSWORD password HASHED MUST CHANGE SID sid DEFAULT DATABASE database DEFAULT LANGUAGE language CHEECK EXPIRATION ON OFF CHECK POLICY ON OFF CREDENTIAL credential name DEFAULT DATABASE database DEFAULT LANGUAGE language SQLServer2005 SQLServer2005 密码策略 Windows的密码策略包括了密码复杂性和密码过期两大特征 密码的复杂性是指通过增加更多可能的密码数量来阻止黑客的攻击 密码过期策略是指如何管理密码的使用期限 SQLServer2005 SQLServer2005能够对SQLServer登录名执行操作系统的密码实施策略 如果在Windows2003服务器版上运行SQLServer SQLServer将使用NetValidatePasswordPolicyAPI 应用程序接口 来控制以下三点 密码的复杂性密码的生存周期帐户锁定 SQLServer2005 如果在Windows2000服务器版上运行SQLServer SQLServer会使用MicrosoftBaselineSecurityAnalyzer MBSA 提供的本地密码复杂性规则来执行以下密码规则 密码不能为空或者NULL密码不能为登录名密码不能为机器名密码不能为 Password Admin 或者 Administrator SQLServer2005 维护登录 登录名创建之后 可以根据需要修改登录名的名称 密码 密码策略 默认的数据库等信息 可以禁用或启用该登录名 甚至可以删除不需要的登录名 ALTERLOGIN语句用来修改登录名的属性信息 修改登录名的名称与删除 重建该登录名是不同的 SQLServer2005 管理服务器安全 服务器安全的第一道防线 SQLServer2005服务器的安全建立在对服务器登录名和密码的控制基础之上 用户在登录服务器时所采用的登录名和密码 决定了用户在成功登录服务器后所拥有的访问权限 在SQLServer2005中 具有以下几种角色 1 public角色 2 固定服务器角色 3 固定数据库角色 4 用户定义的角色 5 应用程序角色 服务器安全的第一道防线 SQLServer2005 固定服务器角色 固定服务器角色也是服务器级别的主体 他们的作用范围是整个服务器 固定服务器角色已经具备了执行指定操作的权限 可以把其他登录名作为成员添加到固定服务器角色中 这样该登录名可以继承固定服务器角色的权限 MicrosoftSQLServer2005系统提供了8个固定服务器角色 SQLServer2005 服务器角色管理 SQLServer2005 固定服务器角色服务器级权限 bulkadmin已授予 ADMINISTERBULKOPERATIONSdbcreator已授予 CREATEDATABASEdiskadmin已授予 ALTERRESOURCESprocessadmin已授予 ALTERANYCONNECTION ALTERSERVERSTATEsecurityadmin已授予 ALTERANYLOGINserveradmin已授予 ALTERANYENDPOINT ALTERRESOURCES ALTERSERVERSTATE ALTERSETTINGS SHUTDOWN VIEWSERVERSTATEsetupadmin已授予 ALTERANYLINKEDSERVERsysadmin已使用GRANT选项授予 CONTROLSERVER SQLServer2005 固定服务器角色 在MicrosoftSQLServerManagementStudio中 可以按一下步骤为用户分配固定服务器角色 从而使该用户获取相应的权限 1 在 对象资源管理器 口中 但即服务器前的 号 展开服务器节点 但即 安全性 节点前的 号 展开安全性节点 这是再次节点下面可以看到固定服务器角色 在要给用户添加的目标角色上单击鼠标右键 弹出快捷菜单 从中选择 属性 R 命令 2 出现 服务器角色属性 对话框 单击 添加 A 按钮 3 出现 选择登陆名 对话框单击 浏览 B 按钮 4 出现 查找对象 对话框 在该对话框中 选择目标用户前的复选框 选中其用户 最后单击 确定 按钮 5 回到 选择登陆名 对话框 可以看到选中的目标用户已包含在对话框中 确定无误后 单击 确定 按钮 6 回到 服务器角色属性 对话框 确定添加的用户无误后 单击 确定 按钮 完成为用户分配角色的操作 SQLServer2005 固定服务器角色和登录名 在MicrosoftSQLServer系统中 可以把登录名添加到固定服务器角色中 使得登录名作为固定服务器角色的成员继承固定服务器角色的权限 对于登录名来说 可以判断其是否某个固定服务器角色的成员 通过查询系统函数IS SRVROLEMEMBER 可以查出当前用户是否属于一个服务器角色 可以使用系统存储过程sp addsrvrolemember为现有的服务器角色添加一个登录名 可以使用存储过程sp dropsrvrolemember将一个登录名从服务器角色中删除 用户可以使用sp helpsrvrolemember查看固定服务器角色中登录名信息 SQLServer2005 服务器安全的第二道防线 架构 用户和角色 SQLServer2005对数据库安全的管理 主要是通过对数据库的架构 用户名和角色的管理来实现 这是SQLServer2005服务器安全的第二道防线 SQLServer2005 12 4管理架构 SQLServer2005实现了ANSI中有关架构的概念 架构是数据对象管理的逻辑单位 属于数据库级的安全对象 也是SQLServer2005系统强调的新特点 是数据库对象的容器 在SQLServer2005中 一个数据库对象通过由4个命名部分所组成的结构来引用 使用架构的一个好处是它可以将数据库对象与数据库用户分离 数据库用户从数据库中删除更快速 管理架构包括创建架构 查看架构的信息 修改架构及删除架构等 SQLServer2005 创建架构 创建架构时 需要指定架构的所有者 即登录名 如果仅指定架构的名称 没有明确指定该架构的所有者 这时 该架构的所有者为当前执行该项操作的用户 另外 还可为架构设置数据库的访问权限 使用CREATESCHEMA语句不仅可以创建架构 而且在创建架构的同时还可以创建该架构所拥有的表 视图并且可以对这些对象设置权限 SQLServer2005 修改和删除架构 修改架构是指将特定架构中的对象转移到其他架构中 可以使用ALTERSCHEMA语句完成对架构的修改 需要注意的是 如果要更改对象本身的结构 那么应该使用针对该对象的ALTER语句 可以使用DROPSCHEMA语句来删除一个架构 SQLServer2005不允许删除其中仍含有对象的架构 只有当架构中不再包含有对象时 才可以被删除 可以通过目录视图sys schemas来获取架构的信息 SQLServer2005 当一个应用程序引用一个没有限定架构的数据库对象时 SQLServer将尝试在用户的默认架构中找出这个对象 如果对象没有在默认架构中 则SQLServer尝试在dbo架构中寻找这个对象 使用默认架构 SQLServer2005 管理对SQLServer数据库的访问对于需要进行数据访问的应用程序来说 仅仅为其授权访问SQLServer实例是不够的 在授权访问SQLServer实例之后 需要对特定的数据库进行访问授权 为访问数据库 所有数据库登录名 除了服务器角色sysadmin的成员 都要在自己要访问的数据库中与一个数据库用户建立映射 12 5管理数据库用户 SQLServer2005 12 5管理数据库用户 数据库用户是数据库级的主体 是登录名在数据库中的映射 是在数据库中执行操作和活动行动者 用户可以防止数据库被末授权的用户故意或无意地修改 SQLServer为一用户分配了唯一的用户名和密码 可以为不同账号授予不同的安全级别 在MicrosoftSQLServer2005系统中 数据库用户不能直接拥有表 视图等数据库对象 而是通过架构拥有这些对象 数据库用户管理包括创建用户 查看用户信息 修改用户 删除用户等操作 SQLServer2005 创建用户 1 使用ManagementStudio创建用户 1 打开MicrosoftSQLServerManagementStudio并连接到目标服务器 在 对象资源管理器 窗口中 单击 数据库 节点前的 号 展开数据库节点 单击要创建用户的目标数据节点前的 号 展开目标数据库节点Northwind 单击 安全性 节点前的 号 展开 安全性 节点 在 用户 上单击鼠标右键 弹出快捷菜单 从中选择 新建用户 N 命令 2 出现 数据库用户 新建 对话框 在 常规 页面中 填写 用户名 选择 登录名 和 默认架构 名称 添加此用户拥有的架构 添加此用户的数据库角色 3 在 数据库用户 新建 对话框的 选择页 中选择 安全对象 进入权限设置页面 即 安全对象 页面 最后 单击 数据库用户 新建 对话框底部的 确定 完成用户创建 SQLServer2005 1 创建数据库用户可以使用CREATEUSER语句创建数据库用户 2 管理数据库用户可以通过语句来检查当前的登录名是否可以登录到某个数据库 可以通过查询目录视图sys database principals来获取数据库用户的信息 可以使用DROPUSER语句删除一个数据库用户 SQLServer2005 3 管理孤立用户孤立用户指当前SQLServer实例中没有映射到登录名的数据库用户 可以获取孤立用户的信息SQLServer2005允许我们使用WITHOUTLOGIN子句来创建一个没有映射到登录名的用户 SQLServer2005 4 启用Guest用户一个没有映射到用户的登录名试图登录到数据库的时候 SQLServer将尝试使用Guest用户进行连接 SQLServer2005 12 6数据库角色 数据库角色是数据库级别的主体 也是数据库用户的集合 数据库用户可以作为数据库角色的成员 继承数据库角色的权限 数据库管理人员可以通过管理角色的权限来管理数据库用户的权限 MicrosoftSQLServer2005系统提供了9个固定数据库角色和public特殊角色 固定数据库角色也具有了预先定义好的权限 使用固定数据库角色可以大大简化数据库角色权限管理工作 SQLServer2005 public角色 public角色有两大特点 第一 初始状态时没有权限 第二 所有的数据库用户都是他的成员 SQLServer2005 数据库角色 在MicrosoftSQLServerManagementStudio创建新的数据库角色操作的具体步骤如下 1 展开要添加新角色的目标数据库 但及目标数据库节点下的 安全性 节点前的 号 展开此节点 然后在 角色 节点上单机右键 弹出快捷菜单 选择快捷菜单中的 新建 新建数据库角色 命令 2 出现 数据库角色 新建 对话框 在 常规 页面中 添加 角色名称 和 所有者 并选择此角色所拥有的架构 在此对话框中也可以单击 添加 按钮威信创建的角色添加用户 3 选择 选择页 中的 安全对象 项 进入权限设置页面 SQLServer2005 管理数据库角色 管理数据库角色包括创建数据库角色 添加和删除数据库角色成员 查看数据库角色信息 修改和删除角色等 可以使用CREATEROLE语句创建角色 为角色添加成员 可使用sp addrolemember存储过程 修改数据库角色的名称 可使用ALTERROLE语句 某个角色确实不再需要了 可使用DROPROLE语句或者使用sp droprolemember系统存储过程删除指定的角色 可以通过查询IS MEMBER系统函数来判断当前数据库用户是否属于某个数据库角色 SQLServer2005 12 7管理应用程序角色 应用程序角色是特殊的数据库角色 它可以使应用程序能够用其自身的 类似用户的权限来运行 在使用应用程序时 可以仅仅允许那些经过特定应用程序连接的用户来访问数据库中的特定数据 如果不通过这些特定的应用程序连接 那么无法访问这些数据 这是使用应用程序角色实现安全管理的目的 与数据库角色相比来说 应用程序角色有三个特点 第一 在默认情况下该角色不包含任何成员 第二 在默认情况下该角色是非活动的 必须激活之后才能发挥作用 第三 该角色有密码 只有拥有应用程序角色正确密码的用户才可以激活该角色 激活一个应用程序角色后 当前连接将丧失它所具备的特定用户权限 只获得应用程序角色所拥有的权限 SQLServer2005 创建应用程序角色 在MicrosoftSQLServer2005系统中 可以使用CREATEAPPLICATIONROLE语句创建应用程序角色 该语句的语法形式如下所示 CREATEAPPLICATIONROLEapplication role nameWITHPASSWORD password DEFAULT SCHEMA schema name SQLServer2005 应用程序角色在使用之前必须激活 可以通过执行sp setapprole系统存储过程来激活应用程序角色 在连接关闭或执行系统存储过程sp unsetapprole之前 被激活的应用程序角色都将保持激活状态 应用程序角色旨在由客户的应用程序使用 但同样可以在即筛T SQL批处理中使用它们 使用应用程序角色 SQLServer2005 如果需要删除应用程序角色 可以使用DROPAPPLICATIONROLE语句 删除应用程序角色 SQLServer2005 12 8管理权限 权限是执行操作 访问数据的通行证 只有拥有了针对某种安全对象的指定权限 才能对该对象执行相应的操作 在MicrosoftSQLServer2005系统中 不同的对象有不同的权限 SQLServer2005中的权限控制操作可以通过在SQLServerManagementStudio中 对用户的权限进行设置 也可以使用T SQL提供的GRANT REVOKE和DENY语句完成 SQLServer2005 在SQLServerManagementStudio中设置权限在SQLServerManagementStudio中 设置登录名的属性 设置帐号的 服务器角色 和 用户映射 并在 用户映射 中设置对于每个数据库的 数据库角色成员身份 系统默认每个帐号对每个数据库都已经拥有public角色 但public角色只说明 用户能 看到 该数据库 并不能操作该数据库 如果用户想要操作数据库 必须设置其他角色 例如设置db owner角色 该帐号就拥有SELECT INSERT DELETE UPDATE等权限 即可以象创建数据库的所有者一样操作数据库 权限操作 SQLServer2005 12 8权限管理 12 8 1服务器权限 一般只把服务器权限授给DBA 数据库管理员 他不需要修改或者授权给别的用户登录 12 8 2数据库对象权限 1 依次单击 对象资源管理器 窗口中树型节点前的 号 直到展开目标数据库的 用户 节点为止 在 用户 节点下面的目标用户上单击鼠标右键 弹出快捷菜单 从中选择 属性 R 命令 2 出现 数据库用户 对话框 选择 选择页 窗口中的 安全对象 项 进入权限设置页面 单击 添加 A 按钮 3 出现 添加对象 对话框 单击要添加的对象类别前的单选按钮 添加权限的对象类别 然后单击 确定 按钮 4 出现 选择对象 对话框 单击 对象类型 按钮 5 出现 选择对象类型 对话框 依次选择需要添加权限的对象类型前的复选框 选中其对象 最后单击 确定 按钮 SQLServer2005 12 8 2数据库对象权限 12 8 2数据库对象权限 6 回到 选择对象 对话框 此时在该对话框中出现了刚才选择的对象类型 单击该对话框中的 浏览 B 按钮 7 出现 查找对象 对话框 依次选择要添加权限的对象前的复选框 选中其对象 最后单击 确定 按钮 8 又回到 选择对象 对话框 并且已包含了选择的对象 确定无误后 单击该对话框中的 确定 按钮 完成对象选择操作 9 又回到 数据库用户 对话框窗口 此窗口中已包含用户添加的对象 依次选择每一个对象 并在下面的该对象的 显示权限 窗口中根据需要选择 授予 拒绝 列的复选框 添加或禁止对该 表 对象的相应访问权限 设置完每一个对象的访问权限后 单击 确定 按钮 完成给用户添加数据库对象权限所有操作 SQLServer2005 12 8 3数据库权限 在MicrosoftSQLServer2005中给用户添加数据库权限的具体步骤如下 1 对象资源管理器 窗口中 单击服务器前的 号 展开服务器节点 单击 数据库 前的 号 展在开数据库节点 再要给用户添加数据库权限的目标数据库上单击鼠标右键 弹出快捷菜单 从中选择 属性 R 命令 2 出现 数据库属性 对话框窗口 选择 选择页 窗口中的 权限 项 在该页面的 用户或角色 U 中选择要添加数据库权限的拥护 如果该用户不在列表中 请单击 添加 A 按钮 添加该用户到当前数据库中 然后在该用户的 显示权限 p 中添加相应的数据库权限 最后单击 确定 按钮 完成操作 SQLServer2005 常用对象的权限 在使用GRANT语句 REVOKE语句 DENY语句执行权限管理操作时 经常使用ALL关键字表示指定安全对象的常用权限 不同的安全对象往往具有不同的权限 SQLServer2005 数据库内的权限始终授予数据库用户 角色和Windows用户或组 但从不授予SQLServer登录 为数据库内的用户或角色设置适当权限的方法有 授予权限 拒绝权限和吊销权限 第一步就是检查DENY权限 如果权限被拒绝 则停止计算 并且不授予权限 如果不存在DENY 则下一步是将与对象关联的权限与调用方用户或进程的权限进行比较 在这一步中 可能会出现GRANT 授予 权限或REVOKE 吊销 权限 如果权限被授予 则停止计算并授予权限 如果权限被吊销 则删除先前GRANT或DENY的权限 因此 吊销权限不同于拒绝权限 REVOKE权限删除先前GRANT或DENY的权限 而DENY权限是禁止访问 因为明确的DENY权限优先于其他所有权限 所以即使已被授予访问权限 DENY权限也将禁止访问 T SQL语句权限 SQLServer2005 授予权限 在MicrosoftSQLServer2005系统中 可以使用GRANT语句将安全对象的权限授予指定的安全主体 在执行GRANT语句时 授权者必须具有带GRANTOPTION的相同权限 或具有隐含所授予权限的最高权限 SQLServer2005 GRANT将安全对象的权限授予主体 其语法格式如下 GRANT ALL PRIVILEGES permission column n n ON class securable TOprincipal n WITHGRANTOPTION ASprincipal 例12 1 把查询学生表的权限授给用户U1GRANTSELECTON学生表TOU1 授予权限 SQLServer2005 收回权限 如果希望从某个安全主体处收回权限 可以使用REVOKE语句 REVOKE语句是与GRANT语句相对应的 可以把通过GRANT语句授予给安全主体的权限收回 也就是说 使用REVOKE语句可以删除通过GRANT语句授予给安全主体的权限 SQLServer2005 REVOKE撤消对SQLServer2005安装的特定数据库对象的权限 其语法格式如下 REVOKE GRANTOPTIONFOR ALL PRIVILEGES permission column n n ON class securable TO FROM principal n CASCADE ASprincipal 收回权限 SQLServer2005 例12 6 把用户U4修改学生表学号的权限收回REVOKEUPDATE 学号 ON学生表FROMU4 例12 7 收回所有用户对教师表的查询权限REVOKESELECTON教师表FROMPUBLIC 例12 8 把用户U5对教师表的INSERT权限收回REVOKEINSERTON教师表FROMU5CASCADE 收回权限 SQLServer2005 否认权限 拒绝权限 安全主体可以通过两种方式获得权限 第一种方式是直接使用GRANT语句为其授予权限 第二种方式是通过作为角色成员继承角色的权限 使用REVOKE语句只能删除安全主体通过第一种方式得到的权限 要想彻底删除安全主体的特定权限必须使用DENY语句 DENY语句的语法形式与REVOKE语句非常类似 SQLServer2005 DENY语句拒绝对SQLServer2005安装的特定数据库对象的权限 防止主体通过其组或角色成员身份继承权限其语法格式如下 DENY ALL PRIVILEGES permission column n n ON class securable TOprincipal n CASCADE ASprincipal 例12 9 拒绝用户U1对教师表的SELECT权限 DENYSELECTON教师表TOU1 例12 10 拒绝U2对存储过程usp GetAllStudents的EXECUTE权限 DENYEXECUTEONusp GetAllStudentsTOU2 否认权限 SQLServer2005 12 9SQLServer2005内置的加密机制 MicrosoftSQLServer2005系统不是简单的提供一些加密函数 而是把成熟的数据安全技术引进到数据库中 形成了一个清晰的内置加密层次结构 SQLServer2005 SQLServer2005采用的是一种分层的授权和加密策略 越顶层的授权 其权限越大 权限分层结构 SQLServer2005的安全层次结构 SQLServer2005 数据加密 在加密技术领域 根据加密密钥和解密密钥是否相同 可以把加密方式分为对称加密机制和非对称加密机制 SQLServer2005 数据加密分层结构 SQLServer2005 补充 加密表中的数据 创建数据库主密钥USE学生成绩管理CREATEMASTERKEYENCRYPTIONBYPASSWORD 7587987hxJ94467GRafdsaf5y01478dDkjdah adfafs7r 1946kcj n44ncjhdlj GO SQLServer2005 创建证书 该证书用来加密对称密钥CREATECERTIFICATEnameInfoWITHSUBJECT Thestudentnameinformation START DATE 11 11 2010 GO创建一个对称密钥CREATESYMMETRICKEYname Title infoWITHALGORITHM desENCRYPTIONBYCERTIFICATEnameInfoGO SQLServer2005 修改表结构 郑家一个列用来存放加密数据ALTERTABLEStudentADDnameTitleNVARCHAR 128 NULLGO执行加密 使用OPENSYMMETRICKEY打开对称密钥 使用EncryptBykey函数加密数据OPENSYMMETRICKEYname Title infoDECRYPTIONBYCERTIFICATEnameInfoUPDATEStudentSETnameTitle EncryptByKey Key GUID name Title info Sname GO SQLServer2005 查看关闭CLOSESYMMETRICKEYname T

温馨提示

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

评论

0/150

提交评论