计算机网络安全技术主编刘永华中国水利水电出版社第3章网络数据库与数据安全本章主要内容•网络数据库安全的概念;网络数据库的特性,数据库的故障类型,数据库安全性措施(层次),数据库备份的类型及涵义,数据库系统备份性能指标;网络数据库恢复和转储的种类,数据失效的类型;影响数据完整性的因素,常见的硬件故障、网络故障、软件问题和人为因素。本章要求网络数据库系统特性及安全网络数据库的安全特性网络数据库的安全保护网络数据备份和恢复本章分为四小节:3.1网络数据库安全概述3.2网络数据库的安全特性3.3网络数据库的安全保护3.4网络数据备份和恢复3.1网络数据库安全概述1.数据库安全的概念2.数据库管理系统及特性3.数据库安全系统特性4.数据库安全的威胁3.1.1数据库安全的概念1.数据库安全(1)第一层含义是数据库系统的安全性。硬件运行安全物理控制安全操作系统安全用户有可连接数据库的授权灾害、故障恢复3.1.1数据库安全的概念1.数据库安全(2)第二层含义是数据库数据的安全性。有效的用户名/口令鉴别用户访问权限控制数据存取权限、方式控制审计跟踪数据加密防止电磁信息泄漏3.1.1数据库安全的概念2.数据库安全管理原则(1)管理细分和委派原则(2)最小权限原则(3)账号安全原则(4)有效审计原则3.1.2数据库管理系统及特性1.数据库管理系统的安全功能数据库管理系统(DBMS):专门负责数据库管理和维护的计算机软件系统。它是数据库系统的核心,不仅负责数据库的维护工作,还能保证数据库的安全性和完整性。在安全方面,DBMS还具有以下职能:•保证数据的安全性和完整性,抵御一定程度的物理破坏,能维护和提交数据库内容;•能识别用户,分配授权和进行访问控制,包括身份证识别和验证。2.DBMS的安全使用特性•多用户:网络系统的数据库是为多个用户提供访问服务的;•高可靠性:多用户所使用的数据库要求一定有高可靠性;•数据频繁更新:多用户访问数据库的频率高,对数据的操作频繁;•文件大。(1).数据安全性保证数据库数据安全,通常采取以下措施:•将数据库中需要保护和不需要保护的数据分开;•采取ID号、口令和权限等访问控制;•数据加密后存于数据库。(2).数据的共享性不同的应用程序可以使用同一个数据库。不同的应用程序可以在同一时刻去存取同一个数据。数据库中的数据不但可供现有的应用程序共享,还可为新开发的应用程序使用。应用程序可用不同的程序设计语言编写,它们可以访问同一个数据库。(3).数据的结构化基于文件的数据的主要优势就在于它利用了数据结构。数据库中的文件相互联系,并在整体上服从一定的结构形式。数据库具有复杂的结构,不仅是因为它拥有大量的数据,同时也因为在数据之间和文件之间存在着种种联系。数据库的结构使开发者避免了针对每一个应用都需要重新定义数据逻辑关系的过程。3.数据库事务“事务”是数据库中的一个重要概念,是一系列操作过程的集合,也是数据库数据操作的并发控制单位。DBMS在数据库操作时进行“事务”定义,要么一个“事务”应用的全部操作结果都反映在数据库中(全部完成),要么就一点都没有反映在数据库中(全部撤除),数据库回到该次事务操作的初始状态。这就是说,一个数据库“事务”序列中的所有操作只有两种结果之一,即全部执行或全部撤除。3.1.3数据库系统的缺陷和威胁1.数据库系统缺陷常见的数据库的安全漏洞和缺陷有:•数据库应用程序通常都同操作系统的最高管理员密切相关;•人们对数据库安全的忽视;•部分数据库机制威胁网络低层安全;3.1.4数据库安全的缺陷和威胁1.缺陷和漏洞常见的数据库的安全漏洞和缺陷有:•数据库应用程序通常都同操作系统的最高管理员密切相关;•人们对数据库安全的忽视;•部分数据库机制威胁网络低层安全;•安全特性缺陷;•数据库账号密码容易泄漏;•操作系统后门;•木马的威胁。2.数据库系统的威胁形式•篡改:篡改是指对数据库中的数据未经授权地进行修改,使其失去原来的真实性。篡改是一种人为的主动攻击。进行这种人为攻击的原因可能是个人利益驱动、隐藏证据、恶作剧或无知。•损坏:损坏的表现为数据库中表和整个数据库部分或全部被删除、移走或破坏。产生损坏的原因主要有破坏、恶作剧和病毒。•窃取:窃取一般是对敏感数据进行的。窃取的手法可能是将数据复制到可移动的介质上带走或把数据打印后取走。一般,被窃取的数据可能具有很高的价值。窃取数据的对象一般是内部员工和军事及工商业间谍等。3.数据库系统威胁的来源数据库安全的威胁主要来自物理和环境的因素;事务内部故障;系统故障;人为破坏;介质故障;并发事件;病毒与黑客。3.2网络数据库的安全特性为了保证数据库数据的安全可靠和正确有效,DBMS必须提供统一的数据保护功能。数据保护也称为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。下面以多用户数据库系统Oracle为例,阐述数据库的安全特性。3.2.1数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。在数据库系统中有大量的计算机系统数据集中存放,为许多用户所共享,这样就使安全问题更为突出。在一般的计算机系统中,安全措施是一级一级设置的。1.数据库的存取控制(1)数据库的安全机制多用户数据库系统(如Oracle)提供的安全机制可做到:防止非授权的数据库存取;防止非授权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。(2)模式和用户机制Oracle使用多种不同的机制管理数据库安全性,其中有模式和用户两种机制。模式机制。模式为模式对象的集合,模式对象如表、视图、过程和包等。用户机制。每一个Oracle数据库有一组合法的用户,可运行一数据库应用和使用该用户连接到定义该用户的数据库。当建立一个数据库用户时,对该用户建立一个相应的模式,模式名与用户名相同。一旦用户连接一个数据库,该用户就可存取相应模式中的全部对象,一个用户仅与同名的模式相联系,所以用户和模式是类似的。2.特权和角色(1)特权特权是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。有系统特权和对象特权两类特权。系统特权。系统特权是执行一种特殊动作或者在对象类型上执行一种特殊动作的权力。系统特权可授权给用户或角色。系统可将授予用户的系统特权授给其他用户或角色,同样,系统也可从那些被授权的用户或角色处收回系统特权。对象特权。对象特权是指在表、视图、序列、过程、函数或包上执行特殊动作的权利。对于不同类型的对象,有不同类型的对象特权。(2)角色角色是相关特权的命名组。数据库系统利用角色可更容易地进行特权管理。①角色管理的优点减少特权管理。动态特权管理。特权的选择可用性。应用可知性。专门的应用安全性。一般,建立角色有两个目的,一是为数据库应用管理特权,二是为用户组管理特权,相应的角色分别称为应用角色和用户角色。应用角色是系统授予的运行一组数据库应用所需的全部特权。一个应用角色可授给其它角色或指定用户。一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。用户角色是为具有公开特权需求的一组数据库用户而建立的。②数据库角色的功能一个角色可被授予系统特权或对象特权。一个角色可授权给其它角色,但不能循环授权。任何角色可授权给任何数据库用户。授权给一个用户的每一角色可以是可用的,也可是不可用的。一个间接授权角色(授权给另一角色的角色)对一个用户可明确其可用或不可用。在一个数据库中,每一个角色名是唯一的。3.审计审计是对选定的用户动作的监控和记录,通常用于审查可疑的活动,监视和收集关于指定数据库活动的数据。(1)Oracle支持的三种审计类型语句审计。语句审计是指对某种类型的SQL语句进行的审计,不涉及具体的对象。这种审计既可对系统的所有用户进行,也可对部分用户进行。特权审计。特权审计是指对执行相应动作的系统特权进行的审计,不涉及具体对象。这种审计也是既可对系统的所有用户进行,也可对部分用户进行。对象审计。对象审计是指对特殊模式对象的访问情况的审计,不涉及具体用户,是监控有对象特权的SQL语句。(2)Oracle允许的审计选择范围审计语句的成功执行、不成功执行,或其两者都包括。对每一用户会话审计语句的执行审计一次或对语句的每次执行审计一次。对全部用户或指定用户的活动的审计。当数据库的审计是可能时,在语句执行阶段产生审计记录。审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存放于数据字典表(称为审计记录)或操作系统审计记录中。3.2.2数据库的完整性数据库的完整性是指保护数据库数据的正确性和一致性。它反映了现实中实体的本来面貌。数据库系统要提供保护数据完整性的功能。系统用一定的机制检查数据库中的数据是否满足完整性约束条件。Oracle应用于关系型数据库的表的数据完整性有下列类型:空与非空规则:在插入或修改表的行时允许或不允许包含有空值的列;唯一列值规则:允许插入或修改表的行在该列上的值唯一;引用完整性规则;用户对定义的规则。Oracle允许定义和实施每一种类型的数据完整性规则,如空与非空规则、唯一列值规则和引用完整性规则等,这些规则可用完整性约束和数据库触发器来定义。1.完整性约束(1)完整性约束条件完整性约束条件是作为模式的一部分,对表的列定义的一些规则的说明性方法。具有定义数据完整性约束条件功能和检查数据完整性约束条件方法的数据库系统可实现对数据完整性的约束。完整性约束有数值类型与值域的完整性约束、关键字的约束、数据联系(结构)的约束等。这些约束都是在稳定状态下必须满足的条件,叫静态约束。相应地还有动态约束,就是指数据库中的数据从一种状态变为另一种状态时,新旧数值之间的约束,例如更新人的年龄时,新值不能小于旧值等。(2)完整性约束的优点利用完整性约束实施数据完整性规则有以下优点:定义或更改表时,不需要程序设计便可很容易地编写程序并可消除程序性错误,其功能是由Oracle控制。对表所定义的完整性约束被存储在数据字典中,所以由任何应用进入的数据都必须遵守与表相关联的完整性约束。具有最大的开发能力。当由完整性约束所实施的事务规则改变时,管理员只需改变完整性约束的定义,所有应用自动地遵守所修改的约束。完整性约束存储在数据字典中,数据库应用可利用这些信息,在SQL语句执行之前或Oracle检查之前,就可立即反馈信息。完整性约束说明的语义被清楚地定义,对于每一指定说明规则可实现性能优化。完整性约束可临时地使其不可用,使之在装入大量数据时避免约束检索的开销。当数据库装入完成时,完整性约束可容易地使其可用,任何破坏完整性约束的新记录可在另外表中列出。2.数据库触发器(1)触发器的定义数据库触发器是使用非说明方法实施的数据单元操作过程。利用数据库触发器可定义和实施任何类型的完整性规则。Oracle允许定义过程,当对相关的表进行Insert、Update或Delete语句操作时,这些过程被隐式地执行,这些过程称为数据库触发器。触发器类似于存储过程,可包含SQL语句和PL/SQL语句,可调用其它的存储过程。过程与触发器差别在于调用方法:过程由用户或应用显式地执行;而触发器是为一个激发语句(Insert、Update、Delete)发出而由Oracle隐式地触发。一个数据库应用可隐式地触发存储在数据库中的多个触发器。(2)触发器的组成一个触发器由三部分组成:触发事件或语句、触发限制和触发器动作。触发事件或语句是指引起激发触发器的SQL语句,可为对一个指定表的Insert、Update或Delete语句。触发限制是指定一个布尔表达式,当触发器激发时该布尔表达式必须为真。触发器作为过程,是PL/SQL块,当触发语句发出、触发限制计算为真时该过程被执行。(3)触发器的功能一般触发器用于:自动地生成导出列值。实施复杂的安全审核。在分布式数据库中实施跨节点的完整性引用。实施复杂的事务规则。提供透明的事件记录。提供高级的审计。收集表存取的统计信息。3.2.3数据库的并发控制1.一致性和实时性一致性的数据库就是指并