《数据库保护及SQL-Server的数据库保护技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库保护及SQL-Server的数据库保护技术ppt课件.ppt(45页珍藏版)》请在金锄头文库上搜索。
1、数据库技术及应用数据库技术及应用 1 第第8 8章章 数据库保护及数据库保护及SQL ServerSQL Server的数据库保护技术的数据库保护技术 8 1 数据库的安全性及SQL Server的安全管理 8 1 1 数据库安全性控制的一般方法 8 1 2 SQL Server的安全体系结构和安全认证模式 8 1 3 SQL Server的用户和角色管理 8 1 4 SQL Server的权限管理 8 2 数据库完整性及SQL Server的完整性控制 8 2 1 完整性约束条件及完整性控制 8 2 2 SQL Server的数据库完整性及实现方法 8 3 数据库的并发控制及SQL Serv
2、er的并发控制机制 8 3 1 事务及并发控制的基本概念 8 3 2 封锁及封锁协议 8 3 3 封锁出现的问题及解决方法 8 4 数据库恢复技术与SQL Server的数据恢复机制 8 4 1 故障的种类 8 4 2 数据恢复的实现技术 8 4 3 SQL Server 的数据备份和恢复机制 2 8 1 8 1 数据库的安全性及数据库的安全性及SQL ServerSQL Server的安全管理的安全管理 数据库的安全性是指保护数据库 以防止不合法的使用 造成的数据泄密 更改或破坏 8 1 1 数据库安全性控制的一般方法 用 户DBMSOS DB 用户标识和鉴别 存取控制 操作系统安全保护 密
3、码存储 3 1 1 用户标识与鉴别用户标识与鉴别 l 1 用输入用户名 用户标识号 来标明用户身份 系统内部记录着所有合法用户的标识 系统对输入的用 户名与合法用户名对照 鉴别此用户是否为合法用户 2 通过回答口令标识用户身份 系统常常要求用户输入口令 只有口令正确才能进入系 统 为保密起见 口令由用户自己定义并可以随时变更 为 防止口令被人窃取 用户在终端上输入口令时 不把口令的 内容显示在屏幕上 而用字符 替代其内容 3 通过回答对随机数的运算结果表明用户身份 系统提供一个随机数 用户根据预先约定的计算过程或 计算函数进行计算 并将计算结果输给到计算机 系统根据 用户计算结果判定用户是否合
4、法 4 2 2 存取控制存取控制 1 存取机制的构成 1 定义用户权限 并将用户权限登记到数据字典中 用户权限是指用户对于数据对象能够执行的操作种类 其语言称为数 据控制语言DCL 具有授权资格的用户使用DCL描述授权决定 并把授 权决定告知计算机 计算机分析授权决定 并将编译后的授权决定存放 在数据字典中 2 当用户提出操作请求时 系统进行权限检查 拒绝用户的非法操作 每当用户发出存取数据库的操作请求后 DBMS先要查找数据字典 进行合法权限检查 若通不过 系统将拒绝执行此操作 2 存取机制的类别 1 自主存取控制 DAC 用户对于不同的对象有不同的存取权限 不 同的用户对同一对象的存取权限
5、也各不相同 用户可将自己拥有的存取 权限转授给其他用户 2 强制存取控制 MAC 每一个数据对象被标以一定的密级 每一个 用户也被授予某一个级别的许可证 对于任意一个对象 只有具有合法 许可证的用户才可以存取 5 3 3 自主存取控制方法自主存取控制方法 1 关系中的用户权限 用户权限主要包括数据对象和操作类型两个要素 定义用户的存取权限 称为授权 通过授权规定用户可以对哪些数据进行什么样的操作 2 SQL的数据控制功能 SQL的数据控制功能为GRANT语句 授权 和REVOKE语句 收权 1 数据对象的创建者自动获得对于该数据对象的所有操作权限 2 获得数据操作权的用户可以通过GRANT语句
6、把权限转授给其他用户 3 授权机制的性能 1 用户权限定义中数据对象范围越小授权系统就越灵活 授权粒度越细 授权子系统就越灵活 但系统定义与检查权限的开销也会相应地增大 2 用户权限定义中能够谓词的授权系统比较灵活 3 用户权限定义中能够谓词 且存取谓词中能够引用系统变量的授权系 统更加灵活 4 自主存取控制的不足之处 系统对权限的授予状况无法进行有效的控制可能造成数据的无意泄露 6 4 4 强制存取控制方法强制存取控制方法 强制存取控制方法 MAC 是系统所采取的强制存取检查手段 它 不是用户能直接感知或进行控制的 1 主体 客体及敏感度标记 主体是系统中的活动实体 它包括DBMS所管理的实
7、际用户和代表用户 的各进程 客体是系统中的被动实体 包括文件 基表 索引 视图等 对于主体和客体 DBMS为它们每个实例设置了一个敏感度标记 例如 绝密 机密 可信 公开等 主体的敏感度标记称为许可证级别 客体 的敏感度标记称为密级 2 主体对客体的存取规则 1 仅当主体的许可证级别大于或等于客体的密级时 该主体才能读取相 应的客体 2 仅当主体的许可证级别等于客体的密级时 该主体才能写相应的客体 3 由DAC和MAC共同构成的安全机制 系统在安全检察时 首先进行自主存取控制检察 然后进行强制存取控 制检察 两者都通过后 用户才能执行其数据存取操作 7 5 5 视图 审计和数据加密机制视图 审
8、计和数据加密机制 为不同的用户定义不同的视图 通过视图把数据对象限制 在一定范围内 把要保密的数据对无权存取的用户隐藏起来 从而自动地对数据提供一定程度的安全保护 审计功能就是把用户对数据库的所有操作自动记录下来 放入审计日志中 一旦发生数据被非法存取 DBA可以利用 审计跟踪的信息 重现导致数据库现有状况的一系列事件 找出非法存取数据的人 时间和内容等 加密是根据一定的算法将原始数据 明文 Plain text 变换为不可直接识别的格式 密文 Cipher text 从而使 得不知道解密算法的人无法获得数据的内容 加密方法主要有两种 1 替换方法 使用密钥将明文中的每一个字符转换为密文中的字
9、符 2 置换方法 仅将明文的字符按不同的顺序重新排列 8 8 1 2 SQL Server8 1 2 SQL Server的安全体系结构和安全认证模式的安全体系结构和安全认证模式 1 SQL Server的安全体系结构 1 Windows NT操作系统的安全防线 网络管理员负责建 立用户组 设置帐号并注册 同时决定不同的用户对不同系 统资源的访问级别 2 SQL Server的运行安全防线 通过另一种帐号设置来创 建附加安全层 3 SQL Server数据库的安全防线 特定数据库都有自己的 用户和角色 该数据库只能由它的用户或角色访问 其他用 户无权访问其数据 4 SQL Server数据库对
10、象的安全防线 对权限进行管理 TSQL的DCL功能保证合法用户既使进入了数据库也不能 有超越权限的数据存取操作 即合法用户必须在自己的权限 范围内进行数据操作 9 2 SQL Server2 SQL Server的安全认证模式的安全认证模式 1 Windows S 安全认证模式 SQL服务器通过使用Windows网络用户的安全性来控制用 户对SQL服务器的登录访问 它允许一个网络用户登录到一 个SQL服务器上时不必再提供一个单独的登录帐号及口令 从而实现SQL服务器与Windows S 登录的安全集成 2 混合安全认证模式 使用Windows S 安全认证模式或SQL Server安全认证 模
11、式 在混合安全模式下 如果用户网络协议支持可信任连 接 则可使用Windows S 安全模式 如果用户网络协议 不支持可信任连接 则在Windows S 安全认证模式下会 登录失败 SQL Server安全认证模式将有效 SQL Server安 全认证模式要求用户必须输入有效的SQL Server登录帐号及 口令 10 3 3 设置设置SQL ServerSQL Server的安全认证模式的安全认证模式 1 在企业管理器中扩展开SQL服务器组 用鼠标右键击需要设置的SQL 服务器 在弹出的菜单中选择 属性 项 2 在弹出的SQL服务器属性对话框中 选择 安全性 选项卡 3 在安全性选项卡中的安
12、全性栏选择安全认证模式 11 8 1 3 SQL Server8 1 3 SQL Server的用户和角色管理的用户和角色管理 1 登录的管理 登录 亦称Login用户 通过帐号和口令访问SQL Server的数据库 1 查看安全性文件夹的内容 进入企业管理器 打开指定的SQL服务器组和SQL服务器 并选择安全性 文件夹的系列操作后 就会出现安全性文件夹 12 2 2 创建一个登录用户创建一个登录用户 1 用右键击登录文件夹 在弹出单中选择 新建登录 出现登录属性对话框 2 选择常规选项卡 输入用户的一般特征 3 选择服务器角色选项卡 确定用户所属服务器角色 4 选择数据库访问选项卡 确定用户
13、能访问的数据库和所属的数据库角色 13 2 2 数据库用户的管理数据库用户的管理 1 dbo用户 dbo用户即数据库拥有者或数据库创建者 dbo在其所拥 有的数据库中拥有所有的操作权限 dbo的身份可被重新分 配给另一个用户 系统管理员Sa可以作为他所管理系统的任 何数据库的dbo用户 2 guest用户户 如果guest用户在数据库存在 则允许任意一个登录用户 作为guest用户访问数据库 其中包括那些不是数据库用户的 SQL服务器用户 除系统数据库master和临时数据库tempdb 的guest用户不能被删除外 其他数据库都可以将自己guest用 户删除 以防止非数据库用户的登录用户对数
14、据库进行访问 14 3 3 创建新的数据库用户创建新的数据库用户 1 在企业管理器中用右击用户文件夹 在弹出单中选择 新建数据库用户 2 在对话框的登录名栏中选择SQL服务器登录用户名 在用户名栏中输入数 据库用户名 在数据库角色栏中选择该数据库用户参加的角色 15 3 3 数据库角色的管理数据库角色的管理 1 1 在数据库角色中增加或移去用户在数据库角色中增加或移去用户 1 展开一个SQL服务器 数据库文件夹 选中角色文件夹 2 用选中要加入的角色 右击它 在弹出单中选择 属性 3 单击 添加 按钮后 出现选择该数据库用户的对话框 选择要加入角色的 用户 单击 确定 4 要移走一个用户 在用
15、户栏中选中它 后单击 删除 16 2 2 创建新的数据库角色创建新的数据库角色 1 打开SQL服务器组 服务器 数据库文件夹和特定的数据库文件夹 2 选中角色子文件夹 右击任意角色 在弹出单中选择 新建数据库角色 3 输入新角色名 在用户栏增加或移去角色的用户 确定数据库角色的类型 17 8 1 4 SQL Server8 1 4 SQL Server的权限管理的权限管理 1 SQL Server1 SQL Server权限种类 对象权限和语句权限权限种类 对象权限和语句权限 Transact SQL数据库对象 SELECT 查询 表 视图 表和视图中的列 UPDATE 修改 表 视图 表的列
16、 INSERT 插入 表 视图 DELETE 删除 表 视图 EXECUTE 调用过程 存储过程 DRI 声明参照完整性 表 表中的列 Transact SQL语句权限说明 CREATE DATABASE创建数据库 只能由SA授予SQL服务器用户或 角色 CREATE DEFAULT创建缺省 CREATE PROCEDURE创建存储过程 CREATE RULE创建规则 CREATE TABLE创建表 CREATE VIEW创建视图 BACKUP DATABASE备份数据库 BACKUP LOG备份日志文件 18 2 2 对象权限的管理对象权限的管理 1 选中一个数据库对象 击鼠标右键 使之出现弹出菜单 2 选择 全部任务 中的 管理权限 项 随后就会出现对象权限对话框 3 选择 列出全部用户 用户定义的数据库角色 项 或选择 仅列出对此对 象具有权限的用户 用户定义的数据库角色 项 4 在权限表中对各用户或角色的各种对象操作权授予或撤消 19 3 3 语句权限的管理语句权限的管理 1 用鼠标右键击指定的数据库文件夹 出现数据库属性对话框 2 选择 权限 选项卡 单击表中的各复选小方块可