1、网络信息安全管理 数据库安全,田斌 ,4.1 数据库系统简介,1数据库系统的组成数据库系统,分成两部分:一部分是数据库,按一定的方式存取数据;另一部分是数据库管理系统,为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能。 2数据库 数据库,就是若干数据的集合体。因此数据库要由数据库管理系统进行科学地组织和管理,以确保数据库的安全性和完整性。,3数据库管理系统 (1)DBMS的主要职能1) 有正确的编译功能,能正确执行规定的操作。2)能正确执行数据库命令。3)能保证数据的安全性、完整性,能抵御一定程度的物理破坏,能维护和提交数据库内容。4) 能识别用户、分配授权和进行访问控制。
2、5)顺利执行数据库访问,保证网络通信功能。,(2)DBA的具体职责 l 决定数据库的信息内容和结构。 l 决定数据库的存储结构和存取策略。 l 定义数据的安全性要求和完整性约束条件。 l 确保数据库的安全性和完整性,不同用户对数据库的存取权限、数据的保密级别和完整性约束条件也应由DBA负责决定。 监督和控制数据库的使用和运行,DBA负责监视数据库系统的运行,及时处理运行过程中出现的问题。 数据库系统的改进和重组。,4数据库的特性 (1)多用户 (2)高可用性 (3)频繁的更新 (4)大文件 (5)安全性与可靠性问题复杂,4.2 数据库系统安全概述,4.2.1 数据库系统的安全性要求,1数据库的
3、完整性 2元素的完整性 3可审计性 4访问控制 5用户认证 6可获性,返回本节,问题的提出 数据库的一大特点是数据可以共享 但数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享 军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、 客户档案、医疗档案、银行储蓄数据,4.2.2 数据库系统的安全的含义,什么是数据库的安全性 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据的保密 数据保密是指用户合法地访问到机密数据后能否对这些数据保密。 通过制订法律道德准则和政策法规来保证。,1系统运行安全 系统运行安全包括:
4、法律、政策的保护,如用户是否有合法权利,政策是否允许等;物理控制安全,如机房加锁等;硬件运行安全;操作系统安全,如数据文件是否保护等;灾害、故障恢复;死锁的避免和解除;电磁信息泄漏防止。 2系统信息安全 系统信息安全包括:用户口令字鉴别;用户存取权限控制;数据存取权限、方式控制;审计跟踪;数据加密。,4.2.3 数据库的故障类型,1事务内部的故障 2系统范围内的故障 3介质故障 4计算机病毒与黑客,4.2.4 数据库系统的基本安全架构,1用户分类:一般将权限分为三类:数据库登录权限类、资源管理权限类和数据库管理员权限类。 2数据分类:建立视图。 3审计功能:监视各用户对数据库施加的动作。有两种
5、方式的审计,即用户审计和系统审计。,4.2.5 数据库系统的安全特性,1数据独立性 2数据安全性 3数据的完整性 4并发控制 5故障恢复,4.3 数据库安全性控制,非法使用数据库的情况:用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;编写应用程序执行非授权操作;,数据库安全性控制的常用方法 用户标识和鉴定 存取控制(Grant/Revoke) 视图 审计 密码存储,4.3.1 用户标识与鉴别(Identification & Authentication),系统提供的最外层安全保护措施,基本方法: 系统提供一定的方式让用户标识自己的名字或身份;
6、系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身份标识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复多次,4.3.2 存取控制,存取控制机制的功能 定义存取权限 在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。 检查存取权限 对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。,4.3.2.1自主存取控制(DAC),用户对于不同的数据对象有不同的存取权限; 不同的用户对同一对象也有不同的
7、权限; 用户还可将其拥有的存取权限转授给其他用户; Grant & Revoke;,定义存取权限 定义一个用户可以在哪些数据对象上进行哪些类型的操作 在数据库系统中,定义存取权限称为授权(Authorization) 授权定义经过编译后存放在数据字典中检查存取权限对于获得上机权后又进一步发出存取数据库操作的用户,DBMS查找数据字典,根据其存取权限对操作的合法性进行检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。,授权粒度授权粒度是指可以定义的数据对象的范围 它是衡量授权机制是否灵活的一个重要指标。 授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活
8、。关系数据库中授权的数据对象粒度 数据库 表 属性列 行,4.3.2.2强制存取控制(MAC),什么是强制存取控制强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。 MAC不是用户能直接感知或进行控制的。 MAC适用于对数据有严格而固定密级分类的部门 军事部门 政府部门,每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以存取,主体与客体在MAC中,DBMS所管理的全部实体被分为主体和客体两大类 主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的
9、各进程客体是系统中的被动实体,是受主体操纵的 文件 基表 索引 视图,敏感度标记 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)敏感度标记分成若干级别: 绝密(Top Secret) 机密(Secret) 可信(Confidential) 公开(Public),主体的敏感度标记称为许可证级别(Clearance Level) 客体的敏感度标记称为密级(Classification Level)MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。 强制存取控制规则:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客
10、体;仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏,强制存取控制的特点: MAC是对数据本身进行密级标记 无论数据如何复制,标记与数据是一个不可分的整体 只有符合密级标记要求的用户才可以操纵数据 从而提供了更高级别的安全性,MAC与与DAC在实现MAC时要首先实现DAC,即DAC与MAC共同构成DBMS的安全机制。 原因:较高安全性级别提供的安全保护要包含较低级别的所有保护。系统首先进行DAC检查, 对通过DAC检查的允许存取的数据对象再由系统自动进行MAC检查,只有通过AC检查的数据对象方可存取。,4.
11、3.3视图机制, 视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 视图机制更主要的功能在于提供数据独立性,其安全保护功能不太精细,往往不能达到应用系统的要求。在实际应用中通常是视图机制与授权机制配合使用,首先用视图机制屏蔽掉一部分保密数据,然后在视图上面再进一步定义存取权限。,4.3.4 审计,审计功能启用一个专用的审计日志(Audit Log),系统自动将用户对数据库的所有操作记录在上面。DAB可以利用审计日志中的追踪信息,重现导致数据库现有状况的一系列事件,以找出非法存取数据的人。C2以上安全级别的DBMS必须具有审计功能,4.3.5 统计
12、数据库的安全性,统计数据库的特点 允许用户查询聚集类型的信息(例如合计、平均值等) 不允许查询单个记录信息统计数据库中特殊的安全性问题 隐蔽的信息通道 从合法的查询中推导出不合法的信息,规则1:规定任何查询至少要涉及N(N足够大)个以上的记录。 规则2:规定任意两个查询的相交数据项不能超过M个。 规则3:任一用户的查询次数不能超过1+(N-2)/M,4.4 数据库的完整性,完整性控制机制1.完整性约束条件定义机制 完整性约束条件是数据模型的一个重要组成部分,它约束了数据库中数据的语义。DBMS应提供手段让用户根据现实世界的语义定义数据库的完整性约束条件,并把它们作为模式的一部分存入数据库中。
13、2.完整性检查机制 检查用户发出的操作请求是否违背了完整性约束条件。 3.违约反应 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。,4.4.1 完整性约束条件,4.4.2 DBMS的完整性控制机制,1. 定义功能 一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。2. 检查功能 立即执行的约束 检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查,我们称这类约束为立即执行的约束(Immediate constraints)。 延迟执行的约束 但在某些情况下,完整性检查需要延迟到整个事务执行结束后再进行,我们称这类约束为延迟执行的约束(D
14、eferred constrainsts)。,完整性规则的形式化表述一条完整性规则可以用一个五元组(D,O,A,C,P)来表示,其中: D(Data)约束作用的数据对象; O(Operation)触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查; A(Assertion)数据对象必须满足的断言或语义约束,这是规则的主体; C(Condition)选择A作用的数据对象值的谓词; P(Procedure)违反完整性规则时触发的过程。,4.5 数据库的备份与恢复,4.5.1 数据库的备份,所谓备份 , 就是把数据库复制到转储设备的过程。其中,转储设
15、备是指用于放置数据库拷贝的磁带或磁盘。通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。 Oracle数据库的备份分为物理备份和逻辑备份两种。物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,由于它涉及到组成数据库的文件,但不考虑其逻辑内容。物理备份包括冷备份和热备份两种方式。,(1)冷备份(Cold Backup) 主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。 (2)热备份(Hot Backup)指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在(Archi
16、ve Log)归档方式下。 可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物理备份。,(3)逻辑备份(Logic Backup) 逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。逻辑备份可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库是在restrict状态将不能保证导出数据的一致性。Oracle提供的逻辑备份工具是 EXP。数据库逻辑备份是物理备份的补充。,4.5.2 数据库的恢复,所谓恢复,就是当发生故障后,利用已备份的数据文
17、件或控制文件,重新建立一个完整的数据库。根据出现故障的原因,恢复分为两种类型: 实例恢复:这种恢复是Oracle实例出现失败后,Oracle自动进行的恢复。 介质恢复:这种恢复是当存放数据库的介质出现故障时所做的恢复。本书提到的恢复都是指介质恢复。,根据数据库的恢复程度,将恢复方法分为两种类型: 完全恢复:将数据库恢复到数据库失败时数据库的状态。这种恢复是通过装载数据库备份并应用全部的重做日志做到的。 不完全恢复:将数据库恢复到数据库失败前的某一时刻数据库的状态。这种恢复是通过装载数据库备份并应用部分的重做日志做到的,进行不完全恢复后须在启动数据库时用 resetlogs 选项重设联机重做日志
18、。,1增量、累积和完全备份 增量备份(Incremental):指只备份上次增量,累积或完全备份以后已改变的那些表。增量导出表的定义和其所有数据,不只是改变的行。 累积备份(Cumulative):指只备份上次完全备份以后已经更改的那些表。 完全备份:用于建立增量备份和累积备份的一个基点。注意: 只有在全数据库方式且具有EXP FULL DATABASE角色的用户,才能做增量、累积和完全备份。,4.5.3 常用技术术语,2在线日志与归档日志 在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件填入日志项,日志项记录的数据用于重构对数
19、据库所作的全部修改。后台进程LGWR以循环方式写入在线日志文件。在线日志可在重用前被保存下来,成为归档日志。 归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志,或称离线日志。归档机制决定于归档设置,归档已填满的在线日志组的机制可由Oracle后台进程ARCH自动归档或由用户进程发出语句手工地归档。,3NOARCHIVELOG方式与ARCHIVELOG方式 数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。该数据库控制文件指明填满的组不需要归档,所以当填满的组成为活动,
20、在日志开关的检查点完成,该组即可被LGWR重用。在该方式下仅能保护数据库实例故障,而不能免于介质故障。只有最近的存储于联机重做日志组中的数据库的修改才可以用于实例或崩溃恢复。 如果数据库在ARCHIVELOG方式下,可实施在线日志的归档。在控制文件中指明填满的日志文件组在归档之前不能重用。一旦组成为不活动,执行归档的进程立即可使用该组。,4分布式数据库技术 分布式数据库技术是分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。采用分布式数据库技术,一个本地服务器可以存取不同物理地点的远程服务器上的数据;也可以使所有的服务器均可以持有数据的拷贝/复制,这样分布式系统中的所有服务器均可
21、进行本地存取。,5同步复制和异步复制 同步复制指复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。 异步复制指所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点,复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。,6更新冲突 在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。如果在同一时间对同一个表的同一行数据的同一列在两个不同的地点作更新,这种情况就会发生称之为更新冲
22、突的错误。为保证数据的一致性,更新冲突必须被检测到并且处理以确保在不同地点的数据元素保持同样的值。更新冲突可以通过限制“所有权”到单一节点或者将更新某个特定数据元素的权利限制到某一具体节点的方法来避免。,4分布式数据库技术 分布式数据库技术是分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。采用分布式数据库技术,一个本地服务器可以存取不同物理地点的远程服务器上的数据;也可以使所有的服务器均可以持有数据的拷贝/复制,这样分布式系统中的所有服务器均可进行本地存取。,5同步复制和异步复制 同步复制指复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了
23、更新操作,这种变化会立刻反映到其他所有的复制节点。 异步复制指所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点,复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。,6更新冲突 在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。如果在同一时间对同一个表的同一行数据的同一列在两个不同的地点作更新,这种情况就会发生称之为更新冲突的错误。为保证数据的一致性,更新冲突必须被检测到并且处理以确保在不同地点的数据元素保持同样的值。更新冲突可以通过限制“所有权”到单一节
24、点或者将更新某个特定数据元素的权利限制到某一具体节点的方法来避免。,4.5.4 物理备份,冷备份又称脱机备份,必须在数据库已经正常关闭的情况下进行,此时,系统会提供给用户一个完整的数据库。 冷备份时可以将数据库使用的每个文件都备份下来,这些文件包括: 所有控制文件(文件后缀名为.CTL,默认路径Oracleoradataoradb) 所有数据文件(文件后缀名为.DBF,默认路径Oracleoradataoradb) 所有联机REDO LOG文件(文件形式为REDO*.*,默认路径Oracleoradataoradb) 初始化文件INIT.ORA(可选)(默认路径Oracleadminoradb
25、spfile),冷备份是最快和最安全的方法。 冷备份的优点是: (1)是非常快速的备份方法(只需拷贝文件)。 (2)容易归档(简单拷贝即可)。 (3)容易恢复到某个时间点上(只需将文件再拷贝回去)。 (4)能与归档方法相结合,作数据库“最新状态”的恢复。 (5)低度维护,高度安全。,热备份要求数据库必须在归档方式下操作,由于热备份需要消耗较多的系统资源,因此DBA应安排在数据库不使用或使用率较低的情况下进行。 热备份的优点是: (1)可在表空间或数据文件级备份,备份时间短。 (2)备份时数据库仍可使用。 (3)可达到秒级恢复(恢复到某一时间点上)。 (4)可对几乎所有数据库实体作恢复。 (5)恢复是快速的,在大多数情况下在数据库仍工作时恢复。,热备份的不足是: (1)不能出错,否则后果严重。 (2)若热备份不成功,所得结果不可用于时间点的恢复。 (3)较难维护,必须仔细小心,不允许失败。 可以使用SQL*Plus程序和OEM中的备份向导两种方法进行热备份。,4.5.5 逻辑备份,