2024考研一对一
圣才VIP会员,电子书题库视频免费看
您现在的位置: 圣才考研网 > 【备考指导】

2014年考研计算机基础班讲义:计算机病毒

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
  计算机病毒
 
  计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。
 
  恢复策略:
 
  1.事务故障的恢复
 
  事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:
 
  ⑴. 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
 
  ⑵. 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。
 
  ⑶. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
 
  ⑷. 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
 
  2.系统故障的恢复
 
  前面已讲过,系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。
 
  系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。
 
  系统的恢复步骤是:
 
  ⑴. 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消(UNDO)队列。
 
  ⑵. 对撤消队列中的各个事务进行撤消(UNDO)处理。
 
  进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
 
  ⑶. 对重做队列中的各个事务进行重做(REDO)处理。
 
  进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。
 
  3.介质故障的恢复
 
  发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。具体地说就是:
 
  ⑴. 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。
 
  对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。
 
  ⑵. 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。即:
 
  首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。
 
  然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
 
  这样就可以将数据库恢复至故障前某一时刻的一致状态了。
 
  介质故障的恢复需要DBA介入。但DBA只需要重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令即可,具体的恢复操作仍由DBMS完成。
 
  n 并发控制
 
  在多用户共享系统中,许多事务可能同时对同一个数据进行操作,这时候就产生了并发控制的问题。DMBS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据。
 
  同时并发方式:在多处理系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行,这种并行方式称为同时并发方式。
 
  并发控制机制是衡量一个数据库管理系统性能的重要标志之一。
 
  数据库的并发操作通常可能带来以下的问题:
 
  u 丢失更新问题
 
  u 不一致分析问题(读过时的数据)
 
  u 依赖于未提交更新问题(读“脏”数据)
 
  处理并发控制的主要方法是采用封锁技术。封锁是实现并发控制的一个非常重要的技术。
 
  封锁:所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。
 
  计算机病毒
 
  计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。
 
  恢复策略:
 
  1.事务故障的恢复
 
  事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:
 
  ⑴. 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
 
  ⑵. 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。
 
  ⑶. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
 
  ⑷. 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
 
  2.系统故障的恢复
 
  前面已讲过,系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。
 
  系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。
 
  系统的恢复步骤是:
 
  ⑴. 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消(UNDO)队列。
 
  ⑵. 对撤消队列中的各个事务进行撤消(UNDO)处理。
 
  进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
 
  ⑶. 对重做队列中的各个事务进行重做(REDO)处理。
 
  进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。
 
  3.介质故障的恢复
 
  发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。具体地说就是:
 
  ⑴. 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。
 
  对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。
 
  ⑵. 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。即:
 
  首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。
 
  然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
 
  这样就可以将数据库恢复至故障前某一时刻的一致状态了。
 
  介质故障的恢复需要DBA介入。但DBA只需要重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令即可,具体的恢复操作仍由DBMS完成。
 
  n 并发控制
 
  在多用户共享系统中,许多事务可能同时对同一个数据进行操作,这时候就产生了并发控制的问题。DMBS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据。
 
  同时并发方式:在多处理系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行,这种并行方式称为同时并发方式。
 
  并发控制机制是衡量一个数据库管理系统性能的重要标志之一。
 
  数据库的并发操作通常可能带来以下的问题:
 
  u 丢失更新问题
 
  u 不一致分析问题(读过时的数据)
 
  u 依赖于未提交更新问题(读“脏”数据)
 
  处理并发控制的主要方法是采用封锁技术。封锁是实现并发控制的一个非常重要的技术。
 
  封锁:所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。
 
  定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。我们称这种调度策略为可串行化(Serializable)的调度。
 
  另外,在封锁技术方面,SQL提供事务的四种一致性级别,从高到低分别是:
 
  u serializable(可串行化)
 
  u repeatable read(可重复读)
 
  u read committed(读提交数据)
 
  u read uncommitted(可读未提交数据)
 
  数据库安全:
 
  数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
 
  为降低进而消除对系统的安全攻击,尤其是弥补原有系统在安全保护方面的缺陷,在计算机安全技术方面逐步建立了一套可信标准。在目前各国所引用或制定的一系列安全标准中,最重要的当推1985年美国国防部(DoD)正式颁布的《DoD可信计算机系统评估标准》(Trusted Computer System Evaluation Criteria,简记为TCSEC)[1]或DoD85)。
 
  制定这个标准的目的主要有:
 
  ⑴提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做出评估。
 
  ⑵给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好的满足敏感应用的安全需求。
 
  TCSEC又称桔皮书,1991年4月美国NCSC(国家计算机安全中心)颁布了《可信计算机系统评估标准关于可信数据库系统的解释》( Trusted Database Interpretation 简记为TDI,即紫皮书)。将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。
 
  在TCSEC中建立的安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。
 
  下面,我们简略地对各个等级作一介绍。
 
  D级: D级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统,统统归于D组。如DOS就是操作系统中安全标准为D的典型例子。它具有操作系统的基本功能,如文件系统,进程调度等等,但在安全性方面几乎没有什么专门的机制来保障。
 
  C1级:只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。
 
  C2级:实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。很多商业产品已得到该级别的认证。达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色,如操作系统中Microsoft的Windows NT 3.5,数字设备公司的Open VMS VAX 6.0和6.1。数据库产品有Oracle公司的Oracle 7,Sybase公司的 SQL Server 11.0.6 等。
 
  B1级:标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1级能够较好地满足大型企业或一般政府部门对于数据的安全需求,这一级别的产品才认为是真正意义上的安全产品。满足此级别的产品前一般多冠以“安全”(Security)或“可信的”(Trusted)字样,作为区别于普通产品的安全产品出售。例如,操作系统方面,典型的有数字设备公司的SEVMS VAX Version 6.0,惠普公司的HP-UX BLS release 9.0.9+ 。数据库方面则有Oracle公司的Trusted Oracle 7,Sybase公司的Secure SQL Server version 11.0.6,Informix公司的Incorporated INFORMIX-OnLine / Secure 5.0等。
 
  B2级:结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。
 
  从互连网上的最新资料看,经过认证的、B2级以上的安全系统非常稀少。例如,符合B2标准的操作系统只有Trusted Information Systems公司的Trusted XENIX一种产品,符合B2标准的网络产品只有Cryptek Secure Communications公司的LLC VSLAN一种产品,而数据库方面则没有符合B2标准的产品。
 
  B3级:安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
 
  A1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。
 
  B2以上的系统标准更多地还处于理论研究阶段,产品化以至商品化的程度都不高,其应用也多限于一些特殊的部门如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别或更高安全级别下放到商业应用中来,并逐步成为新的商业标准。
 
  可以看出,支持自主存取控制的DBMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。当然,存取控制仅是安全性标准的一个重要方面(即安全策略方面)不是全部。为了使DBMS达到一定的安全级别,还需要在其它三个方面提供相应的支持。例如审计功能就是DBMS达到C2以上安全级别必不可少的一项指标。

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句