按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
问与答
问 如果我有一组事务 其中一个是不成功的 我是否可以确认其它的事务过程
答 不可以 必须整组的事务都是成功的才可以
问 在使用的 MIT 命令以后 我发现我犯了一个错误 那么我怎样才能更正这个错
236
…………………………………………………………Page 237……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
误
答 使用 DELETE INSERT 或 UPDATE 语句 ROLLBACK 在这时是不行的
问 在怎个事务结束以后我都必须使用 MIT 命令确认吗
答 不必 但是在确认没有错误而且在之前没有事务在运行时使用 MIT 会更安全
校练场
1 在嵌套的事务中 是否可以使用 ROLLBACK 命令来取消当前事务并回退到上级事务
中 为什么
2 使用保存点是否可以保存事务的一部分 为什么
3 MIT 命令是否可以单独使用 它一定要嵌套吗
4 如果你在 MIT 命令后发现的错误 你是否还可以使用 ROLLBACK 命令
4 在事务中使用保存点是否可以自动地将之前的改动自动地保存
练习
1 使用 PERSONAL ORACLE7 的语法来更正下边的语法
SQL》 START TRANSACTION INSERT INTO CUSTOMERS VALUES ('SMITH'; 'JOHN')
SQL》 MIT
2 使用 PERSONAL ORACLE7 的语法来更正下边的语法
SQL》 SET TRANSACTION
UPDATE BALANCES SET CURR_BAL = 25000
SQL》 MIT
3 使用 PERSONAL ORACLE7 的语法来更正下边的语法
SQL》 SET TRANSACTION
INSERT INTO BALANCES VALUES ('567。34'; '230。00'; '8')
SQL》 ROLLBACK
237
…………………………………………………………Page 238……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
第 12 天 数据库安全
今天我们来讨论一下数据库的安全问题 我们已经很清楚地看到不同的 SQL 语句可以
使我们具有管理关系型数据库系统的能力 与我们到今天为止所学习的其它主题一样 一
个数据库管理系统是如何在不同的产品中实现安全的呢 对于这个问题我们今天将以流行
的 ORACLE 7 数据库系统为例 到今天的结束时我们将具有以下能力
l 创建用户
l 更改密码
l 创建角色
l 为安全的目的而使用视图
l 在视图中使用同义词
前提 数据库管理员
安全问题在数据库的设计过程中常常会被忽略 许多计算机工作人员在进入计算机领
域时有计算机的编程知识或硬件知识 并且他们也会将精力注重于这一方面 例如 如果
你的老板要求你开展一个新的项目 而这个项目很明显地需要一个关系型的数据库时 那
你第一步想要做的工作是什么 在确定的相应的硬件和软件平台以后 你也许会开始设计
项目中的基本的数据库结构了 这一阶段会分给许多人去做 其中一些人是图形用户界面
设计者 另一些底层组件的设计者 也许你在读过本书以后会要求编写用于提供给客户应
用程序所使用查询的 SQL 代码 而与这项任务随之而来的是你可能会成为一个数据库的管
理和维护人员
在很多时候 当我们在真正实施这个项目时我们需要考虑或计划到一点 那就是当众
多的用户通过广域网使用你的应用程序时会有什么情况发生 根据今天个人计算机的强大
软件和硬件以及微软的开放数据库联接 ODBC 任何连接于网络的用户都会有办法得到
你的数据库 我们不想在当我们公司的计算机准备联入 internet 时或类似的大型网络时有
麻烦出现 那么我们应该如何面对这一情况
非常幸运 软件供应商已经为你处理安全问题提供了许多的工具 每一个新的网络操
作系统都会面对着比它的上一代更为严格的安全性要求 此外 许多的数据库供应商也都
238
…………………………………………………………Page 239……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
在它们的数据库系统提供了不同程度的 与你的网络操作系统安全相独立的安全性 所以
想在不同的产品中实现安全性的方法是非常广泛的
流行的数据库产品与安全
就像你所知道的那样 许多数据库管理系统为你的生意而存在着商业竞争 在一个项
目的开发过程中 你可能会只购买少数的许可证用以测试 开发以及其它的目的 但是
你的产品的实际许可证要求可能会是成百上千个 此外 当你决定采用某一种数据库管理
系统时 你可能会在这个产品中渡过几年的时间 所以 当你在检查下边的数据库管理系
统时头脑中要有下边的概念
MicroSoft FoxPro 数据库管理系统是一个非常强大的基于单用户环境的数据库管理系
统 它只使用了有限的 SQL 标准的子集 在该数据库系统中没有提供安全性措施 同时
它使用了 Xbase 的文件格式 每一个文件中都只有一个表 索引文件存储于单独的表中
MicroSoft Access 数据库管理系统提供了更多的 SQL 实现 尽管它内部已经包括了基
本的安全系统 但它仍然是一个基于 PC 平台的数据库管理系统 该数据库系统允许你创
建查询并把它们存储在数据库之中 此外 全部的数据库及其对象均存在于同一个文件之
中
Oracle 7 数据库管理系统支持全部的标准的 SQL 此外 它还对标准的 SQL 进行了称
之为 PL*SQL 的扩充 它拥有全部的安全特性 包括在数据库中创建角色以及为数据库对
象分配权限的能力
Sybase SQL 拥有与 Oracle 7 类似的能力与特性 它也提供了极大范围内的安全特性
它对 SQL 的扩充被称为 Transact…SQL
对这些产品进行描述的目的是想说明并不是所有的软件都适用于每一个应用程序 如
果你的程序用于商业目的 那么你的选择将会受到限制 成本与性能的因素是非常重要的
然而 如果没有足够的安全手段 那么任何在创建数据库之初时的费用节约都将被安全问
题吃掉
如何让一个数据库变得安全
到现在为止你还没有因为数据库的安全问题而不高兴 但是否你曾经因为你不想让其
它的用户登录进入你的数据库系统造成破坏而不得不非常小心的登录 如果有一天早上你
239
…………………………………………………………Page 240……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
登录进行系统后发现你辛苦努力的成果都被人删除了你的反应会怎样 还记得 DROP
DATABASE 语句是没有记录的吗 我们来学习一个流行的数据库管理系统