1、数据库安全性数据库安全性 第第9章章n 概述概述n 安全性控制安全性控制n 统计数据库安全性统计数据库安全性n OracleOracle数据安全性措施数据安全性措施一一.数据库破坏类型数据库破坏类型 Concurrency ExecutionConcurrency Execution引起数据不一致;引起数据不一致;人为破坏;人为破坏;对数据操作引入的数据错误。对数据操作引入的数据错误。System FailureSystem Failure;二二.各种类型的保护措施各种类型的保护措施 Concurrency ExecutionConcurrency Execution引起数据不一致引起数据不一
2、致 并发控制并发控制;人为破坏人为破坏 数据库安全数据库安全;对数据操作引入的数据错误对数据操作引入的数据错误 数据库完整性数据库完整性。System Failure System Failure 故障恢复故障恢复;问题的提出问题的提出 数据库的一大特点是数据数据库的一大特点是数据可以共享,可以共享,但数据共享必然带来数但数据共享必然带来数据库的据库的安全性问题,安全性问题,数据库系统中的数据共享数据库系统中的数据共享不能是无条件的共不能是无条件的共享。享。例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销
3、售计划、客户档案、医疗档案、银行储蓄数据销售计划、客户档案、医疗档案、银行储蓄数据 数据库中数据的共享是在数据库中数据的共享是在DBMSDBMS统一的严格的控制之下的共统一的严格的控制之下的共享,即享,即只允许有合法使用权限的用户访问允许他存取的数据只允许有合法使用权限的用户访问允许他存取的数据。数据库系统的安全保护措施是否有效是数据库系统主要的数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一。性能指标之一。9.1 9.1 计算机安全性概论计算机安全性概论n 什么是数据库的安全性什么是数据库的安全性p 指保护数据库以指保护数据库以防止不合法使用防止不合法使用数据库造成数据数据库造
4、成数据泄露、更改或破坏。泄露、更改或破坏。n 什么是什么是数据的保密数据的保密p 指用户合法地访问到机密数据后能否对这些数据指用户合法地访问到机密数据后能否对这些数据保密保密。p 通过制订法律道德准则和政策法规来保证。通过制订法律道德准则和政策法规来保证。9.1.1 9.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题n什么是计算机系统安全性什么是计算机系统安全性p为计算机系统为计算机系统建立和采取建立和采取的的各种安全保护措施各种安全保护措施,以,以保护保护计计算机系统中的算机系统中的硬件、软件及数据硬件、软件及数据,防止防止其因偶然或恶意的其因偶然或恶意的原因使原因使系统遭到破
5、坏系统遭到破坏,数据遭到更改或泄露数据遭到更改或泄露等。等。n计算机安全涉及问题计算机安全涉及问题p计算机系统本身的技术问题计算机系统本身的技术问题p管理问题管理问题p法学法学p犯罪学犯罪学p心理学心理学 指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。软硬件意外故障、场地的意外事故
6、、管理不善导致的计算机设备和数软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题。据介质的物理破坏、丢失等安全问题。政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。策法规、法令。n环境级:对机房和设备加以保护,防止物理破坏。环境级:对机房和设备加以保护,防止物理破坏。n职员级:加强管理,正确授予访问数据库的权限。职员级:加强管理,正确授予访问数据库的权限。n操作系统级:防止未经授权的人员从操作系统层访问数据操作系统级:防止未经授权的人员从操作系统层访问数据库。库。n网
7、络级:通过网络访问数据库,网络软件内部的安全性很网络级:通过网络访问数据库,网络软件内部的安全性很重要。重要。n数据库系统级:验证用户身份的合法性,检验用户数据库数据库系统级:验证用户身份的合法性,检验用户数据库操作权限是否正确。操作权限是否正确。9.1.2 9.1.2 可信计算机系统评测标准可信计算机系统评测标准n为降低进而消除对系统的安全攻击,各国引用或制定了一系列为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准安全标准pTCSECTCSEC DoD DoD可信计算机系统评估标准可信计算机系统评估标准pTDITDIn TDI/TCSEC TDI/TCSEC标准的基本内容标准的
8、基本内容p TDITDI从从来描述安全性级别划分的指标来描述安全性级别划分的指标 安全策略安全策略 责任责任 保证保证 文档文档n TCSEC/TDI TCSEC/TDI安全级别划分安全级别划分安安 全全 级级 别别 定定 义义 A1 A1验证设计(验证设计(Verified DesignVerified Design)B3B3安全域(安全域(Security DomainsSecurity Domains)B2B2结构化保护(结构化保护(Structural ProtectionStructural Protection)B1B1标记安全保护(标记安全保护(Labeled Security
9、ProtectionLabeled Security Protection)C2C2受控的存取保护(受控的存取保护(Controlled Access ProtectionControlled Access Protection)C1C1自主安全保护(自主安全保护(Discretionary Security ProtectionDiscretionary Security Protection)D D最小保护(最小保护(Minimal ProtectionMinimal Protection)9.2 9.2 数据库安全性控制数据库安全性控制应用应用DBMSDBMSOS OS DBDB 低低
10、高高安全性控制层次安全性控制层次方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 安全保护安全保护 密码存储密码存储9.2.1 9.2.1 用户标识与鉴别用户标识与鉴别(Identification&Authentication)(Identification&Authentication)系统提供的系统提供的最外层最外层安全保护措施安全保护措施基本方法基本方法p系统提供一定的方式让系统提供一定的方式让用户标识自己的名字或身份用户标识自己的名字或身份;p系统内部记录着所有合法用户的标识;系统内部记录着所有合法用户的标识;p每次用户要求进入系统时,由系
11、统每次用户要求进入系统时,由系统核对用户核对用户提供的提供的身份身份标识;标识;p通过鉴定后才提供机器使用权;通过鉴定后才提供机器使用权;p用户标识和鉴定可以重复多次。用户标识和鉴定可以重复多次。用户标识自己的名字或身份用户标识自己的名字或身份n用户名用户名/口令口令p简单易行,容易被人窃取简单易行,容易被人窃取n每个用户预先约定好一个计算过程或者函数每个用户预先约定好一个计算过程或者函数p系统提供一个随机数系统提供一个随机数p用户根据自己预先约定的计算过程或者函数进行计算用户根据自己预先约定的计算过程或者函数进行计算p系统根据用户计算结果是否正确鉴定用户身份系统根据用户计算结果是否正确鉴定用
12、户身份智能卡智能卡主体特征鉴别主体特征鉴别9.2.2 9.2.2 存取控制存取控制n存取控制机制的组成存取控制机制的组成p 定义存取权限定义存取权限p 检查存取权限检查存取权限 对于通过鉴定获得上机权的用户(即合法用户),对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。制,确保他只执行合法操作。GRANT SELECT ON TABLE STUDENT TO U1 WITH GRANT SELECT ON TABLE STUDENT TO U1 WITH GRANT OPTIO
13、N;GRANT OPTION;GRANT UPDATE ON TABLE COURSE TO U1;GRANT UPDATE ON TABLE COURSE TO U1;GRANT ALL PRIVILIGES ON TABLE STUDENT TO U2;GRANT ALL PRIVILIGES ON TABLE STUDENT TO U2;n常用存取控制方法常用存取控制方法p自主存取控制(自主存取控制(Discretionary Access Control Discretionary Access Control,简称简称DACDAC)p强制存取控制(强制存取控制(Mandatory A
14、ccess ControlMandatory Access Control,简称,简称 MACMAC)9.2.3 9.2.3 自主存取控制自主存取控制(DAC)(DAC)方法方法n定义存取权限定义存取权限p存取权限由两个要素组成存取权限由两个要素组成 数据对象数据对象 操作类型操作类型n关系系统中的存取权限关系系统中的存取权限数据对象数据对象 操作类型操作类型模模 式式 模模 式式建立、修改、删除、检索建立、修改、删除、检索 外模式外模式 建立、修改、删除、检索建立、修改、删除、检索 内模式内模式建立、删除、检索建立、删除、检索数数 据据 表表查找、插入、修改、删除查找、插入、修改、删除 属性
15、列属性列查找、插入、修改、删除查找、插入、修改、删除n 关系系统中的存取权限关系系统中的存取权限p定义方法定义方法:GRANT/REVOKE:GRANT/REVOKE例例:一张授权表一张授权表 用户名用户名 数据对象名数据对象名 允许的操作类型允许的操作类型 王王 平平 关系关系Student SELECTStudent SELECT 张明霞张明霞 关系关系Student UPDATEStudent UPDATE 张明霞张明霞 关系关系Course ALLCourse ALL 张明霞张明霞 SC.Grade UPDATESC.Grade UPDATE 张明霞张明霞 SC.SnoSC.Sno S
16、ELECT SELECT 张明霞张明霞 SC.CnoSC.Cno SELECT SELECTn 检查存取权限检查存取权限p 对于获得上机权后又进一步发出存取数据库操作的用户对于获得上机权后又进一步发出存取数据库操作的用户DBMSDBMS查找数据字典,根据其存取权限对操作的合法性进查找数据字典,根据其存取权限对操作的合法性进行检查;行检查;若用户的操作请求超出了定义的权限,系统将拒绝执行若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。此操作。n 授权粒度授权粒度p 授权粒度是指可以定义的数据对象的范围授权粒度是指可以定义的数据对象的范围它是衡量授权机制是否灵活的一个重要指标。它是衡量授权
17、机制是否灵活的一个重要指标。授权定义中数据对象的粒度越细,即可以定义的数据对象授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。的范围越小,授权子系统就越灵活。n自主存取控制小结自主存取控制小结p优点优点 能够通过授权机制有效地控制其他用户对敏感数据的存取能够通过授权机制有效地控制其他用户对敏感数据的存取p缺点缺点 可能存在数据的可能存在数据的“无意泄露无意泄露”原因原因:这种机制仅仅通过对数据的存取权限来进行安全控:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。制,而数据本身并无安全性标记。解决解决:对系统控制下的所有主客体实施强制
18、存取控制策略:对系统控制下的所有主客体实施强制存取控制策略 例如:甲将自己权限范围内的某些数据存取权限授权给乙,例如:甲将自己权限范围内的某些数据存取权限授权给乙,甲的意图只允许乙本人操纵这些数据,但是乙可以将数据备份,甲的意图只允许乙本人操纵这些数据,但是乙可以将数据备份,并可以在不征得甲同意的前提下转播副本。并可以在不征得甲同意的前提下转播副本。9.2.4 9.2.4 强制存取控制强制存取控制(MAC)(MAC)方法方法n什么是强制存取控制什么是强制存取控制p指系统为保证更高程度的安全性,按照指系统为保证更高程度的安全性,按照TDI/TCSECTDI/TCSEC标准中安标准中安全策略的要求
19、,所采取的强制存取检查手段。全策略的要求,所采取的强制存取检查手段。pMACMAC不是用户能直接感知或进行控制的。不是用户能直接感知或进行控制的。pMACMAC适用于对数据有严格而固定密级分类的部门适用于对数据有严格而固定密级分类的部门 军事部门军事部门 政府部门政府部门n 主体与客体主体与客体p 在在MACMAC中,中,DBMSDBMS所管理的全部实体被分为所管理的全部实体被分为主体和客体主体和客体两大类两大类p 主体是系统中的活动实体主体是系统中的活动实体 DBMSDBMS所管理的实际用户所管理的实际用户 代表用户的各进程代表用户的各进程p 客体是系统中的被动实体,是受主体操纵的客体是系统
20、中的被动实体,是受主体操纵的 文件文件 基本表基本表 索引索引 视图视图对于主体和对于主体和客体,客体,DBMSDBMS为它们每个为它们每个实例指派一实例指派一个个敏感度标敏感度标记记(LabelLabel)绝密(绝密(Top SecretTop Secret)机密(机密(SecretSecret)可信(可信(ConfidentialConfidential)公开(公开(PublicPublic)n 强制存取控制规则强制存取控制规则p当某一用户(或某一主体)以标记当某一用户(或某一主体)以标记labellabel注册入系统时,系注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:统要
21、求他对任何客体的存取必须遵循下面两条规则:n 修正规则修正规则p 主体的许可证级别主体的许可证级别 =得到的利益得到的利益9.4 Oracle9.4 Oracle数据库的安全性措施数据库的安全性措施n ORACLE ORACLE的安全措施的安全措施:p 用户标识和鉴定用户标识和鉴定 允许用户重复标识三次,如果三次仍未通过,系统自动退出。允许用户重复标识三次,如果三次仍未通过,系统自动退出。p 授权和检查机制授权和检查机制 系统权限系统权限 数据库对象的权限数据库对象的权限p 审计技术审计技术 用户级审计用户级审计 系统级审计系统级审计p 用户通过触发器灵活定义自己的安全性措施用户通过触发器灵活
22、定义自己的安全性措施数据库安全性小结数据库安全性小结n随着计算机网络的发展,数据的共享日益加强,数据的安全随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。保密越来越重要。nDBMSDBMS是管理数据的核心,因而其自身必须具有一整套完整而是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。有效的安全性机制。n可信计算机系统评测标准可信计算机系统评测标准TCSEC/TDITCSEC/TDI是目前各国所引用或是目前各国所引用或制定的一系列安全标准中最重要的一个。制定的一系列安全标准中最重要的一个。nCSEC/TDICSEC/TDI从从安全策略、责任、保证安全策略、责
23、任、保证和和文档文档四个方面描述了安四个方面描述了安全性级别的指标。全性级别的指标。n实现数据库系统安全性的技术和方法有多种,较重要实现数据库系统安全性的技术和方法有多种,较重要的是的是存取控制技术和审计技术存取控制技术和审计技术。n目前许多大型目前许多大型DBMS DBMS 达到了达到了C2C2级,其安全版本达到了级,其安全版本达到了B1B1。nC2C2级的级的DBMSDBMS必须具有必须具有自主存取控制功能自主存取控制功能和和初步的审计功能。初步的审计功能。nB1B1级的级的DBMSDBMS必须具有必须具有强制存取控制强制存取控制和和增强的审计功能。增强的审计功能。n自主存取控制功能一般是通过自主存取控制功能一般是通过SQL SQL 的的GRANTGRANT语句和语句和REVOKEREVOKE语语句来实现的。句来实现的。n视图机制与授权机制配合使用。视图机制与授权机制配合使用。