《数据库安全性课件.pptx》由会员分享,可在线阅读,更多相关《数据库安全性课件.pptx(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、数据库安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库的安全性和计算机系统的安全性是紧密联系、相互支持的。计算机系统的安全性问题技术安全类 采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护。管理安全类 软硬件意外故障,场地的意外事故,计算机设备和数据介质的物理破坏、丢失等安全问题。政策法律类 政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。可信计算机系统评测标准 为降低进而消除对系统的安全攻击,尤其是弥补原有系统在安全保护方面的缺陷,在计算机安全技术方面逐步建立了一套可信标准。在目前各国所引用或制定的一系列
2、安全标准中,最有影响的当推1985年美国国防部(DoD)正式颁布的DoD可信计算机系统评估标准,简称TCSEC或DoD85,以及CC这两个标准。在TCSEC推出后的10年里,不同的国家都开始启动开发建立在TCSEC概念上的评估准则,如欧洲的ITSEC,加拿大的CTCPEC,美国的FC等。这些准则比TCSEC更加灵活,适应了IT技术的发展。这些准则的发起组织于1993年起开始联合行动,解决原标准中概念和技术上的的差异,将各自独立的准则集合成一组单一的、能被广泛使用的IT安全准则,这一行动被称为CC(Common Criteria)项目。历经多次讨论和修订,CC V2.1版于1999年被ISO采用
3、为国际标准,2001年被我国采用为国家标准。目前CC已经基本取代了TCSEC。TDITCSEC标准TCSEC又称桔皮书,1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释,简称TDI。将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。TDITCSEC标准从以下四个方面来描述安全性级别划分的指标:安全策略,责任,保证和文档.每个方面又细分为若干项。根据计算机系统对标准中各项指标的支持情况,TCSEC(TDI)将系统划分为四组七个等级:(详细见书)数据库安全性控制在一般计算机系统中,安
4、全措施是一级一级层层设置的:用户标识与鉴别 一般通过用户名和口令来实现。用户DBMS OS DB用户标识和鉴别存取控制操作系统安全保护数据密码存储存取控制数据库安全性所关心的主要是 DBMS的存取控制机制。确保只有合法用户才能访问数据库,一般通过授权来实现。存取控制机制主要包括两部分:(1)定义用户权限 定义不同用户对于不同的数据对象允许执行的操作权限。系 统提供适当的语言来定义,经编译后存放在数据字典中。(2)合法权限检查 每当用户发出存取数据库的操作请求后,DBMS查找数据字典中存储的权限定义,检查用户操作的合法性。用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。TDI安全策略
5、中的存取控制 自主存取控制 用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。当前大型的DBMS一般都支持C2级中的自主存取控制(DAC),SQL标准也通过GRANT语句和REVOKE语句对其提供了支持。强制存取控制 每一数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。有些DBMS也支持B1级中的强制存取控制(MAC)。自主存取控制方法用户权限是由两个要素组成的:(1)数据对象 (2)操作类型定义一个用户的存取权限就是要定义这
6、个用户可以在哪些数据对象上进行哪些类型的操作。存取权限的定义称为授权。关系系统中的存取权限对象类型对象操作类型数据库模式基本表CREATE SCHEMACREATE TABLE,ALTER TABLE模式视图索引CREATE VIEWCREATE INDEX数据基本表和视图SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES数据属性列SELECT,INSERT,UPDATE,REFERENCES,ALL PRIVILEGESSQL中的自主存取控制在在SQL中通过中通过GRANT语句来进行授权:语句来进行授权:lGRANT ,ON ,TO ,
7、WITH GRANT OPTION;功能:将对指定操作对象的指定操作权限授予指定的用户。谁定义?DBA和表的建立者(即表的属主)指定了WITH GRANT OPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITH GRANT OPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限例题 例1 把查询和插入Student表权限授给 用户U1 GRANT SELECT,INSERT ON TABLE Student TO U1;例题(续)例2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON TA
8、BLE Student,Course TO U2,U3;例例4例题(续)例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC;例题(续)例4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno),SELECT ON TABLE Student TO U4;例题(续)例5 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;传播权限 执行例5后,U5不仅拥有了对表SC的INSERT 权
9、限,还可以传播此权限:GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;同样,U6还可以将此权限授予U7:GRANT INSERT ON TABLE SC TO U7;但U7不能再传播此权限。U5-U6-U7例题(续)例6 DBA把在数据库S_C中建立表的权限授予用户U8GRANT CREATETABON DATABASE S_C TO U8;通过REVOKE语句来收回权限:lREVOKE ,ON ,FROM ,CASCADE|RESTRICT;功能:从指定用户那里收回对指定对象的指定权限例题例7 把用户U4修改学生学号的权限收回REVOKE U
10、PDATE(Sno)ON TABLE Student FROM U4;例题(续)例8 收回所有用户对表SC的查询权限REVOKE SELECT ON TABLE SC FROM PUBLIC;例题(续)例9 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON TABLE SC FROM U5 CASCADE;权限的级联回收系统将收回直接或间接从U5处获得的对SC表的INSERT权限:-U5-U6-U7收回U5、U6、U7获得的对SC表的INSERT权限:-U5-U6-U7支持存取谓词的用户权限定义(提供与数据值/内容有关的授权)用户名数据对象名允许的操作类型存取谓词王平关
11、系StudentSELECTSdept=CS张明霞关系StudentUPDATESname=张明霞张明霞关系CourseALL空创建数据库模式的权限GRANT和REVOKE语句向用户授予或收回对数据的操作权限。对数据库模式的授权则由DBA在创建用户时实现。CREATE USER WITH DBA|RESOURCE|CONNECT;只有系统的超级用户才有权创建一个新的数据库用户。新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA。数据库角色角色是权限的集合,使用角色可以简化授权的过程。角色的创建 CREATE ROLE 刚刚创建的角色是空的,没有任何内容,可以用GRANT为角
12、色授权。给角色授权 GRANT,ON 对象名 TO,将一个角色授予其他角色或用户 GRANT,TO,WITH ADMIN OPTION角色权限的收回 REVOKE ,ON FROM ,强制存取控制(MAC)方法MAC适用于那些对数据有严格而固定密级分类的部门。在MAC中,DBMS所管理的全部实体被分为主体和客体两大类:主体是系统中的活动实体(用户、进程等);客体是系统中的被动实体(文件,基表、索引等),是受主体操纵的。DBMS为每个主体和客体指派一个敏感度标记(Label),主体称为许可证级别,客体称为密级。主体对客体的存取必须遵循如下规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该
13、主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。视图机制视图是实施安全性控制的一种 有效机制。通过为不同用户定义不同的视图,并对每个用户授予在某个视图上的存取权限。这样可以严格限制每个用户对基表的存取操作,如只能存取基表中的某些列、某些行,从而把要保密的数据对无权存取的用户隐藏起来,自动地对数据提供一定程度的安全保护。视图机制间接地实现了支持存取谓词的用户权限定义。例子CREATE VIEW CS
14、_Student AS SELECT*FROM Student WHERE Sdept=CS;GRANT SELECT ON CS_Student TO 王平;审计(Audit)按照TDI/TCSEC标准中安全策略的要求,“审计”功能是DBMS达到C2以上安全级别必不可少的一项指标。审计功能把用户对数据库的所有操作自动记录下来放入审计日志(Audit Log)中。DBA可以利用审计跟踪的信息,找出非法存取数据的人、时间和内容等。审计通常是很费时间和空间的,一般可以根据应用对安全性的要求,灵活地打开或关闭审计功能。数据加密对于高度敏感性数据,除以上安全性措施外,还可以采用数据加密技术。数据加密是
15、防止数据库中数据在存储和传输中失密的有效手段。目前有些数据库产品提供了数据加密(例行)程序,可根据用户的要求自动对存储和传输的数据进行加密处理。数据加密与解密程序会占用大量系统资源且耗时,因此数据加密功能通常也作为可选特征。Oracle数据库的安全性措施用户标识和鉴定授权与检查机制 与前面讲的存取控制方法基本相同。Oracle的审计技术 (1)用户级审计 用户针对自己创建的数据库表或试图进行审计,记录所有用户对这些表或视图的一切成功或不成功的访问要求以及各种类型的SQL操作。(2)系统级审计 由DBA设置,用以监测成功或失败的登陆要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操
16、作。Oracle的审计功能Oracle的审计功能很灵活,是否使用审计,对哪些表进行审计,对那些操作进行审计等都可以由用户选择。对修改SC表结构或数据的操作进行审计可使用如下语句:AUDIT ALTER,UPDATE ON SC;取消对SC表的一切审计可使用如下语句:NOAUDIT ALL ON SC;审计设置以及审计内容均存放在数据字典中。用户定义的安全性措施除了系统级的安全性措施外,Oracle还允许用户用数据库触发器定义特殊的更复杂的用户级安全性措施。例如,规定只能在工作时间内更新Student表,可以定义如下触发器:CREATE TRIGGER secure_student BEFORE
17、 INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,DY)IN(SAT,SUN)OR(TO_NUMBER(sysdate,HH24)NOT BETWEEN 8 AND 17)THEN RAISE_APPLICATION_ERROR(-20506,You may only change data during normal business hours.)END IF;END;触发器一经定义便存放在数据字典中。用户每次对student表执行INSERT,UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时
18、的系统时间,如果是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。1、有时候读书是一种巧妙地避开思考的方法。3月-233月-23Thursday,March 30,20232、阅读一切好书如同和过去最杰出的人谈话。21:34:2321:34:2321:343/30/2023 9:34:23 PM3、越是没有本领的就越加自命不凡。3月-2321:34:2321:34Mar-2330-Mar-234、越是无能的人,越喜欢挑剔别人的错儿。21:34:2321:34:2321:34Thursday,March 30,20235、知人者智,自知者明。胜人者有力,自胜者强。
19、3月-233月-2321:34:2321:34:23March 30,20236、意志坚强的人能把世界放在手中像泥块一样任意揉捏。30 三月 20239:34:23 下午21:34:233月-237、最具挑战性的挑战莫过于提升自我。三月 239:34 下午3月-2321:34March 30,20238、业余生活要有意义,不要越轨。2023/3/30 21:34:2321:34:2330 March 20239、一个人即使已登上顶峰,也仍要自强不息。9:34:23 下午9:34 下午21:34:233月-2310、你要做多大的事情,就该承受多大的压力。3/30/2023 9:34:23 PM21:34:2330-3月-2311、自己要先看得起自己,别人才会看得起你。3/30/2023 9:34 PM3/30/2023 9:34 PM3月-233月-2312、这一秒不放弃,下一秒就会有希望。30-Mar-2330 March 20233月-2313、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Thursday,March 30,202330-Mar-233月-2314、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。3月-2321:34:2330 March 202321:34谢谢大家谢谢大家
限制150内