数据库课件第4章数据库安全性
第四章 数据库安全性,第四章 数据库安全性,问题的提出 数据库的一大特点是数据可以共享 但数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享 例:军事秘密、 国家机密、 新产品实验数据、 客户档案、 银行储蓄数据等,数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一,什么是数据库的安全性 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 什么是数据的保密 数据保密是指用户合法地访问到机密数据后能否对这些数据保密。 通过制订法律道德准则和政策法规来保证。,第四章 数据库安全性,4.1 数据库安全性概述 4.2 用户标识与鉴别 4.3 存取控制 4.4 视图机制 4.5 审计 4.6 数据加密 4.7 统计数据库安全性 4.8 小结,4.1.1 计算机系统的三类安全性问题,什么是计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。,4.1 计算机安全性概述,计算机安全涉及问题 计算机系统本身的技术问题 计算机安全理论与策略 计算机安全技术 管理问题 安全管理 安全评价 安全产品,法学 计算机安全法律 犯罪学 计算机犯罪与侦察 安全监察 心理学,三类计算机系统安全性问题 技术安全类 管理安全类 政策法律类,技术安全 指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。,管理安全 软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题,政策法律类 政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令,4.1.2 可信计算机系统评测标准,为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准 TCSEC (桔皮书) TDI (紫皮书),1985年美国国防部(DoD)正式颁布 DoD可信计算机系统评估标准(简称TCSEC或DoD85) TCSEC又称桔皮书 TCSEC标准的目的 提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。 给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。,1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释( Trusted Database Interpretation 简称TDI) TDI又称紫皮书。它将TCSEC扩展到数据库管理系统。 TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。,4.1.3 数据库安全性控制概述,非法使用数据库的情况 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据; 直接或编写应用程序执行非授权操作;,破坏安全性的行为可能是无意的,故意的,恶意的。,计算机系统中的安全模型,方法:,用户标识 和鉴定,存取控制 审计 视图,操作系统 安全保护,密码存储,数据库安全性控制的常用方法 用户标识和鉴定 存取控制 视图 审计 密码存储,第四章 数据库安全性,4.1 数据库安全性控制概述 4.2 用户标识与鉴别 4.3 存取控制 4.4 视图机制 4.5 审计 4.6 数据加密 4.7 统计数据库安全性 4.8 小结,4.2 用户标识与鉴别,基本方法 系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身份标识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复多次,用户标识自己的名字或身份,用户名/口令 简单易行,容易被人窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据用户计算结果是否正确鉴定用户身份,第四章 数据库安全性,4.1 数据库安全性控制概述 4.2 用户标识与鉴别 4.3 存取控制 4.4 视图机制 4.5 审计 4.6 数据加密 4.7 统计数据库安全性 4.8 小结,4.3 存取控制,4.3.1概述 4.3.2自主存取控制 4.3.3强制存取控制,4.3.1概述,存取控制机制的组成 定义存取权限 检查存取权限 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统,常用存取控制方法 自主存取控制 (Discretionary Access Control ,简称DAC) C2级 灵活 强制存取控制 (Mandatory Access Control,简称 MAC) B1级 严格,自主存取控制方法,同一用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 用户还可将其拥有的存取权限转授给其他用户,强制存取控制方法,每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以存取,4.3 存取控制,4.3.1概述 4.3.2自主存取控制 4.3.3强制存取控制,4.3.2 自主存取控制方法,定义方法 GRANT/REVOKE,GRANT语句,GRANT语句的一般格式: GRANT ,. ON , TO ,. WITH GRANT OPTION; 谁定义?DBA和表的建立者(即表的属主) GRANT功能:将对指定操作对象的指定操作权限授予指定的用户。,(1) 操作权限,(2) 用户的权限,建表(CREATETAB)的权限:属于DBA DBA授予-普通用户 基本表或视图的属主拥有对该表或视图的一切操作权限 接受权限的用户: 一个或多个具体用户 PUBLIC(全体用户),(3) WITH GRANT OPTION子句,指定了WITH GRANT OPTION子句: 获得某种权限的用户还可以把这种权限再授予别的用户。 没有指定WITH GRANT OPTION子句: 获得某种权限的用户只能使用该权限,不能传播该权限,例题,例1 把查询Student表权限授给用户U1 GRANT SELECT ON Student TO U1;,例题(续),例2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL ON Student TO U2, U3;,例4,例题(续),例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON SC TO PUBLIC;,例题(续),例4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON Student TO U4;,例题(续),例5 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON SC TO U5 WITH GRANT OPTION;,传播权限,执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限: GRANT INSERT ON SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7: GRANT INSERT ON SC TO U7; 但U7不能再传播此权限。 U5- U6- U7,例题(续),例6 DBA把在数据库S_C中建立表的权限授予用户U8 USE S_C GRANT CREATE TABLE TO U8,SQL收回权限的功能,REVOKE语句的一般格式为: REVOKE ,. ON , FROM ,.; 功能:从指定用户那里收回对指定对象的指定权限,例 题,例7 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON Student FROM U4;,例题(续),例8 收回所有用户对表SC的查询权限 REVOKE SELECT ON SC FROM PUBLIC;,例题(续),例9 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON SC FROM U5;,权限的级联回收,系统将收回直接或间接从U5处获得的对SC 表的INSERT权限: -U5- U6- U7 收回U5、U6、U7获得的对SC表的INSERT 权限: <-U5<- U6<- U7,自主存取控制方法(续),DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。 用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。 被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。 所有授予出去的权力在必要时又都可以用REVOKE语句收回。,自主存取控制方法(续),定义存取权限 用户 检查存取权限 DBMS,自主存取控制方法(续),优点 能够通过授权机制有效地控制其他用户对敏感数据的存取 缺点 可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策略,4.3 存取控制,4.3.1概述 4.3.2自主存取控制 4.3.3强制存取控制,4.3.3 强制存取控制方法,什么是强制存取控制 强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。 MAC不是用户能直接感知或进行控制的。 MAC适用于对数据有严格而固定密级分类的部门 军事部门 政府部门,主体与客体 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类 主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的各进程 客体是系统中的被动实体,是受主体操纵的 文件 基表 索引 视图,敏感度标记 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label) 敏感度标记分成若干级别 绝密(Top Secret) 机密(Secret) 可信(Confidential) 公开(Public),主体的敏感度标记称为许可证级别(Clearance Level) 客体的敏感度标记称为密级(Classification Level) MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体,强制存取控制规则 当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则: (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。,强制存取控制的特点 MAC是对数据本身进行密级标记 无论数据如何复制,标记与数据是一个不可分的整体 只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性,MAC与DAC,DAC与MAC共同构成DBMS的安全机制 原因:较高安全性级别提供的安全保护要包含较低级别的所有保护 先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。,强制存取控制方法(续),DAC + MAC安全检查示意图 SQL语法分析 然后在视图上面再进一步定义存取权限; 间接实现了支持存取谓词的用户权限定义,例:王平只能检索计算机系学生的信息 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept=CS;,在视图上进一步定义存取权限 GRANT SELECT