数据库安全性控制.ppt_第1页
数据库安全性控制.ppt_第2页
数据库安全性控制.ppt_第3页
数据库安全性控制.ppt_第4页
数据库安全性控制.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第8章 第8章SQLServer2005数据库控制与维护 数据库应用教程 8 2 1SQLServer的安全机制 8 2 2服务器登录帐号的管理 8 2 3数据库用户管理 8 2数据库的安全性控制 8 2 4管理权限 8 2数据库的安全性管理 一个机构建立数据库的目的是为了数据库中的数据能够被机构中的用户共享访问 但数据库中的数据不能被破坏 重要数据 如银行账号的密码 也只能由具有特殊权力的人员访问 因此数据库系统必须能够预防来自机构内部或外部的人对数据的故意破坏或窃取 可见 安全性是数据库设计的重要组成部分 所谓数据库的安全性 是指保护数据以防止因不合法的使用而造成数据的泄密和破坏 为保证数据库的安全性 需要采取一定的安全保护措施 SQLServer的安全模型 增删改查 增删改查 增删改查 增删改查 增删改查 增删改查 数据库用户 数据库用户 数据库用户 登录帐号 SQLserver三层安全管理 数据表1数据表2 DB1 数据表1数据表2 DB2 数据表1数据表2 DB3 8 2 1SQLServer的安全机制 SQLServer2000的安全机制包括身份验证和权限验证两个方面 1 SQLServer的身份验证模式 用户要想访问SQLServer数据库中的数据 必须以合法身份登录到SQLServer服务器上 SQLServer或者操作系统对用户的身份进行验证 这一阶段称为身份验证阶段 Authentication SQLServer身份验证有两种模式 Windows身份验证模式和混合身份验证模式 在企业管理器 展开 服务器组 节点 在其中的某个SQLServer服务器上单击鼠标右键 在弹出的快捷菜单中选择 编辑SQLServer注册属性 菜单项 将会打开 已注册的SQLServer属性 对话框 在该对话框中可以设置身份验证模式 登录方式 登录验证有两种方式 SQL身份验证 适合于非windows平台的用户或Internet用户 需要提供帐户和密码Windows身份验证 适合于windows平台用户 不需要提供密码 和windows集成验证登录帐户相应有两种 SQL帐户和Windows帐户 创建登录账户 使用SQL语句创建两种模式下的登录帐户添加WINDOWS登录帐户添加SQL登录帐户 EXECsp grantlogin windows域名 域帐户 EXECEXECsp addlogin 帐户名 密码 创建登录账户 添加Windows登录帐户 windows用户为S01 SDXY表示域如是本机 SDXY为计算机名EXECsp grantlogin SDXY S01 添加SQL登录帐户 登录名为zhangsan 密码为1234EXECsp addlogin zhangsan 1234 GO 演示 创建登录帐户 创建数据库用户 创建了登录帐户 只能登录到SQLServer系统 但还不能访问某个数据库 如果希望访问某个数据库 必须要成为该数据库的一个用户 创建数据库用户需要调用系统存储过程sp grantdbaccess在empDB中添加两个用户 EXECsp grantdbaccess 登录帐户 数据库用户 USEempDB S01DBUser为数据库用户名EXECsp grantdbaccess SDXY S01 S01DBUser EXECsp grantdbaccess zhangsan zhangsanDBUser 演示 创建数据库用户 8 2 1SQLServer的安全机制 2 权限验证 当用户通过身份验证登录到SQLServer服务器上后 还必须经过权限验证以决定他能访问的数据库及对访问的数据库所允许执行的操作 为了对数据库中的对象设置安全权限 每个数据库都要求设置单独的用户账号 因此在SQLServer中 账号有两种 登录账号和数据库用户账号 登录账号属于服务器层面的 本身并不能让用户访问服务器中的数据库 登录用户要想访问数据库 应先把他加入到数据库中使他成为数据库用户 即在数据库中有一个关联的数据库用户账号 数据库用户账号可以与用户账号同名也可以不同名 如果登录账号在数据库中不存在对应的数据库用户账号 若数据库中存在Guest账号 则登录用户可以使用Guest账号访问数据库 登录账号对应的数据库用户账号的数据库访问权限决定了用户在数据库中可以进行哪些操作 用户获得对数据库的访问权限以后 就可以存取数据库了 8 2 2服务器登录账号的管理 1 查看登录账号 可使用企业管理器查看登录账号 方法是在企业管理器中 展开相应的SQLServer服务器节点 再展开其下的 安全性 节点 单击其下的 登录 图标 在右侧的 内容显示 窗口中将显示出系统创建的默认登录账户以及已建立的其他登录账户 如果采用的是WindowsNTServer操作系统 将会有三个默认账号 含义如下 BUILTIN Administrators 凡是WindowsNTServer 2000中的Administrators组的账号都允许作为SQLServer登录账号使用 域名 Administrator 允许WindowsNTServer的Administrator账号作为SQLServer登录账号使用 sa SQLServer系统管理员登录账号 该账号拥有最高的管理权限 可以执行服务器范围内的所有操作 通常SQLServer管理员也是WindowsNT或WindowsServer2000的管理员 8 2 2服务器登录账号的管理 2 创建登录账号 例8 19 为SQLServer服务器创建一个登录账号 账号名为CollegeMISAdm 密码为tah980808 只能访问CollegeMIS数据库 该登录账号的服务器角色为DatabaseCreator 1 在企业管理器中 依次展开至本地服务器 TAHSJ 下的 安全性 节点 在其下的 登录 图标上单击右键 在出现的快捷菜单中选择 新建登录 菜单项 将会出现 SQLServer登录属性 新建登录 对话框 2 在该对话框 常规 页 输入登录名称为 CollegeMISAdm 选中 SQLServer身份验证 单选钮并输入密码 在 数据库 后面的下拉式列表框中选择 CollegeMIS 数据库 3 单击 服务器角色 页标签 选中服务器角色为 DatabaseCreator 4 数据库访问 页设置 5 再次输入确认密码 8 2 2服务器登录账号的管理 2 创建登录账号 角色 Role 是一组具有相同权限的用户所构成的组 在SQLServer中可分为服务器角色与数据库角色 服务器角色是负责管理与维护SQLServer的登录账号组 一般应指定管理服务器的登录账号属于哪个服务器角色 SQLServer在安装过程中定义几个固定的服务器角色 8 2 2服务器登录账号的管理 3 登录账号属性修改 在企业管理器中 展开至SQLServer服务器的 安全性 节点 单击其下的 登录 图标 在右侧的 内容显示 窗口中将显示出所有的登录账号 在相应登录账号上单击右键 在出现的快捷菜单中选择 属性 菜单项 将会出现 SQLServer登录属性 对话框 在该对话框中可以对登录账号的属性进行修改 修改完成后按 确定 按钮即可 例如 若要暂时禁止一个使用Windows身份验证的登录账户连接到SQLServer 只需在 SQLServer登录属性 对话框中 选择 常规 页 然后选取 拒绝访问 复选框即可 若要暂时禁止一个使用SQLServer身份验证的登录账号连接到SQLServer 只需要修改该账户的登录密码 当允许该账户登录时 再把密码改回即可 在企业管理器中 展开至SQLServer服务器的 安全性 节点 单击其下的 登录 图标 在右侧的 内容显示 窗口中将显示出所有的登录账号 在相应登录账号上单击右键 在出现的快捷菜单中选择 删除 菜单项 或选中相应登录账号 直接按Delete键 在出现的 确认 对话框中单击 是 按钮即可 4 删除登录账号 8 2 3数据库用户管理 SQLServer系统安装后 master tempdb msdb等默认数据库包含两个数据库用户账号 dbo和guest 任何一个登录账号都可以通过它的guest用户账号来存取相应的数据库 但在在SQLServer中新建一个数据库时 默认只有dbo用户账号而没有guest用户账号 因此要让其他的登录账号具有访问新建的数据库的权限 必须使登录账号关联一个新建的数据库的用户账户 每个登录账号在一个数据库中只能有一个用户账号 但每个登录账号可以在不同的数据库中各有一个用户账号 登录账号具有对某个数据库的访问权限 并不表示该登录账号对该数据库具有存取的权限 如果要对数据库对象进行插入 更新 删除等操作 还需要设置用户账号的权限 需注意的是除master和tempdb数据库中的guest用户账号不能删除外 其他数据库中的guest用户账号都可以删除 8 2 3数据库用户管理 1 创建数据库用户账号 例8 20 为Pubs数据库创建一个数据库用户账号 账号名为 CollegeMISAdmPubs 角色为public db datareader和db datawriter 1 在企业管理器中 展开SQLServer服务器下的 数据库 节点 展开Pubs数据库 在其下的 用户 图标上单击右键 在出现的快捷菜单中选择 新建数据库用户 菜单项 将会出现 数据库用户属性 对话框 2 在 数据库用户属性 对话框中的 登录名 后面的下拉式列表框中选取 CollegeMISAdm 登录名 用户名自动变为 CollegeMISAdm 把该名称改为 CollegeMISAdmPubs 若不修改 则数据库用户账号和登录账号名称一致 选取数据库角色为public db datareader和db datawriter 3 单击 确定 按钮 即可为pubs数据库创建了一个数据库用户 用户名为 CollegeMISAdmPubs 8 2 3数据库用户管理 数据库角色 和登录账号类似 用户账号也可以分成组 称为数据库角色 DatabaseRoles 在实际应用中 可以建立一个角色来代表机构中一类拥有相同权限的工作人员 然后给这个角色授予适当的权限 在SQLServer中 数据库角色可分为两种 标准角色和应用程序角色 标准角色是由数据库用户或其他的数据库角色所组成的组 组中的每个数据库用户或角色称为成员 应用程序角色不包括任何成员 主要用来控制应用程序存取数据库 在创建一个数据库时 系统默认创建10个固定的标准角色 8 2 3数据库用户管理 2 设置数据库用户账号的权限 在创建数据库用户账号时 数据库用户属性 对话框中 登录名 右侧的 权限 按钮是灰色的 表示不能在创建数据库用户账号的同时设置其权限 但可以在创建数据库用户账号后再通过其属性对话框来设置权限 例 为CollegeMIS数据库的数据库用户账号CollegeMISAdm设置用户权限 起始步骤 在企业管理器中 展开至CollegeMIS数据库 单击 用户 图标 在右侧的内容显示窗口中将显示出该数据库的所有用户账号 在 CollegeMISAdm 用户账号上单击右键 在出现的快捷菜单中选择 属性 菜单项 将会出现 数据库用户属性 对话框 8 2 3数据库用户管理 2 设置数据库用户账号的权限 授予权限 禁止权限和撤消权限的含义如下 授予权限 即允许某个用户或角色对一个对象执行某种操作或某种语句 拒绝访问 即拒绝某个用户或角色访问某个对象 即使该用户或角色被授予这种权限 或者由于继承而获得这种权限 仍然不允许执行相应的操作 撤消权限 即不允许某个用户或角色对一个对象执行某种操作或某种语句 不允许与拒绝是不同的 不允许执行某操作时 可以通过加入角色来获得允许权 而拒绝执行某操作时 就无法再通过角色来获得允许权了 三种权限冲突时 拒绝访问权限起作用 撤消用户的某一权限 并不代表能够禁止用户使用这一权限 因为用户可能通过其他角色继承了这一权限 3 删除数据库用户账号 通过企业管理器来实现 8 2 4管理权限 权限是指用户对数据库中的对象具有使用和操作的权力 用户对数据库所能执行的操作是由其具有的权限决定的 1 权限的种类 在SQLServer2000中 权限分为三类 对象权限 语句权限和隐含权限 1 对象权限 对象权限是指用户对数据库中的表 视图 存储过程等对象的操作权限 如是否允许查询 添加 删除 修改数据 执行存储过程等 2 语句权限 语句权限是指用户是否具有执行某种语句的权力 这些语句主要包括一些数据定义语句 如创建数据库 表 存储过程等的语句 3 隐含权限 隐含权限是指由SQLServer预定义的服务器角色 数据库所有者 dbo 和数据库对象所有者所拥有的权限 隐含权限相当于内置权限 并不需要明确地授予这些权限 例如 服务器角色sysadmin的成员可以在整个服务器范围内从事任何操作 数据库所有者 dbo 可以对本数据库进行任何操作 8 2 4管理权限 1 权限管理 权限管理的主要任务是管理对象权限和语句权限 包括权限的赋予 拒绝和撤消 角色和用户的权限可能是通过企业管理器和授权语句授予得到的 也可能是通过角色继承得来的 数据库用户继承它所属角色的权限 并且可以通过企业管理器和授权语句对权限进行扩展或拒绝 但只要用户继承的角色或用户本身授予的权限对某一权限是拒绝的 则该权限就是拒绝的 如果用户分属于不同的角色 他拥有的权限是各个角色的并集 但对某一权限有一个是拒绝的 则用户的该权限就是拒绝的 在权限管理中遵循拒绝优先的原则 8 2 4管理权限 1 权限管理 1 使用企业管理器管理语句权限 在企业管理器中 展开 数据库 节点 在要设置权限的数据库 如CollegeMIS 上单击右键 在出现的快捷菜单中选择 属性 菜单项 将会出现相应数据库的 属性 对话框 单击 权限 页标签 在该页可以对各数据库用户或角色的语句权限进行设置 8 2 4管理权限 1 权限管理 2 使用企业管理器管理对象权限 在企业管理器中 展开 数据库 节点 选中要授予权限的对象 表 视图 存储过程等 并在其上单击右键 在出现的快捷菜单中选择 属性 菜单项 将会出现相应对象的 属性 对话框 在该对象的 属性 对话框中 一般均有一个 权限 按钮 单击它在出现的对话框中可以对各数据库用户或角色的对象权限进行设置 8 3 1数据库备份概述 8 3 2数据库还原模式 8 3 3备份设备管理 8 3数据库的备份与还原 8 3 4数据库备份与还原操作 8 3数据库的备份与还原 数据库中的数据应该是可靠的 正确的 但计算机系统的故障 如 硬件故障 软件故障 网络故障 进程故障和系统故障等 是不可避免的 这些故障的出现将影响数据库系统的正常运行 影响数据库中数据的正确性 甚至破坏数据库 使数据库中的数据全部或部分丢失 因此需对数据库进行备份 以便在发生故障时能够利用数据库备份对数据库进行还原 8 3 1数据库备份概述 1 备份内容 在SQLServer中数据库需备份的内容可分为系统数据库 用户数据库和事务日志3部分 系统数据库主要包括master msdb distribution和model数据库 它们记录了重要的系统信息 一旦损坏就可能使SQLServer2000系统无法正常运行 必须完全备份 在便在系统发生故障时能够利用它们的备份还原整个系统 但不可能也没有必要对系统数据库tempdb进行备份 用户数据库是机构重要的信息资源 根据其重要性可分为关键数据和非关键数据 对于关键数据 一旦损坏 不易甚至不能重新建立 必须进行完全备份 事务日志记录了用户对数据的各种事务操作 平时系统会自动管理和维护所有的数据库事务日志文件 相对于数据库备份 事务日志备份所需要的时间较少 但还原需要的时间比较长 注意 在SQLServer2000中 固定服务器角色sysadmin和固定数据库角色db owner db backupoperator可以做备份操作 但可以通过授权允许其他角色执行数据库备份操作 8 3 1数据库备份概述 2 备份设备 数据库备份前 必须选择备份设备 备份设备是用来存储备份数据的存储介质 可以是硬盘 磁带或命名管道 逻辑通道 SQLServer允许将本地主机硬盘和远程主机的硬盘作为备份设备 备份设备在硬盘中是以文件的方式存储的 SQLServer只允许使用本地主机的磁带机作为备份设备而不允许使用远程主机上的磁带机作为备份设备 SQLServer使用物理设备名称或逻辑设备名称来标识备份设备 物理设备名称是操作系统用来标识备份设备的名称 逻辑设备名称是用来标识物理备份设备的别名或公用名称 逻辑设备名称有助于记忆和书写 使用逻辑设备名称标识的备份设备称为永久备份设备 其名称永久地存储在SQLServer的系统设备表中 可以多次使用 使用物理设备名称标识的备份设备称为临时备份设备 其名称没有记录在系统设备表中 只能使用一次 8 3 1数据库备份概述 3 备份时机 对于系统数据库 只要执行某些语句或存储过程导致SQLServer对系统数据库进行了修改 就需要备份 对于用户数据库 如果用户或程序对之执行了添加数据 修改数据 删除数据 创建索引等操作 则应该对用户数据库进行备份 如果清除了事务日志 也应该备份数据库 8 3 1数据库备份概述 4 备份类型 SQLServer2000支持4种基本类型的备份 完全备份 FullBackup 事务日志备份 TransactionLogBackup 差异备份 DifferentialDatabaseBackup 以及文件和文件组备份 FileandFileGroupBackup 1 完全备份 完全备份将备份整个数据库 包括用户表 系统表 索引 视图和存储过程等所有数据库对象 适用于数据更新缓慢的数据库 由于这种类型的备份不仅速度较慢 而且将占用大量磁盘空间 所以通常将其安排在晚间整个数据库系统的事务运行数目相对较少时进行 以避免对用户的影响和提高数据库备份的速度 2 事务日志备份 事务日志备份是指对数据库发生的事务进行备份 包括从上次进行事务日志备份 差异备份和完全备份之后 所有已经完成的事务 事务日志备份通常用在数据库变化较为频繁或不允许在最近一次数据库备份之后发生数据丢失或损坏的情况 事务日志备份需要的磁盘空间和备份时间都比数据库备份少得多 正是由于这个优点 所以在备份时常采用这样的策略 即每天进行一次数据库备份 而以一个或几个小时的频率备份事务日志 这样就可以将数据库还原到任意一个创建事务日志备份的时刻 使用事务日志对数据库进行还原操作比较麻烦 它不但需要有一个数据库的完全备份 而且对事务日志备份还需要按一定的顺序进行还原 3 差异备份 差异备份只记录自上次完全备份后发生更改的数据 差异备份一般会比完全备份占用更少的空间 与完全备份相比 差异备份的数据量较小 备份和还原所用的时间较短 通过增加差异备份的备份次数 可以降低丢失数据的风险 但是它无法像事务日志备份那样提供到失败点的无数据损失备份 在实际应用中一般经常综合使用完全备份 差异备份和事务日志备份 以最大限度地减少数据库还原时间以及降低数据损失数量 例如对于一个数据经常变化的数据库 可采用以下的备份方案 有规律地进行数据库的完全备份 例如每天夜里零点进行备份 较小的时间间隔进行差异备份 例如每个小时进行一次 在相临的两次差异备份之间进行事务日志备份 可以每5分钟或10分钟进行一次 当数据库发生故障时 若想数据库能还原到数据库失败的那一时刻 这时应该采用下面的方法 如果能够访问数据库事务日志文件 则应备份当前正处于活动状态的事务日志 还原最近一次完全备份 还原最近一次差异备份 按顺序还原自差异备份以来进行的事务日志备份 注意 若数据库失败时 无法备份当前数据库正在进行的事务 则只能把数据库还原到最近一次事务日志备份的状态 而不是数据库的失败点 此时可通过其它的手段来使数据库还原到失败点 如每笔业务打印的单据或填写的表格等 4 文件和文件组备份 当数据库非常庞大时 可执行数据库文件或文件组备份 这种备份策略使用户只还原已损坏的文件或文件组 而不用还原数据库的其余部分 文件和文件组备份通常和事务日志备份联合起来使用 文件和文件组备份后还要进行事务日志备份 以反映文件或文件组备份后的数据变化 8 3 2数据库还原模式 数据库还原是和数据库备份相对应的操作 它是将数据库备份重新加载到系统中的过程 数据库还原可以创建备份完成时数据库中存在的相关文件 但是备份以后的所有数据库修改都将丢失 SQLServer提供了3种数据库还原模式 简单还原 SimpleRecovery 完全还原 FullRecovery 大容量日志记录还原 Bulk LoggedRecovery 8 3 2数据库还原模式 1 简单还原模式 简单还原模式可以将数据库还原到上次备份处 但是无法将数据库还原到故障点或待定的即时点 它常用于还原最新的数据库的完全备份和差异备份

温馨提示

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

评论

0/150

提交评论