11.07.2015 Views

在线观看

在线观看

在线观看

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

第 八 章§1 数 据 库 的 安 全 性数 据 库 系 统 控 制一 、 什 么 是 数 据 库 的 安 全 性 ?指 : 保 护 数 据 库 , 防 止 因 用 户 非 法 使 用 数 据库 造 成 数 据 泄 露 、 更 改 或 破 坏 。二 、 安 全 性 控 制 的 一 般 方 法(1) 用 户 身 份 的 标 识 和 鉴 定 。(2) 存 取 权 限 控 制 。(3) 定 义 并 使 用 视 图 。(4) 审 计 制 度 。(5) 数 据 加 密 。1


三 、 存 取 权 限 控 制1. 存 取 权 限 的 基 本 类 型SELECT INSERTDELETEUPDATE2. 初 始 权 限 的 产 生 : 数 据 库 对 象 的 初 始 拥 有 者 。3.SQL 授 权 语 句格 式 :GRANT < 权 限 表 > ON < 数 据 库 元 素 >TO < 用 户 表 >[ WITH GRANT OPTION ]2


例 1 Student 和 SC 的 owner 向 User1, User2 授 权(1)GRANT SELECT, INSERT ON StudentTO User1, User2WITH GRANT OPTION(2)GRANT SELECT ON SCTO User1, User2WITH GRANT OPTION3


ownerSELECTStudent**user1SELECTStudent*user1INSERTStudent*user1SELECTSC*ownerINSERTStudent**ownerSELECTSC**ownerINSERTSC**user2SELECTStudent*user2INSERTStudent*user2SELECTSC4*


例 2User1 向 User3 授 权GRANT SELECT ON StudentTO User35


ownerSELECTStudent**user1SELECTStudent*user1INSERTStudent*user1SELECTSC*ownerINSERTStudent**user3SELECTStudentownerSELECTSC**ownerINSERTSC**user2SELECTStudent*user2INSERTStudent*user2SELECTSC6*


ownerSELECTStudent**user1SELECTStudent*user1INSERTStudent*user1SELECTSC*ownerINSERTStudent**user3SELECTStudentownerSELECTSC**user3INSERTStudentownerINSERTSC**user2SELECTStudent*user2INSERTStudent*user2SELECTSC8*


4. SQL 收 回 权 限 语 句格 式 : REVOKE < 权 限 表 > ON < 数 据 库 元 素 >FROM < 用 户 表 >[ CASCADE ]例 1 owner 用 REVOKE 语 句 , 从 User2 收 回 权 限REVOKE INSERT ON StudentFROM User2CASCADE9


10user3SELECTStudentuser3INSERTStudentownerSELECTStudent**ownerINSERTStudent**ownerSELECTSC**ownerINSERTSC**user1SELECTStudent*user1INSERTStudent*user1SELECTSC*user2SELECTStudent*user2INSERTStudent*user2SELECTSC*user3INSERTStudentuser2INSERTStudent*


例 2 owner 用 REVOKE 语 句 , 从 User2 收 回 权 限REVOKE GRANT OPTIONFORSELECT ON StudentFROM User2CASCADE11


ownerSELECTStudent**user1SELECTStudent*user1INSERTStudent*user1SELECTSC*ownerINSERTStudent**user3SELECTStudentownerSELECTSC**ownerINSERTSC**user2SELECTStudent*user2SELECTSC12*


§2 事 务 管 理 ( 书 : p251 8.6)一 、 事 务 概 念1. 什 么 是 事 务 : 事 务 是 访 问 并 可 能 更 新 数 据 库 数据 的 一 个 程 序 执 行 单 位 。BEGIN TRANSACTIONupdate …….…….事 务 的 显 式 说 明if (T) COMMIT;BEGIN TRANSACTIONinsert …….…….if (T) ROLLBACK;13


2. 事 务 的 性 质 (ACID)(1) 原 子 性 (Atomicity)。组 成 事 务 的 操 作 的 不 可 分 割 性 。 即 , 事 务 中导 致 数 据 库 状 态 改 变 的 操 作 , 要 么 全 部 成 功 地 执行 , 要 么 都 不 执 行 。(2) 一 致 性 (Consistency)。一 个 事 务 必 须 是 一 个 正 确 的 程 序 , 它 使 数 据库 从 一 个 一 致 状 态 转 变 为 另 一 个 一 致 状 态 。(3) 隔 离 性 (Isolation)。一 个 正 在 执 行 的 事 务 在 提 交 之 前 , 不 允 许 把它 对 共 享 数 据 所 做 的 改 变 , 提 交 给 其 它 事 务 使14用


(4) 持 久 性 (Durability)。或 称 永 久 性 (permanence)。 指 : 一 旦 某 个事 务 已 经 提 交 , 即 使 系 统 发 生 故 障 , 也 不 能 丢 失该 事 务 的 执 行 结 果 。二 、 事 务 管 理 和 事 务 恢 复1. 数 据 库 系 统 故 障 分 类 系 统 故 障 ( 软 故 障 ) 介 质 故 障 ( 硬 故 障 ) 事 务 故 障15


2. 日 志 文 件 (Log File): 特 点 : 记 录 了 所 有 对 数 据 库 更 新 操 作 的 具 体细 节 。 创 建 日 志 的 原 则 : “ 先 物 理 地 写 日 志 记 录 ,后 执 行 数 据 库 更 新 操 作 ”。3. 事 务 恢 复 :利 用 日 志 文 件 的 记 录 , 可 以 恢 复 事 务 故 障 。 事 务 是 恢 复 单 元 。16


§3 并 发一 、 并 发 及 其 问 题1. 什 么 叫 并 发 : 多 个 事 务 同 时 存 取 相 同 的 数 据 。2. 并 发 带 来 的 问 题 --- 数 据 一 致 性 问 题(1) 丢 失 修 改事 务 A 时 间 事 务 B读 数 据 Dt1t2读 数 据 D修 改 数 据 Dt3t4修 改 数 据 D?17


(3) 不 可 重 复 的 读事 务 A读 数 据 D修 改 数 据 D时 间t1t2t3t4事 务 B读 数 据 D读 数 据 D?结 论1. 并 : 发 事 务 必 须 有 合 适 的 控 制 机 制 。2. 并 发 事 务 必 须 可 串 行 化 地 调 度 。 否 则 , 不 能 使 数据 库 系 统 高 效 运 行 , 并 保 证 事 务 有 正 确 结 果 19。


二 、 并 发 控 制 机 制 之 一 : 封 锁1. 锁 的 分 类 排 它 锁 (X): 拒 绝 其 它 事 务 任 何 类 型 的 锁 请 求 。 共 享 锁 (S): 拒 绝 其 它 事 务 的 X 锁 请 求 , 但 允 许其 它 事 务 的 S 锁 请 求 。2. 锁 请 求 的 相 容 性XS事 务 B事XNNY务AS N Y YY Y Y3. 死 锁20


三 、 三 级 锁 协 议 --- 解 决 数 据 一 致 性 问 题1. 一 级 锁 协 议 --- 解 决 “ 丢 失 修 改 ” 问 题一 个 事 务 在 修 改 数 据 A 之 前 , 必 须 先 对 数 据 A加 X 锁 , 直 到 事 务 结 束 才 释 放 该 锁 。事 务 A时 间事 务 B加 X 锁 !读 数 据 D修 改 数 据 D开 锁 !t1t2t3t4t5加 X 锁 ?读 数 据 D修 改 数 据 D?21


2. 二 级 锁 协 议 --- 解 决 “ 读 脏 数 据 ” 问 题在 一 级 锁 协 议 的 基 础 上 , 加 上 约 定 : 一 个事 务 在 读 取 数 据 A 之 前 , 必 须 对 数 据 A 加 S 锁 ,读 入 数 据 A 之 后 立 即 释 放 S 锁 。事 务 A时 间事 务 B加 X 锁 !读 数 据 D修 改 数 据 D事 务 回 退开 锁 !t1t2t3t4t5t6加 S 锁 ?读 数 据 D?22


3. 三 级 锁 协 议 --- 解 决 “ 不 可 重 复 读 ” 问 题在 一 级 锁 协 议 的 基 础 上 , 加 上 约 定 : 一 个事 务 在 读 取 数 据 A 之 前 , 必 须 对 数 据 A 加 S 锁 ,直 到 事 务 结 束 , 才 能 释 放 S 锁 。事 务 A时 间事 务 B加 X 锁 ?读 数 据 Dt1t2t3加 S 锁 !读 数 据 D修 改 数 据 Dt4t5读 数 据 D?t6 开 锁 !23


四 、 事 务 的 可 串 行 性 和 两 阶 段 锁 协 议1. 事 务 的 可 串 行 性 : 如 果 多 个 事 务 的 一 个 交 错 执 行过 程 的 结 果 , 与 它 们 的 一 个 串 行 执 行 过 程 产 生 的结 果 相 同 , 则 称 这 些 事 务 是 可 串 行 化 的 。2. 两 阶 段 锁 协 议(1) 如 果 所 有 的 事 务 都 遵 守 “ 两 阶 段 锁 协 议 ”, 则这 些 事 务 是 可 串 行 化 的 。(2) 两 阶 段 锁 协 议 : 每 个 事 务 分 两 个 阶 段 提 出 锁 操 作 获 得 锁 阶 段 : 任 何 事 务 可 以 申 请 获 得 锁 , 但 不能 释 放 锁 。 释 放 锁 阶 段 : 任 何 事 务 可 以 申 请 释 放 锁 , 但 不24能 获 得 新 锁 。


五 、SQL 标 准 的 隔 离 性 级 别隔 离 性 级 别 指 : 多 个 事 务 并 发 执 行 时 , 一 个 事务 所 能 容 忍 干 扰 的 程 度 。1. SERIALIZABLE( 可 串 行 化 )------- 缺 省 值2. READ UNCOMMITTED ( 允 许 读 “ 脏 ” 数 据 )3. READ COMMITTED( 禁 止 读 “ 脏 ” 数 据 ,但 允 许 不 可 重 复 的 读 )4. REPEATABLE READ ( 只 允 许 可 重 复 的 读 )25


§4 SQL 编 程 环 境一 、SQL / 宿 主 语 言 接 口宿 主 语 言 + 嵌 入 式 SQL预 处 理 程 序宿 主 语 言 + 函 数 调 用宿 主 语 言 编 译 程 序SQL 库目 标 代 码二 、 动 态 SQL26


掌 握 : 数 据 库 安 全 性 概 念 ;SQL 中 的 授 权 / 收 权 语句 ; 并 发 及 其 问 题 ; 数 据 一 致 性 与 三 级 锁协 议 ; 事 务 可 串 行 性 与 两 阶 段 锁 协 议 ; 日志 概 念 。熟 练 掌 握 : 事 务 及 其 ACID 性 质 。27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!