《第四章数据库安全性.》由会员分享,可在线阅读,更多相关《第四章数据库安全性.(37页珍藏版)》请在金锄头文库上搜索。
1、,第四章 数据库安全性,1,数据库安全性,数据库的一大特点是数据可以共享,然而有些数据库系统中的数据(军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等)的共享不能是无条件的共享。因此,对数据库中数据共享的限制带来数据库的安全性问题。 计算机安全性概述 数据库安全性控制 视图机制 审计(Audit) 数据加密 统计数据库安全性,2,计算机安全性概述,数据库系统安全性与计算机系统安全性紧密联系,相互支持。计算机系统安全性是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破
2、坏,数据遭到更改或泄露等。 内容 计算机安全性包括计算机安全理论与策略、计算机安全技术、安全管理、安全评价、安全产品以及计算机犯罪与侦察、计算机安全法律、安全监察等。 分类 计算机系统安全性问题包括3类。 技术安全类:计算机系统内部采用具有一定安全性的硬件、软件来实现对系统的保护; 管理安全类:系统责任/所有方防止因管理不善导致系统的设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故; 政策法律类:社会/国家等政府部门建立的法律道德准则和政策、法令、法规等。,3,计算机安全性概述,安全标准 计算机安全性问题越来越得到人们的重视,对各种计算机及其相关产品、信息系统的安全性要求越来越
3、高。为此在计算机安全技术方面逐步建立了一套可信机选几系统的概念和标准,以规范和指导安全计算机系统部件的生产,比较准确地测定产品的安全性能指标。 安全标准发展过程,4,我国2001年采用为国家标准,计算机安全性概述,安全标准 计算机以及信息安全技术方面有一系列的安全标准,最有影响的是TCSEC和CC。 TCSEC标准 TCSEC是指1985年美国国防部正式颁布的DoD可信计算机系统评估准则。1991年4月美国NCSC(美国计算机安全中心)颁布了可信计算机系统评估准则关于可信数据库系统的解释(简称TDI),将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需要满足和用以进
4、行安全性级别评估的标准。 TCSEC/TDI从安全策略、责任、保证、文档等四个方面来描述安全性级别划分的指标。同时根据计算机系统对各项指标的支持情况,将系统划分为四组七个等级,依次是D、C(C1,C2)、B(B1,B2,B3)、A(A1)。按系统可靠或可信程度逐渐增高。B2以上的系统还处于理论研究阶段,应用多限于一些特殊的部门,如军队等。美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准。,5,计算机安全性概述,CC标准 提出国际公认的表述信息技术安全性的结构,即把信息产品的安全要求分为安全功能要求和安全保证要求。安全功能要求解决如何
5、正确有效的实施这些功能;安全保障要求用以规范产品和系统的安全行为。 CC文本由三部分组成: 简介和一般模型,介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架; 安全功能要求,列出一系列功能组件、子类和类。具体包括11大类,66个子类,135个组件,涵盖审计、密码支持、通信、数据保护等。 安全保证要求,列出了一系列保证组件、子类和类。具体包括7大类,26个子类,74个组件,涵盖配置管理、开发、生命周期支持、测试、脆弱性评定等。 目前有许多信息产品,操作系统如Windows 2000、Sun Solaris 8等,数据库管理系统如Oracle9i、DB2 V8.2、Sybase A
6、daptive Server Enterpeise V12.5.2等,都已通过了CC的EAL4。,6,数据库安全性,数据库的一大特点是数据可以共享,然而有些数据库系统中的数据(军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等)的共享不能是无条件的共享。因此,对数据库中数据共享的限制带来数据库的安全性问题。 计算机安全性概述 数据库安全性控制 视图机制 审计(Audit) 数据加密 统计数据库安全性,7,数据库安全性控制,计算机系统安全模型,8,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定,只有合法用户才准许进入
7、计算机系统。,数据库安全性控制,计算机系统安全模型,9,操作系统设置一级安全保护措施,数据库安全性控制,计算机系统安全模型,10,常见的非法使用数据库的情况: 编写合法程序绕过DBMS及其授权机制; 直接或编写应用程序执行非授权操作; 通过多次合法查询数据库从中推导出一些保密数据。,数据库安全性控制,计算机系统安全模型,11,除了OS的安全屏障外,DBMS为加强DB的安全性,亦建立有独立的安全体系,不允许用户绕过DBMS安全体系而直接访问DB,OS的用户要想访问DBMS,必须由DBA设置成DBMS的用户。 数据库安全性控制的常用方法: 用户标识和鉴定 存取控制 视图 审计 密码存储,用户标识与
8、鉴别,用户标识与鉴别是系统提供的最外层安全保护措施。是由用户提供一定的方式让用户标识自己的名字或身份,每次用户要求进入系统时,由系统进行核对通过鉴定后才提供机器使用权。 实现方法: 用户标识:用用户名或ID号来标明用户身份,系统内部记录着所有合法用户的标识,系统鉴别此用户是否是合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。 口令:系统要求用户输入口令,系统核对口令以进一步核实用户身份。此时需要防止口令与用户名被窃取。,12,存取控制,数据库系统的存取控制机制就是确保只授权给有资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据。 存取控制机制的组成 定义用户权限,并
9、将用户权限登记到数据字典中。 DBMS系统提供适当的语言来定义用户权限,这些定义经过编译后存放在数据字典中,DBMS的功能是保证这些定义的执行。 合法权限检查。 当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的请求超出定义的权限,系统将拒绝此操作。 常用的存取控制方法 自主存取控制。 强制存取控制。,13,数据库安全子系统,存取控制自主存取控制方法,自主存取控制方法即是DBA拥有对数据库中所有对象的所有权限,并可根据实际情况将不同的权限授予不同的用户。用户可以“自主”地决定将数据的操作权限授予何人、决定是否也将“授权”的权限授予别人。 理解 用户对
10、自己建立的基本表和视图拥有全部的操作权限,对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限; 用户还可将其拥有的某些权限转授给其他用户,被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。 所有授予出去的权力在必要时可以收回。 实现方法 GRANT:授权 REVOKE:回收 CREATE USER:数据库模式权限 数据库角色管理,14,自主存取控制方法GRANT,GRANT语句的一般格式为: GRANT ,. ON TO ,. WITH GRANT OPTION; 语义:将对指定操作对象的指定操作权限授予指定的用户,即定义用户可以在哪些数据库对象上进
11、行哪些类型的操作。 其中: 发出该语句的可以是DBA,也可以使该数据库对象的创建者,也可以使已经拥有该权限的用户。 :用户对某一数据对象的操作权力。用户权限由数据库对象和操作类型组成。定义存取权限称为授权。 :接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户。 WITH GRANT OPTION子句:指定了该子句则可以再授予给其他用户,否则不能传播。,15,自主存取控制方法GRANT,16,关系数据库系统中的存取权限,自主存取控制方法GRANT,例1:把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1; 例2:
12、把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4; 例3:把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;,17,自主存取控制方法REVOKE,REVOKE语句的一般格式为: REVOKE ,. ON FROM ,.RESTRICT|CASCADE; 语义:将对指定操作对象的指定操作权限收回。 其中: 发出该语句的可以是DBA,也可以使该数据库对象的创建者,也可以使已经
13、拥有该权限的用户。 CASCADE:级联。不同产品默认为RESTRICT还是CASCADE有差别,此处为RESTRICT。 例如: 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM U4;,18,自主存取控制方法创建数据库模式的权限,DBA对数据库模式的授权在创建用户时由语句CREATE USER语句实现。一般格式为: CREATE USER WITHDBA | RESOURCE | CONNECT 这里: 只有系统的超级用户才有权创建一个新的数据库用户。新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA(超
14、级用户,拥有对所有数据库对象的存取权限)。如果没有明确指定权限,则默认该用户拥有CONNECT权限。 CONNECT :只能登录数据库而没有创建数据库对象的权限; RESOURCE:能创建基本表和视图,不能创建模式和新用户; DBA:超级用户,拥有对所有数据库对象的存取权限。,19,自主存取控制方法创建数据库模式的权限,20,权限与可执行的操作对照表,自主存取控制方法数据库角色,数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。 角色创建 CREATE ROLE 这里:刚刚创建的角色是空的。
15、给角色授权 GRANT , ON 对象名 TO , 这里:DBA和用户可以将权限授予某一个或某几个用户。,21,自主存取控制方法数据库角色,将一个角色授予其他的角色或用户 GRANT , TO , /*/ WITH ADMIN OPTION 这里:角色3的权限是直接授予的全部权限加上角色1、2等的权限之和; WITH ADMIN OPTION子句表示获得某种权限的角色或用户还可以把这种权限再授予其他的角色; 角色可以授予某用户或另一个角色。 角色权限的收回 REVOKE , , ON FROM , 其中:REVOKE动作的执行者或者是角色的创建者,或者是拥有在这个角色上的ADMIN OPTIO
16、N。,22,自主存取控制方法数据库角色,例如:通过角色来实现将一组权限授予一个用户。 步骤如下: 创建角色 R1 CREATE ROLE R1; 使用GRANT语句使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1; 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平,张明,赵玲; 可以一次性通过R1来回收王平的这3个权限 REVOKE R1 FROM 王平;,23,存取控制自主存取控制方法,自主存取控制方法能够通过授权机制有效地控制对敏感数据的存取。但