第09章数据库完整性与安全性1-3节.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性第9章数据库完整性与安全现代学习理念的四大支柱是:学会认知学会做事学会合作学会生存——《学会学习》一书的作者:方州数据库原理与设计2019/12/202北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性第9章数据库完整性与安全数据库的安全性:保护数据库以防止不合法使用所造成的数据泄密、更改或破坏。数据库的完整性:防止数据库中存在不符合语义的数据,其防范对象是不合语义的、不正确的数据。主要教学目标如下:要求熟练掌握DBMS安全性保护的基本原理与方法,并能熟练运用SQL中的GRANT和REVOKE语句进行授权;要求熟练掌握DBMS完整性保护措施,并能熟练运用SQL中的DDL语句进行完整性约束定义;要求熟练掌握数据库编程中的游标概念及其使用方法;熟练运用触发器完成复杂的完整性约束和审计功能;熟练运用存储过程编写复杂的业务处理和查询统计功能。2019/12/203北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性目录9.4数据库安全性9.1数据库完整性9.29.3游标存储过程触发器应用与安全设计9.59.62019/12/204北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1数据库安全性安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。数据库系统中大量数据集中存放,且为许多最终用户直接共享,安全性问题更为突出。9.1.1数据库安全的基本概念9.1.2安全标准9.1.3SQL存取控制机制9.1.4审计机制2019/12/205北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.1数据库安全的基本概念数据库安全保护目标是确保只有授权用户才能访问数据库,未被授权的人员则无法接近数据。安全措施是指计算机系统中用户直接或通过应用程序访问数据库所要经过的安全认证过程。数据库安全认证过程如图9-1所示2019/12/206北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.1数据库安全的基本概念用户标识与鉴别(identification&authentication)当用户访问数据库时,要先将其用户名(username)与密码(password)提交给数据库管理系统进行认证;只有在确定其身份合法后,才能进入数据库进行数据存取操作。数据库安全保护通过身份认证的用户,拥有了进入数据库的“凭证”;用户在数据库中执行什么操作,需通过“存取控制”或视图进行权限分配。2019/12/207北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.1数据库安全的基本概念存取控制:决定用户对数据库中的哪些对象进行操作,进行何种操作。存取控制机制主要包括两部分:定义用户权限及将用户权限登记到数据字典中;合法权限检查:当用户发出操作请求后,DBMS查找数据字典并根据安全规则进行合法权限检查,若操作请求超出了定义的权限,系统将拒绝执行此操作。视图:通过为不同的用户定义不同的视图,达到限制用户访问范围的目的。视图机制能隐藏用户无权存取的数据,从而自动地对数据库提供一定程度的安全保护;视图的主要功能在于提供数据库的逻辑独立性,其安全性保护不太精细,往往不能达到应用系统的要求;在实际应用中,通常将视图与存取控制机制结合起来使用,如先通过视图屏蔽一部分保密数据,然后进一步定义存取权限。2019/12/208北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.1数据库安全的基本概念审计:是一种监视措施,用于跟踪并记录有关数据的访问活动。审计追踪把用户对数据库的所有操作自动记录下来,存放在审计日志(auditlog)中;审计日志的内容一般包括:操作类型(如修改、查询、删除);操作终端标识与操作者标识;操作日期和时间;操作所涉及到的相关数据(如基本表、视图、记录、属性);数据库的前映像(即修改前的值)和后映像(即修改后的值)。利用这些信息,可找出非法存取数据库的人、时间和内容等;数据库管理系统往往将审计作为可选特征,允许操作者打开或关闭审计功能。2019/12/209北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.1数据库安全的基本概念操作系统安全保护通过操作系统提供的安全措施来保证数据库的安全性数据密码存储访问控制和存取控制可将用户的应用系统访问范围最小化和数据对象操作权限最低化,但对一些敏感数据进行“加密存储”也是系统提供的安全策略;数据加密(dataencryption):防止数据库中数据存储和传输失密的有效手段;加密的基本思想:先根据一定的算法将原始数据(即明文,plaintext)加密为不可直接识别的格式(即密文,ciphertext),然后数据以密文的方式存储和传输。2019/12/2010北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准美国、欧洲和国际标准化组织都对计算机系统制定了相应的安全标准。数据库的安全与计算机系统的安全是紧密相关的,数据库系统的安全标准与计算机系统的安全标准是一致的。基本概念:主体和客体主体:指数据库的访问者,包括用户、进程和线程等;客体:指数据库中的数据和载体,如基本表、视图、存储过程和数据文件等;主体与客体是独立的,一个主体可以在一定条件下访问某些客体。2019/12/2011北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准自主存取控制(DiscretionaryAccessControl,简记为DAC)DAC是一种基于存取矩阵的存取控制模型;此模型由三种元素组成,即主体、客体和存取操作。三种元素构成一个矩阵,列表示主体,行表示客体,矩阵中的元素表示存取操作,如读(R)、写(W)、删除(D)和修改(U)操作,如下图所示;在DAC中,主体按存取矩阵的要求访问客体,存取矩阵中的元素可通过授权方式进行修改,Unix操作系统属于该方式。2019/12/2012北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准强制存取控制(MandatoryAccessControl,简记为MAC)MAC不是用户能直接感知或进行控制的;MAC适用于对数据有严格而固定密级分类的部门,如军事部门或政府部门;对于主体和客体,DBMS为每个实例(值)指派了一个敏感度标记(label);敏感度标记被分成若干级别,例如绝密(topsecret)、机密(secret)、可信(confidential)和公开(public)等;主体的敏感度标记称为许可证级别(clearancelevel),客体的敏感度标记称为密级(classificationlevel);MAC对比主体和客体的敏感度标记,确定主体是否能够存取客体。2019/12/2013北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准当某一用户(或主体)注册进入系统时,他对任何客体的存取必须遵循如下规则:规则1:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;规则2:仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。规则(1)的意义是明显的,在某些系统中,规则(2)有些差别:仅当主体的许可证级别小于或等于客体的密级时,才能写相应的客体;即用户可以为写数据对象赋予高于自己的许可证级别的密级,这样一旦数据被写入,该用户自己也不能再读该数据对象了。两种规则的共同点在于:禁止拥有高许可证级别的主体更新低密级的数据对象,从而防止敏感数据泄漏。强制存取控制是对数据本身进行密级标记,标记与数据是不可分的整体;只有符合密级标记要求的用户才可操纵数据,从而提供更高级别的安全性。2019/12/2014北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准隐蔽通道在主体访问客体时,一般通过正常路径访问;但在网络数据流中利用隐蔽通道进行非法通信已成为威胁网络数据库安全的一种重要手段;在数据库安全中,一定要寻找和防止隐蔽通道的出现,一旦发现要采取措施加以阻塞。数据库安全的形式化由于数据库的安全在整个系统中的重要性,必须建立一套有效的形式化体系用于保证其自身正确性,发现并填补安全漏洞,防止隐蔽通道,为数据库安全的研究提供理论依据;目前数据库安全的形式化已成为高级数据库安全的必要条件.访问监控器访问监视器是一个独立的物理机构,由一定的软件和硬件共同组成,它能够监视主体对客体的全部访问活动。2019/12/2015北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准最有影响的标准为TCSEC(TrustedComputerSystemEvaluationCriteria,美国国防部标准,1985年)和CC(CommonCriteriaforITSecurityEvaluation,ISO标准,1999年)。TCSEC将系统划分为4组共七个级别,依次为D,C(C1,C2),B(B1,B2,B3)和A(A1):D:最低级,DOS属于该级别,几乎没有专门的安全机制;C1:初级的自主安全保护。将用户和数据分离,实现自主存取控制,限制用户权限的传播;C2:安全产品的最低档,提供受控的存取保护,实施审计和资源隔离:如Windows2000、Oracle10g、SQLServer2000等;在SQL中,通过授权语句GRANT和REVOKE来实现。2019/12/2016北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.2安全标准B1:标记安全保护。对数据加以标记,对主体和客体实施强制存取控制:这类产品一般加上安全或信任字样,如TrustedOracle7;该标准的核心是强制存取控制。B2:隐蔽通道和形式化,适合于网络工作方式,目前国内外尚无符合该标准的数据库系统。B3:访问监控器,适合于网络工作方式,目前国内外尚无符合该标准的数据库系统。A1:验证设计,较高的形式化要求,仅仅是一种理想化的等级,目前没有相应的系统。国际标准化组织提出的CC文本由三部分组成:简介及一般模型、安全功能要求、安全保证要求。我国于1999年颁布了国家标准,其标准与TCSEC标准相似。2019/12/2017北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.3SQL存取控制机制SQL支持受控的存取保护:在自主存取控制中,用户对不同的数据对象有不同的存取权限;不同的用户对同一对象有不同的权限;用户可将其拥有的存取权限转授给其他用户。自主存取控制通过SQL的GRANT和REVOKE语句实现。用户权限:是指用户可以在哪些数据对象上进行哪些类型的操作。它由两个要素组成:数据对象和操作类型。定义存取权限称为授权(authorization);授权粒度可以精细到字段级,也可以粗到关系级;授权粒度越细,授权子系统就越灵活,但是系统的开销也会相应地增大。2019/12/2018北京理工大学珠海学院计算机学院数据库原理与设计张申勇第9章数据库完整性与安全性9.1.3SQL存取控制机制衡量授权子系统的尺度授权是否与数据值有关:上面的授权是独立于数据值的,即用户能否对某类数据对象执行某种操作与数据值无关,完全由数据名决定;若授权依赖于数据对象的内容,则称为是与数据值有关的授权。授权是否与时间和地点有关:有的系统允许存取谓词中引用系统变量,如一天中的某个时刻,

1 / 82
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功