Access数据库第四章.ppt
1,东莞理工学院城市学院计算机与信息科学系,数据库系统概论An Introduction to Database System第四章 数据库安全性,2,第四章 数据库安全性,问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据,3,数据库安全性(续),数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一,4,数据库安全性(续),什么是数据库的安全性数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。什么是数据的保密数据保密是指用户合法地访问到机密数据后能否对这些数据保密。通过制订法律道德准则和政策法规来保证。,5,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,6,4.1 计算机安全性概论,4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介,7,4.1.1 计算机系统的三类安全性问题,什么是计算机系统安全性为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。,8,计算机系统的三类安全性问题(续),计算机安全涉及问题计算机系统本身的技术问题计算机安全理论与策略计算机安全技术管理问题安全管理安全评价安全产品,9,计算机系统的三类安全性问题(续),法学计算机安全法律犯罪学计算机犯罪与侦察安全监察心理学,10,计算机系统的三类安全性问题(续),三类计算机系统安全性问题技术安全类管理安全类政策法律类,11,计算机系统的三类安全性问题(续),技术安全指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。,12,计算机系统的三类安全性问题(续),管理安全软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题。,13,计算机系统的三类安全性问题(续),政策法律类政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。,14,4.1 计算机安全性概论,4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介,15,安全标准简介,计算机以及信息安全技术方面最有影响力的两个标准:TCSEC(Trusted Computer System Evaluation Criteria,TCSEC 或 DoD85)DoD可信计算机系统评估标准CC(Common Criteria)目前CC已经基本取代了TCSEC,成为评估信息产品安全性的主要标准。,16,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,17,低,高,安全性控制层次,方法:,用户标识和鉴定,存取控制审计视图,操作系统 安全保护,密码存储,4.2 数据库安全性控制,18,数据库安全性控制概述(续),数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计密码存储,19,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,20,4.2.1 用户标识与鉴别,系统提供的最外层安全保护措施基本方法系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提供的身份标识;通过鉴定后才提供机器使用权;用户标识和鉴定可以重复多次。,21,4.2.1 用户标识与鉴别,用户分类不同类型的用户授予不同的数据管理权限;一般将权限分为三类:数据库登录权限类资源管理权限类数据库管理员权限类,22,4.2.1 用户标识与鉴别,有了数据库登录权限的用户才能进入数据库管理系统,才能使用数据库管理系统所提供的各类工具和实用程序。同时,数据库客体的主人可以授予这类用户以数据查询、建立视图等权限。这类用户只能查阅部分数据库信息,不能改动数据库中的任何数据。,23,4.2.1 用户标识与鉴别,具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等数据库客体的权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限授予其他用户,可以申请审计。,24,4.2.1 用户标识与鉴别,具有数据库管理员权限的用户将具有数据库管理的一切权限,包括访问任何用户的任何数据,授予(或回收)用户的各种权限,创建各种数据库客体,完成数据库的整库备份、装入重组以及进行全系统的审计等工作。这类用户的工作是谨慎而带全局性的工作,只有极少数用户属于这种类型。,25,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,26,定义存取权限在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。检查存取权限对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。,4.2.2 存取控制,27,存取控制(续),常用存取控制方法自主存取控制(Discretionary Access Control,简称DAC)强制存取控制(Mandatory Access Control,简称 MAC),28,自主存取控制方法同一用户对于不同的数据对象有不同的存取权限;不同的用户对同一对象也有不同的权限;用户还可将其拥有的存取权限转授给其他用户。,存取控制(续),29,强制存取控制方法每一个数据对象被标以一定的密级;每一个用户也被授予某一个级别的许可证;对于任意一个对象,只有具有合法许可证的用户才可以存取;强制存取控制相对比较严格。,存取控制(续),30,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,31,4.2.3 自主存取控制方法,用户权限由两个要素组成数据库对象操作类型定义一个用户存取权限就要定义:这个用户在哪些数据库对象上进行哪些类型的操作。定义存取权限称为授权(Authorization);关系系统中的存取权限(见课本P137表4.3)。,32,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,33,一、GRANT授权一般格式:GRANT,.ON.TO,.WITH GRANT OPTION;,4.2.4 授权与回收,34,权限、对象、对象类型,授权与回收(续),35,授权与回收(续),用户的权限建表(CREATE TABLE)的权限:属于DBA;DBA授予普通用户;基本表或视图的属主拥有对该表或视图的一切操作权限;接受权限的用户:一个或多个具体用户PUBLIC(全体用户),36,授权与回收(续),WITH GRANT OPTION子句指定了WITH GRANT OPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITH GRANT OPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限。,37,授权与回收例题,【例1】把查询Student表权限授给用户U1GRANT SELECT ON Student TO U1;注:在SQL2000中,ON后面应删掉“TABLE”。,38,授权与回收例题(续),【例2】把对Student表和Course表的全部权限授予用户U2和U3GRANTALL PRIVILEGES ONStudentTOU2,U3;GRANTALL PRIVILEGES ONCourse TOU2,U3;注:在SQL2000中,一次只能为一个表授权,此例需要改写成2个GRANT语句。,39,授权与回收例题(续),【例3】把对表SC的查询权限授予所有用户GRANT SELECT ON SC TO PUBLIC;注:SQL 2000中,public 角色是一个特殊的数据库角色,每个数据库用户都属于它。,40,授权与回收例题(续),【例4】把查询Student表和修改学生学号的权限授给用户U4GRANT UPDATE(Sno),SELECT ON Student TO U4;,41,授权与回收例题(续),【例5】把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户GRANT INSERT ON SC TO U5WITH GRANT OPTION;,42,授权与回收例题(续),传播权限执行【例5】后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:GRANT INSERT ON SC TO U6WITH GRANT OPTION;同样,U6还可以将此权限授予U7:GRANT INSERT ON SC TO U7;但U7不能再传播此权限。U5-U6-U7,43,授权与回收例题(续),【补充例】DBA把建立数据库、建立表的权限授予用户Arnny。GRANT CREATE DATABASE,CREATE TABLETO Arnny;注:只能在 master 数据库中授予 CREATE DATABASE 权限。,44,上节回顾,第三章 关系数据库标准语言SQL3.6 视 图(概念、作用、特点)更新视图(实体化法、视图消解法)视图的作用第四章 数据库安全性4.1 计算机安全性概论4.2 数据库安全性控制用户标识和鉴定、存取控制自主存取控制方法、授权与回收,45,二、REVOKE回收一般格式:REVOKE,.ON.FROM,.CASCADE;功能:从指定用户那里收回对指定对象的指定权限;,授权与回收(续),46,授权与回收例题(续),【例8】把用户U4修改学生学号的权限收回REVOKE UPDATE(Sno)ON Student FROM U4;,47,授权与回收例题(续),【例9】收回所有用户对表SC的查询权限REVOKE SELECT ON SC FROM PUBLIC;注:SQL 2000中,public 角色是一个特殊的数据库角色,每个数据库用户都属于它。,48,授权与回收例题(续),【例10】把用户U5对SC表的INSERT权限收回REVOKE INSERT ON SC FROM U5 CASCADE;注:使用CASCADE删除权限时,也将删除由该用户授权给其它用户的权限。,49,小结:SQL灵活的授权机制,DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要时又都可以用REVOKE语句收回。,50,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,51,数据库角色是被命名的一组与数据库操作有关的权限,角色是权限的集合。一组具有相同权限的用户可以创建一个角色。,4.2.5 数据库角色,52,一、角色的创建一般格式:CREATE ROLE 刚创建的角色是空的,可用GRANT为角色授权。注:SQL2000中创建角色的一般格式:sp_addrole rolename=,数据库角色(续),53,二、给角色授权一般格式:GRANT,.ON TO,.,数据库角色(续),54,三、将一个角色授予给其他的角色或用户一般格式:GRANT,.TO,.WITH ADMIN OPTION角色3 的权限等于角色1、角色2、所包含的权限总和。授予者或是角色的创建者,或是拥有这个角色上的ADMIN OPTION。,数据库角色(续),55,四、角色权限的回收一般格式:REVOKE,.ON FROM,.执行者或是角色的创建者,或是拥有这个角色上的ADMIN OPTION。,数据库角色(续),56,数据库角色(续),注:SQL2000中将安全帐户作为当前数据库中现有数据库角色的成员进行添加:sp_addrolemember rolename=role,membername=security_account 从当前数据库中的角色中删除安全帐户:sp_droprolemember rolename=role,membername=security_account,57,【例11】通过角色来实现将一组权限授予一个用户1、创建一个角色:sp_addrole R1;2、让R1拥有对表Student的SELECT、UPDATE等权限:GRANTSELECT,UPDATE,INSERTONStudentTOR1;,数据库角色(续)例子,58,3、将这个角色授予用户U1:sp_addrolemember R1,U1;注:一次只能添加一个成员。4、回收用户U1的的这些权限:sp_droprolemember R1,U1;,数据库角色(续)例子,59,【例12】角色权限的增加GRANTDELETEONStudentTOR1;,数据库角色(续)例子,60,【例13】角色权限的减少REVOKEDELETEONStudentFROMR1;,数据库角色(续)例子,61,角色的意思很好理解,比如:某某在单位的角色是经理,SQL Server 有服务器角色和数据库角色之分,顾名思义,数据库角色只是在一个数据库范围内有效。数据库角色中的 public 意思跟 Windows 2000 中的 everyone 意思一样,表示:所有人、任何人。用户是操作数据库的一个身份,用户与数据库角色关联以获得数据库权限。,SQL Server 2000中的角色、用户和登录名,62,登录是连接 SQL Server 的一个帐户,登录与服务器角色关联以获得服务器权限。应用程序通过登录连接到 SQL Sever,并通过登录-用户的对应关系确认应用程序对某数据库的权限,一个登录可以对应多个用户,但一个用户只能对应一个登录。,SQL Server 2000中的角色、用户和登录名,63,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,64,4.2.6 强制存取控制方法,什么是强制存取控制强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。MAC不是用户能直接感知或进行控制的。MAC适用于对数据有严格而固定密级分类的部门 军事部门 政府部门,65,强制存取控制方法(续),主体与客体在MAC中,DBMS所管理的全部实体被分为主体和客体两大类主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的各进程客体是系统中的被动实体,是受主体操纵的 文件、基表、索引、视图,66,强制存取控制方法(续),敏感度标记 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)敏感度标记分成若干级别 绝密(Top Secret)机密(Secret)可信(Confidential)公开(Public),67,强制存取控制方法(续),主体的敏感度标记称为许可证级别(Clearance Level)客体的敏感度标记称为密级(Classification Level)MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体,68,强制存取控制方法(续),强制存取控制的特点MAC是对数据本身进行密级标记;无论数据如何复制,标记与数据是一个不可分的整体;只有符合密级标记要求的用户才可以操纵数据;从而提供了更高级别的安全性。,69,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,70,4.3 视图机制,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来;视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。,71,视图机制(续),视图机制与授权机制配合使用:首先用视图机制屏蔽掉一部分保密数据;视图上面再进一步定义存取权限;间接实现了支持存取谓词的用户权限定义。,72,视图机制(续),【例14】用户U8只能检索计算机系学生的信息先建立计算机系学生的视图CS_StudentCREATE VIEW CS_StudentAS SELECT*FROM StudentWHERE Sdept=CS,73,视图机制(续),在视图上进一步定义存取权限GRANT SELECTON CS_Student TO U8;还可以在视图上进一步定义存取权限给系主任GRANT ALL PRIVILEGESON CS_Student TO Niu;,74,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,75,4.4 审计,什么是审计启用一个专用的审计日志(Audit Log)将用户对数据库的所有操作记录在上面;DBA可以利用审计日志中的追踪信息找出非法存取数据的人。,76,审计(续),审计功能 大型DBMS提供的审计功能是一个十分重要的安全措施,它用来监视各用户对数据库施加的动作。有两种方式的审计,即用户审计和系统审计。用户审计时,DBMS的审计系统记下所有对自己表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息。这些信息一般都被记录在数据字典(系统表)之中,利用这些信息用户可以进行审计分析。系统审计由系统管理员进行,其审计内容主要是系统一级命令以及数据库客体的使用情况。,77,审计(续),审计功能的可选性审计很费时间和空间;DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。,78,审计(续),强制性机制:用户识别和鉴定、存取控制、视图预防监测手段:审计技术,79,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,80,4.5 数据加密,数据加密防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text);不知道解密算法的人无法获知数据的内容。,81,数据加密(续),加密方法 替换方法使用密钥(Encryption Key)将明文中的每一个字符转换为密文中的一个字符。置换方法将明文的字符按不同的顺序重新排列;混合方法美国1977年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称DES),82,数据加密(续),DBMS中的数据加密有些数据库产品提供了数据加密例行程序;有些数据库产品本身未提供加密程序,但提供了接口。,83,数据加密(续),数据库加密的范围数据加密通过对明文进行复杂的加密操作,以达到无法发现明文和密文之间、密文和密钥之间的内在关系,也就是说经过加密的数据经得起来自OS和DBMS的攻击。另一方面,DBMS要完成对数据库文件的管理和使用,必须具有能够识别部分数据的条件。据此,只能对数据库中数据进行部分加密。,84,数据加密(续),索引字段不能加密为了达到迅速查询的目的,数据库文件需要建立一些索引。不论是字典式的单词索引、B树索引或HASH函数索引等,它们的建立和应用必须是明文状态,否则将失去索引的作用。有的DBMS中可以建立簌聚索引,这类索引也需要在明文状态下建立和维护使用。,85,数据加密(续),关系运算的比较字段不能加密DBMS要组织和完成关系运算,参加并、差、积、商、投影、选择和连接等操作的数据一般都要经过条件筛选,这种“条件”选择项必须是明文,否则DBMS将无法进行比较筛选。例如,要求检索工资在1000元以上的职工人员名单,“工资”字段中的数据若加密,SQL语句就无法辨认比较。,86,数据加密(续),表间的连接码字段不能加密数据模型规范化以后,数据库表之间存在着密切的联系,这种相关性往往是通过外部编码联系的,这些编码若加密就无法进行表与表之间的连接运算。,87,数据加密(续),数据库加密对数据库管理系统原有功能的影响目前DBMS的功能比较完备,特别象Oracle、Sybase这些采用Client/Server结构的数据库管理系统,具有数据库管理和应用开发等工具。然而,数据库数据加密以后,DBMS的一些功能将无法使用。,88,数据加密(续),无法实现对数据制约因素的定义Sybase数据库系统的规则定义了数据之间的制约因素。数据一旦加密,DBMS将无法实现这一功能,而且,值域的定义也无法进行。注意:数据库中的每个字段的类型、长度都有具体的限定。数据加密时,数值类型的数据只能在数值范围内加密,日期和字符类型的数据也都只能在各自的类型范围内加密,密文长度也不能超过字段限定的长度,否则DBMS将无法接受这些加密过的数据。,89,数据加密(续),密文数据的排序、分组和分类Select语句中的Group by、Order by、Having子句分别完成分组、排序、分类等操作。这些子句的操作对象如果是加密数据,那么脱密后的明文数据将失去原语句的分组、排序、分类作用,显然这不是用户所需要的。,90,数据加密(续),SQL语言中的内部函数将对加密数据失去作用DBMS对各种类型数据均提供了一些内部函数,这些函数不能直接作用于加密数据。DBMS的一些应用开发工具的使用受到限制DBMS的一些应用开发工具不能直接对加密数据进行操作,因而它们的使用会受到限制。,91,数据加密(续),数据加密功能通常也作为可选特征,允许用户自由选择数据加密与解密是比较费时的操作;数据加密与解密程序会占用大量系统资源;应该只对高度机密的数据加密。,92,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,93,4.6 统计数据库安全性,统计数据库的特点允许用户查询聚集类型的信息(例如合计、平均值等);不允许查询单个记录信息。【例】允许查询“程序员的平均工资是多少?”不允许查询“程序员张勇的工资?”,94,统计数据库安全性(续),统计数据库中特殊的安全性问题 隐蔽的信息通道;从合法的查询中推导出不合法的信息。,95,统计数据库安全性(续),【例1】下面两个查询都是合法的:1本公司共有多少女高级程序员?2本公司女高级程序员的工资总额是多少?如果第一个查询的结果是“1”,那么第二个查询的结果显然就是这个程序员的工资数。规则1:任何查询至少要涉及N(N足够大)个以上的记录。,96,统计数据库安全性(续),【例2】用户A发出下面两个合法查询:1用户A和其他N个程序员的工资总额是多少?2用户B和其他N个程序员的工资总额是多少?若第一个查询的结果是X,第二个查询的结果是Y,由于用户A知道自己的工资是Z,那么他可以计算出用户B的工资=Y-(X-Z)。原因:两个查询之间有很多重复的数据项规则2:任意两个查询的相交数据项不能超过M个。,97,统计数据库安全性(续),可以证明,在上述两条规定下,如果想获知用户B的工资额:A至少需要进行1+(N-2)/M次查询规则3:任一用户的查询次数不能超过1+(N-2)/M;如果两个用户合作查询就可以使这一规定失效。,98,第四章 数据库安全性,4.1 计算机安全性概论4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结,99,4.7 小结,随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要;DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。,100,小结(续),实现数据库系统安全性的技术和方法有多种,最重要的是存取控制技术和审计技术。自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的。,101,下课了。,休息一会儿。,追求,102,上节回顾,第四章 数据库安全性4.1 计算机安全性概论三类安全性问题、安全标准4.2 数据库安全性控制用户标识和鉴定、存取控制自主存取控制方法、授权与回收数据库角色、强制存取控制方法,