- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 数据库管理 本章学习目标 理解数据库安全级别和权限 掌握事务的概念和性质 理解并发控制和并发处理 掌握数据库的备份与恢复方法与策略 掌握数据库完整性的规则、约束和实现方式 9.1数据库的安全性9.1.1安全性控制 2.用户存取权限控制 用户存取权限是指不同的用户对于不同的数据对象允许执行的操作权限。在数据库系统中,每个用户只能访问他有权限存取的数据并执行有权限使用的操作。因此,系统必须预先定义用户的存取权限,存取权限由两个因素组成,数据对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上可以进行哪些类型的操作,这就是通常所说的授权。 9.1数据库的安全性9.1.1安全性控制 3.定义视图 为不同的用户定义不同的视图,可以限制各个用户的访问范围。通过视图机制把要保护的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度地安全保护。在实际应用中通常将视图机制与授权机制结合起来使用,就是先用视图机制屏蔽一部分保密数据,在视图上进一步定义存取权限,达到一定的安全目标。 4.数据加密 前面几种安全措施都是防止通过正常渠道从数据库系统窃取保密数据,不能防止通过不正常渠道非法访问数据。例如在通信线路上窃取数据,为了防止这些活动,比较好的方式是对数据加密。数据加密是防止数据库中数据在存储和传输中失密的有效手段,通常采用的加密方式有替换加密,就是使用密钥将文中的每一个字符转换成密文中的字符。还有一种就是转换加密。就是将文中的字符按不同的顺序重新排列。在实际当中通常会将两者结合起来使用,以达到更高的安全程度,而且现在已经有了各种各样的加密算法。 9.1数据库的安全性9.1.1安全性控制 5.审计 任何系统的安全保护措施都不是完美无缺的,蓄意盗窃、破坏数据的人总是想方设法打破控制。审计功能把用户对数据库的所有操作自动记录下来放入审计日志(Audit log)中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 审计通常是很费时间和空间的,会大大增加系统地开销,所以DBMS往往都将其作为可选特征,允许DBA根据应用安全的要求,灵活地打开或关闭审计功能。 9.1数据库的安全性9.1.1安全级别 访问控制是对用户访问数据库各种资源(表、视图、系统目录、使用程序等)的权限(包括创建、查询、修改、删除、执行等)的控制。也就是说,用户必须获得对数据库对象(比如表、视图等)的操作权限,才能在规定的权限之内操作数据库。 按用户权限的大小,一般可将用户划分为如下三类。 1.具有DBA特权的数据库用户 2.支配部分数据库资源特权的数据库用户 3.一般数据库用户 9.3并发处理与并发控制 9.3.1并发操作带来的问题 数据库的并发操作通常会导致以下三类问题:丢失更新、不可重 复读数和读脏数据。 1.丢失更新 假设有一个多用户的订单处理系统,甲乙两个业务员同时进行订单处理操作,假设两个人并发地从产品表存取产品号为“41004”的库存数量,执行的SQL语句序列和操作的顺序如图9-4所示。 9.3并发处理与并发控制 9.3.2封锁 3.锁的转换 通过将共享锁提升为排它锁,或将排它锁降级为共享锁,可以获得更多的并发性。 锁的转换必须遵守如下规则: ·锁提升只能发生在增长阶段 ·锁降级只能发生在缩减阶段 当前商品化的DBMS系统比较广泛地使用严格两阶段封锁、强两段封锁和锁转换的概念,大部分数据库系统要么采用严格两阶段封锁协议,要么采用强两段封锁协议。加锁是由DBMS统一管理的。DBMS系统提供一个锁表,记录各个数据对象加锁的情况。通常DBMS是根据事务的读写请求,自动地产生加锁和解锁指令。 当事务T 进行read(Q)操作时,系统将自动产生一个LOCK-S(Q)指令,再执行 read(Q)指令。 当事务T进行write(Q)操作时,先检查T,是否在Q上持有S锁。若有,则系统发出update(Q)指令,然后执行write(Q),否则加X锁,执行write(Q)。 当一个事务提交或回滚后,该事务持有的所有锁都自动被释放。 9.5数据库完整性的控制9.5.3 SQL中的完整性约束 (4)实现删除和更新约束的方法 SQL语言中,实现上述约束的方法是在子表的定义中使用下列短语: 删除约束短语: ON DELETE RESTRICT 删除约束 ON DELETE CASCADE 级联删除 ON DELETE SET NULL 删除置空 ON DELETE SET DEFAULT 删除置缺省值 更新约束短语: ON UPDATE RESTRICT 更新约束
文档评论(0)