数据库原理第4章数据库的安全性主讲:杨莎Email:cyoung1026@163.com数据库原理学习目标通过本章学习,要求掌握:•计算机安全评估标准•DAC与MAC授权与回收语句•视图的保护机制•审计功能•数据加密的基本术语数据库原理问题的提出•数据库的一大特点是数据可以共享•但数据共享必然带来数据库的安全性问题•数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据第4章数据库安全性数据库的安全性问题数据库原理数据库安全性(续)什么是数据库的安全性•数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。什么是数据的保密•数据保密是指用户合法地访问到机密数据后能否对这些数据保密。•通过制订法律道德准则和政策法规来保证。数据库原理目录计算机安全性概述1数据库安全性控制2视图机制3审计4数据加密5数据库原理4.1计算机安全性概论4.1.1计算机系统的三类安全性问题4.1.2可信计算机系统评测标准数据库原理4.1.1计算机系统的三类安全性问题什么是计算机系统安全性•为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。数据库原理计算机系统的三类安全性问题(续)三类计算机系统安全性问题•技术安全类•管理安全类•政策法律类数据库原理4.1计算机安全性概论4.1.1计算机系统的三类安全性问题4.1.2可信计算机系统评测标准数据库原理4.1.2可信计算机系统评测标准为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准•TCSEC(桔皮书)•CC标准数据库原理可信计算机系统评测标准(续)1985年美国国防部(DoD)正式颁布《DoD可信计算机系统评估标准》(简称TCSEC或DoD85)•TCSEC又称桔皮书•TCSEC标准的目的提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。数据库原理可信计算机系统评测标准(续)TDI/TCSEC标准的基本内容•TDI与TCSEC一样,从四个方面来描述安全性级别划分的指标安全策略责任保证文档数据库原理TCSEC/TDI安全级别划分可信计算机系统评测标准(续)安全级别定义A1验证设计(VerifiedDesign)B3安全域(SecurityDomains)B2结构化保护(StructuralProtection)B1标记安全保护(LabeledSecurityProtection)C2受控的存取保护(ControlledAccessProtection)C1自主安全保护(DiscretionarySecurityProtection)D最小保护(MinimalProtection)数据库原理可信计算机系统评测标准(续)四组(division)七个等级•D•C(C1,C2)•B(B1,B2,B3)•A(A1)按系统可靠或可信程度逐渐增高各安全级别之间具有一种偏序向下兼容的关系,•较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。数据库原理可信计算机系统评测标准(续)D级:最小保护级•将一切不符合更高标准的系统均归于D组•典型例子:DOS是安全标准为D的操作系统DOS在安全性方面几乎没有什么专门的机制来保障数据库原理可信计算机系统评测标准(续)C1级:自主安全保护•非常初级的自主安全保护•能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。数据库原理可信计算机系统评测标准(续)C2级:受控的存取保护•安全产品的最低档次•提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离•达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色数据库原理可信计算机系统评测标准(续)•典型例子操作系统Microsoft的WindowsNT3.5,数字设备公司的OpenVMSVAX6.0和6.1数据库Oracle公司的Oracle7Sybase公司的SQLServer11.0.6数据库原理可信计算机系统评测标准(续)B1级:标记安全保护•标记安全保护。“安全”(Security)或“可信的”(Trusted)产品。•对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制数据库原理可信计算机系统评测标准(续)•典型例子操作系统数字设备公司的SEVMSVAXVersion6.0惠普公司的HP-UXBLSrelease4.0.9+数据库Oracle公司的TrustedOracle7Sybase公司的SecureSQLServerversion11.0.6Informix公司的IncorporatedINFORMIX-OnLine/Secure5.0数据库原理可信计算机系统评测标准(续)B2级:结构化保护•结构化保护•建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。•经过认证的B2级以上的安全系统非常稀少数据库原理可信计算机系统评测标准(续)•典型例子操作系统只有TrustedInformationSystems公司的TrustedXENIX一种产品标准的网络产品只有CryptekSecureCommunications公司的LLCVSLAN一种产品数据库没有符合B2标准的产品数据库原理可信计算机系统评测标准(续)B3级:安全域级•安全域。•该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。数据库原理可信计算机系统评测标准(续)A1级:验证设计•验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。数据库原理可信计算机系统评测标准(续)B2以上的系统•还处于理论研究阶段•应用多限于一些特殊的部门如军队等•美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准。数据库原理目录计算机安全性概述1数据库安全性控制2视图机制3审计4数据加密5数据库原理4.2数据库安全性控制数据库访问原理主体访问控制实施功能访问控制决策功能客体提交访问请求提出访问请求请求决策决策数据库原理数据库安全性控制概述(续)数据库安全性控制的常用方法•用户标识和鉴定•存取控制•视图•审计•密码存储访问控制数据库原理4.2.1用户标识与鉴别用户标识与鉴别(Identification&Authentication)•系统提供的最外层安全保护措施数据库原理4.2.1用户标识与鉴别基本方法•用户标识•口令系统核对口令以鉴别用户身份•用户名和口令易被窃取每个用户预先约定好一个计算过程或者函数数据库原理4.2.2存取控制存取控制机制的功能•存取控制机制的组成定义存取权限检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统数据库原理存取控制(续)•定义存取权限在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。•检查存取权限对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。数据库原理存取控制(续)常用存取控制方法•自主存取控制(DiscretionaryAccessControl,简称DAC)C2级灵活•强制存取控制(MandatoryAccessControl,简称MAC)B1级严格数据库原理4.2.3自主存取控制方法通过SQL的GRANT语句和REVOKE语句实现用户权限组成•数据对象•操作类型定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作定义存取权限称为授权数据库原理自主存取控制方法(续)•关系系统中的存取权限类型数据对象操作类型模式模式建立、修改、删除、检索外模式建立、修改、删除、检索内模式建立、删除、检索数据表查找、插入、修改、删除属性列查找、插入、修改、删除数据库原理4.2.4授权与回收一、GRANTGRANT语句的一般格式:GRANT权限[,权限]...[ON对象类型对象名]TO用户[,用户]...[WITHGRANTOPTION];语义:将对指定操作对象的指定操作权限授予指定的用户数据库原理GRANT(con.)发出GRANT:•DBA•数据库对象创建者(即属主Owner)•拥有该权限的用户接受权限的用户•一个或多个具体用户•PUBLIC(全体用户)数据库原理WITHGRANTOPTION子句指定了WITHGRANTOPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITHGRANTOPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限数据库原理例题例1把查询Student表权限授给用户U1GRANTSELECTONTABLEStudentTOU1;数据库原理例题(续)例2把对Student表和Course表的全部权限授予用户U2和U3GRANTALLPRIVILEGESONTABLEStudent,CourseTOU2,U3;数据库原理例题(续)例3把对表SC的查询权限授予所有用户GRANTSELECTONTABLESCTOPUBLIC;数据库原理例题(续)例4把查询Student表和修改学生学号的权限授给用户U4GRANTUPDATE(Sno),SELECTONTABLEStudentTOU4;数据库原理例题(续)例5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;数据库原理传播权限执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:GRANTINSERTONTABLESCTOU6WITHGRANTOPTION;同样,U6还可以将此权限授予U7:GRANTINSERTONTABLESCTOU7;但U7不能再传播此权限。U5--U6--U7数据库原理例题(续)例6DBA把在数据库S_C中建立表的权限授予用户U8GRANTCREATETABONDATABASES_CTOU8;数据库原理授权与回收(con.)二、REVOKE语句的一般格式为:REVOKE权限[,权限]...[ON对象类型对象名]FROM用户[,用户]...;功能:从指定用户那里收回对指定对象的指定权限数据库原理例题例7把用户U4修改学生学号的权限收回REVOKEUPDATE(Sno)ONTABLEStudentFROMU4;数据库原理例题(续)例8收回所有用户对表SC的查询权限REVOKESELECTONTABLESCFROMPUBLIC;数据库原理例题(续)例9把用户U5对SC表的INSERT权限收回REVOKEINSERTONTABLESCFROMU5CASCADE;将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回系统只收回直接或间接从U5处获得的权限;