死锁的诊断与解除① 超时法 如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。②等待图法 事务等待图是一个有向图G=(T,U)。 T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2 ,则T1、T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。 DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务得以继续运行下去。当然,对撤消的事务所执行的数据修改操作必须加以恢复。如果一个事务运行过程中没有其他事务同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的。因此将所有事务串行起来的调度策略一定是正确的调度策略。虽然以不同的顺序串行执行事务可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都是正确的。定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。我们称这种调度策略为可串行化(Serializable)的调度。另外,在封锁技术方面,SQL提供事务的四种一致性级别,从高到低分别是:(可串行化)(可重复读)(读提交数据)(可读未提交数据)数据库安全:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。为降低进而消除对系统的安全攻击,尤其是弥补原有系统在安全保护方面的缺陷,在计算机安全技术方面逐步建立了一套可信标准。在目前各国所引用或制定的一系列安全标准中,最重要的当推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必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A. 1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。 B. 2以上的系统标准更多地还处于理论研究阶段,产品化以至商品化的程度都不高,其应用也多限于一些特殊的部门如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别或更高安全级别下放到商业应用中来,并逐步成为新的商业标准。 C. BMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。当然,存取控制仅是安全性标准的一个重要方面(即安全策略方面)不是全部。为了使DBMS达到一定的安全级别,还需要在其它三个方面提供相应的支持。例如审计功能就是DBMS达到C2以上安全级别必不可少的一项指标。 D. Oracle的安全性措施。 E. Oracle的安全性措施主要有三个方面:一是用户标识和鉴定;二是授权和检查机制;三是审计技术;除此之外Oracle还允许用户通过出发器灵活定义自己的安全性措施。 F. 用户标识和鉴定 G. 授权与检查机制 系统权限 数据库对象的权限 ⑴表级安全性 ⑵行级安全性 ⑶列级安全性 审计技术 用户定义的安全性措施 BMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。 TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。 TCSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标。按照这些指标,目前许多大型DBMS 达到了C2级,其安全版本达到了B1。 2级的DBMS必须具有自主存取控制功能和初步的审计功能,B1的DBMS必须具有强制存取控制和增强的审计功能。自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的。
死锁的诊断与解除
① 超时法
如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。
②等待图法
事务等待图是一个有向图G=(T,U)。 T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2 ,则T1、T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。
DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务得以继续运行下去。当然,对撤消的事务所执行的数据修改操作必须加以恢复。
如果一个事务运行过程中没有其他事务同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的。因此将所有事务串行起来的调度策略一定是正确的调度策略。虽然以不同的顺序串行执行事务可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都是正确的。
定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。我们称这种调度策略为可串行化(Serializable)的调度。
另外,在封锁技术方面,SQL提供事务的四种一致性级别,从高到低分别是:
(可串行化)
(可重复读)
(读提交数据)
(可读未提交数据)
数据库安全:
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
为降低进而消除对系统的安全攻击,尤其是弥补原有系统在安全保护方面的缺陷,在计算机安全技术方面逐步建立了一套可信标准。在目前各国所引用或制定的一系列安全标准中,最重要的当推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必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
A. 1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。B. 2以上的系统标准更多地还处于理论研究阶段,产品化以至商品化的程度都不高,其应用也多限于一些特殊的部门如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别或更高安全级别下放到商业应用中来,并逐步成为新的商业标准。
C. BMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。当然,存取控制仅是安全性标准的一个重要方面(即安全策略方面)不是全部。为了使DBMS达到一定的安全级别,还需要在其它三个方面提供相应的支持。例如审计功能就是DBMS达到C2以上安全级别必不可少的一项指标。
D. Oracle的安全性措施。
E. Oracle的安全性措施主要有三个方面:一是用户标识和鉴定;二是授权和检查机制;三是审计技术;除此之外Oracle还允许用户通过出发器灵活定义自己的安全性措施。
F. 用户标识和鉴定
G. 授权与检查机制
系统权限
数据库对象的权限
⑴表级安全性
⑵行级安全性
⑶列级安全性
审计技术
用户定义的安全性措施
BMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。
TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。 TCSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标。按照这些指标,目前许多大型DBMS 达到了C2级,其安全版本达到了B1。
2级的DBMS必须具有自主存取控制功能和初步的审计功能,B1的DBMS必须具有强制存取控制和增强的审计功能。自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的。
题目解答
答案
实现数据库系统安全性的技术和方法有多种,最重要的是 存取控制技术和审计技术。