1、第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结4.1 4.1 计算机安全性概述计算机安全性概述l 问题的提出问题的提出 数据库的一大特点是数据可以
2、共享数据库的一大特点是数据可以共享 但数据共享必然带来数据库的安全性问题但数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共数据库系统中的数据共享不能是无条件的共享享例:军事秘密、例:军事秘密、国家机密、国家机密、新产品实验数据、新产品实验数据、市场需求分析、市场营销策略、销售计划、市场需求分析、市场营销策略、销售计划、客户档案、客户档案、医疗档案、医疗档案、银行储蓄数据银行储蓄数据计算机安全性概述(续)计算机安全性概述(续)数据库中数据的共享是在数据库中数据的共享是在DBMS统一的严格的控制统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问之下的共享,即只允
3、许有合法使用权限的用户访问允许他存取的数据允许他存取的数据 数据库的安全性是指保护数据库,防止因用户非法数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。使用数据库造成数据泄露、更改或破坏。数据库系统的安全保护措施是否有效是数据库系统数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一主要的性能指标之一4.1 计算机安全性概述计算机安全性概述l4.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题l4.1.2 安全标准简介安全标准简介4.1 计算机安全性概述计算机安全性概述l4.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题l4.
4、1.2 安全标准简介安全标准简介4.1.1 4.1.1 计算机系统的三类安全性计算机系统的三类安全性问题问题l计算机系统安全性是指计算机系统建立和采取计算机系统安全性是指计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏、更改或泄露等。因使系统遭到破坏、更改或泄露等。l技术安全是指计算机系统中采用具有一定安全技术安全是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机
5、系统受到无意或恶数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。内的数据不增加、不丢失、不泄露。4.1.1 4.1.1 计算机系统的三类安全性计算机系统的三类安全性问题问题l管理安全是指由于管理不善导致的计算机设备管理安全是指由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。障以及场地的意外事故等安全问题。l政策法律是指政府部门建立的有关计算机犯罪、政策法律是指政府部门建立的有关计算机犯罪、数据安全保密
6、的法律道德准则和政策法规、法数据安全保密的法律道德准则和政策法规、法令。令。4.1 计算机安全性概述计算机安全性概述l4.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题l4.1.2 安全标准简介安全标准简介4.1.2 安全标准简介安全标准简介l计算机以及信息安全技术方面有一系列的安全计算机以及信息安全技术方面有一系列的安全标准,最有影响的当推标准,最有影响的当推TCSEC和和CC这两个标这两个标准。准。lTCSEC是指是指1985年美国国防部正式颁布的年美国国防部正式颁布的DoD可信计算机系统评估准则可信计算机系统评估准则lCC是在是在TCSEC的各评估准则及具体实践基础的各评估
7、准则及具体实践基础上,通过相互总结和互补发展而来的上,通过相互总结和互补发展而来的TCSEC/TDIl又称桔皮书,又称桔皮书,1991年年4月美国月美国NCSC颁布颁布了了TDI,将,将TCSEC扩展到数据库管理系扩展到数据库管理系统,定义了数据库管理系统的设计与实统,定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估现中需满足和用以进行安全性级别评估的标准。的标准。lTCSEC/TDI从四个方面来描述安全性级从四个方面来描述安全性级别划分的指标:安全策略、责任、保证别划分的指标:安全策略、责任、保证和文档。和文档。TCSEC/TDI(续)(续)lTCSEC/TDI将系统划分为四
8、组七个等级,依次是将系统划分为四组七个等级,依次是D、C(C1,C2)、B(B1,B2,B3)、A(A1),按系统可靠或可信,按系统可靠或可信程度逐渐增高。程度逐渐增高。安全级别安全级别定定 义义A1B3B2B1C2C1D验证设计验证设计(Verified Design)安全域安全域(Security Domains)结构化保护结构化保护(Structural Protection)标记安全保护标记安全保护(Labeled Security Protection)受控的存取保护受控的存取保护(Controlled Access Protection)自主安全保护自主安全保护(Discretio
9、nary Security Protection)最小保护最小保护(Minimal Protection)CCl提出了目前国际上公认的表述信息技术安全性提出了目前国际上公认的表述信息技术安全性的结构,即把对信息产品的安全要求分为安全的结构,即把对信息产品的安全要求分为安全功能要求和安全保证要求。功能要求和安全保证要求。l安全功能安全功能 要求用以规范产品和系统的安全行为要求用以规范产品和系统的安全行为l安全保证要求解决如何正确有效地实施这些功安全保证要求解决如何正确有效地实施这些功能能l安全功能要求和安全保证要求都以安全功能要求和安全保证要求都以“类类-子类子类-组件组件”的结构表述,组件是安
10、全要求的最小构的结构表述,组件是安全要求的最小构件块。件块。CC(续)(续)lCC的文本由三部分组成,三个部分相互依存,的文本由三部分组成,三个部分相互依存,缺一不可。缺一不可。第一部分是第一部分是“简介和一般模型简介和一般模型”,介绍,介绍CC中的有关术语、基本概念和一般模型以及与评中的有关术语、基本概念和一般模型以及与评估有关的一些框架。估有关的一些框架。第二部分是安全功能要求,列出了一系列第二部分是安全功能要求,列出了一系列功能组件、子类和类功能组件、子类和类 第三部分是安全保证要求,列出了一系列第三部分是安全保证要求,列出了一系列保证组件、子类和类保证组件、子类和类第第4章章 数据库安
11、全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结数据库安全性控制(续)数据库安全性控制(续)应用应用DBMSOS DB 低低 高高安全性控制层次安全性控制层次 方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 安全保护安全保护 密码存储密码存储l计算机系统中的安全模型计算机系统中的安全模型 数据库安全性控制(续)数据库安全性控制(续)l数据库安全性控制的常用方法数据库安全
12、性控制的常用方法 用户标识和鉴定用户标识和鉴定 存取控制存取控制 视图视图 审计审计 密码存储密码存储数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数据库角色l4.2.6 强制存取控制方法强制存取控制方法数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数
13、据库角色l4.2.6 强制存取控制方法强制存取控制方法4.2.1 用户标识与鉴定用户标识与鉴定l用户标识与鉴别(用户标识与鉴别(Identification&Authentication)系统提供的最外层安全保护措施系统提供的最外层安全保护措施用户标识与鉴定(续)用户标识与鉴定(续)l基本方法基本方法 系统提供一定的方式让用户标识自己的名字系统提供一定的方式让用户标识自己的名字或身份;或身份;系统内部记录着所有合法用户的标识;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户每次用户要求进入系统时,由系统核对用户提供的身份标识;提供的身份标识;通过鉴定后才提供机器使用权。
14、通过鉴定后才提供机器使用权。用户标识和鉴定可以重复多次用户标识和鉴定可以重复多次用户标识与鉴定(续)用户标识与鉴定(续)l让用户标识自己的名字或身份的方法让用户标识自己的名字或身份的方法 用户名用户名/口令口令 简单易行,容易被人窃取简单易行,容易被人窃取 每个用户预先约定好一个每个用户预先约定好一个计算过程计算过程或者或者函数函数 系统提供一个随机数系统提供一个随机数 用户根据自己预先约定的计算过程或者用户根据自己预先约定的计算过程或者函数进行计算函数进行计算 系统根据用户计算结果是否正确鉴定用系统根据用户计算结果是否正确鉴定用户身份户身份数据库安全性控制(续)数据库安全性控制(续)l4.2
15、.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数据库角色l4.2.6 强制存取控制方法强制存取控制方法4.2.2 存取控制存取控制l存取控制机制的功能存取控制机制的功能 存取控制机制的组成存取控制机制的组成 定义存取权限定义存取权限 检查存取权限检查存取权限用户权限定义和合法权检查机制一起组成用户权限定义和合法权检查机制一起组成了了DBMS的安全子系统的安全子系统存取控制(续)存取控制(续)定义存取权限定义存取权限 在数据库系统中,为了保证用户只能访问在数据库系统中,为了保
16、证用户只能访问他有权存取的数据,必须预先对每个用户他有权存取的数据,必须预先对每个用户定义存取权限。定义存取权限。检查存取权限检查存取权限 对于通过鉴定获得上机权的用户(即合法对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行的各种操作请求进行控制,确保他只执行合法操作。合法操作。存取控制(续)存取控制(续)l 自主存取控制:用户对不同的数据库对象有自主存取控制:用户对不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存
17、取权不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。限转授给其他用户。l 强制存取控制:每一个数据库对象被标以一强制存取控制:每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的定的密级,每一个用户也被授予某一个级别的许可证,对于任意一个对象,只有具有合法许许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。可证的用户才可以存取。数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数据库角色l4.
18、2.6 强制存取控制方法强制存取控制方法4.2.3 自主存取控制自主存取控制(MAC)方方法法l定义存取权限定义存取权限 存取权限存取权限 存取权限由两个要素组成存取权限由两个要素组成数据对象数据对象操作类型操作类型自主存取控制自主存取控制(MAC)方法(续)方法(续)定义存取权限定义存取权限 定义一个用户可以在哪些数据对象上进行定义一个用户可以在哪些数据对象上进行哪些类型的操作哪些类型的操作 在数据库系统中,定义存取权限称为授权在数据库系统中,定义存取权限称为授权(Authorization)授权定义经过编译后存放在数据字典中授权定义经过编译后存放在数据字典中自主存取控制自主存取控制(MAC
19、)方法(续)方法(续)关系系统中的存取权限关系系统中的存取权限 类型类型 关系数据库系统中的存取权限关系数据库系统中的存取权限对象类型对象类型对象对象操作类型操作类型数据库数据库模式模式基本表基本表CREATE SCHEMACREATE TABLE,ALTER TABLE模式模式视图视图索引索引CREATE VIEWCREATE INDEX数据数据基本表和视图基本表和视图SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES数据数据属性列属性列SELECT,INSERT,UPDATE,REFERENCES,ALL PRIVILEGES自主存取
20、控制自主存取控制(MAC)方法(续)方法(续)关系系统中的存取权限关系系统中的存取权限(续续)定义方法定义方法 GRANT/REVOKE数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数据库角色l4.2.6 强制存取控制方法强制存取控制方法4.2.4 授权与回收授权与回收lGRANT语句向用户授予权限,语句向用户授予权限,REVOKE语句收回授予的权限。语句收回授予的权限。l用户对某类数据库对象具有何种操作权用户对某类数据库
21、对象具有何种操作权力是个政策问题而不是技术问题。数据力是个政策问题而不是技术问题。数据库管理系统的功能是保证这些决定的执库管理系统的功能是保证这些决定的执行。行。1.GRANTl一般格式:一般格式:GRANT,ON,TO,WITH GRANT OPTION;l 发出发出GRANT语句的可以是语句的可以是DBA,也可以是该,也可以是该数据库对象创建者,也可以是已经拥有该权限数据库对象创建者,也可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具的用户。接受权限的用户可以是一个或多个具体用户,也可以是体用户,也可以是PUBLIC,即全体用户。,即全体用户。GRANT(续)(续)l若指定了若
22、指定了WITH GRANT OPTION子句,则获子句,则获得某种权限的用户还可以把这种权限再授予其得某种权限的用户还可以把这种权限再授予其他的用户;若没有指定此子句,则获得某种权他的用户;若没有指定此子句,则获得某种权限的用户只能使用该权限,不能传播该权限。限的用户只能使用该权限,不能传播该权限。lSQL标准允许具有标准允许具有WITH GRANT OPTION的的用户把相应权限或其子集传递授予其他用户,用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再但不允许循环授权,即被授权者不能把权限再授回给授权者或者其祖先。授回给授权者或者其祖先。GRANT(续)(续)
23、例例1 把查询把查询Student表的权限授给用户表的权限授给用户U1 GRANT SELECT ON TABLE Student TO U1;例例2 把对把对Student表和表和Course表的全部操作权限表的全部操作权限授予用户授予用户U2和和U3 GRANT ALL PRIVILEGES ON TABLE Student,Course TO U2,U3;例例3 把对表把对表SC的查询权限授予所有用户的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC;GRANT(续)(续)例例5 把对表把对表SC的的INSERT权限授予权限授予U5用户,并用户,
24、并允许将此权限再授予其他用户允许将此权限再授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;此语句执行后,此语句执行后,U5不仅拥有了对表不仅拥有了对表SC的的INSERT权权限,还可以传播此权限,他可以将此权限授予限,还可以传播此权限,他可以将此权限授予U6 GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;2.REVOKEl 授予的权限可以由授予的权限可以由DBA或其他授权者用或其他授权者用REVOKE语语句收回,句收回,REVOKE语句的一般格式为:语句的一般格式为:REVOKE
25、 ,ON,FROM,CASCADERESTRICT;l CASCADE:将用户及其传播的权限级联收回将用户及其传播的权限级联收回 RESTRICT:若此用户将权限传播给别的用户则拒绝若此用户将权限传播给别的用户则拒绝执行。执行。缺省值为缺省值为RESTRICT,有的,有的DBMS缺省值为缺省值为CASCADE。REVOKE(续)(续)例例8 把用户把用户U4修改学生学号的权限收回修改学生学号的权限收回 REVOKE UPDATE(Sno)ON TABLE Student FROM U4;例例9 收回所有用户对表收回所有用户对表SC的查询权限的查询权限 REVOKE SELECT ON TABL
26、E SC FROM PUBLIC;例例10 把用户把用户U5对对SC表的表的INSERT 权限收回权限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE;REVOKE(续)(续)lDBA拥有对数据库中所有对象的所有权限,并可以根拥有对数据库中所有对象的所有权限,并可以根据实际情况将不同的权限授予不同的用户据实际情况将不同的权限授予不同的用户l用户对自己建立的基本表和视图拥有全部的操作权限,用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用并且可以用GRANT语句把其中某些权限授予其他用户。语句把其中某些权限授予其他用户。l所有授予出去的权为在必要时
27、又都可以用所有授予出去的权为在必要时又都可以用REVOKE语语句收回句收回l用户可以用户可以“自主自主”地决定将数据的权限授予何人、决地决定将数据的权限授予何人、决定是否也将定是否也将“授权授权”的权限授予别人。的权限授予别人。这样的存取控制是这样的存取控制是自主存取控制自主存取控制3.创建数据库模式的权限创建数据库模式的权限l对数据库模式的授权由对数据库模式的授权由DBA在创建用户时实现在创建用户时实现 创建用户语句一般格式如下:创建用户语句一般格式如下:CREATE USER WITHDBARESOURCECONNECT;创建数据库模式的权限(续)创建数据库模式的权限(续)l只有系统的超级
28、用户才有权创建一个新的数据库用户只有系统的超级用户才有权创建一个新的数据库用户l新创建的数据库用户有三种权限:新创建的数据库用户有三种权限:CONNECT、RESOURCE和和DBAl命令中若没有指定创建的新用户的权限,默认该用户拥有命令中若没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有权限。拥有CONNECT权限的用户不能创建新用户,权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。不能创建模式,也不能创建基本表,只能登录数据库。l拥有拥有RESOURCE权限的用户能创建基本表和视图,成为所创建权限的用户能创建基本表和视图,成为所创建对象的属主,但
29、不能创建模式,不能创建新的用户。对象的属主,但不能创建模式,不能创建新的用户。l拥有拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等;拥有对所有数据库对象的存取创建模式、创建基本表和视图等;拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。权限,还可以把这些权限授予一般用户。数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4.2.5 数据库角色数据库
30、角色l4.2.6 强制存取控制方法强制存取控制方法4.2.5 数据库角色数据库角色l数据库角色是被命名的一组与数据库操数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。作相关的权限,角色是权限的集合。l可以为一组具有相同权限的用户创建一可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可个角色,使用角色来管理数据库权限可以简化授权的过程以简化授权的过程l在在SQL中首先用中首先用CREATE ROLE语句创语句创建角色,然后用建角色,然后用GRANT语句给角色授权语句给角色授权1.角色的创建角色的创建l创建角色的创建角色的SQL语句格式是语句格式是 CREATE
31、 ROLE;l刚刚创建的角色是空的,没有任何内容,刚刚创建的角色是空的,没有任何内容,可以用可以用GRANT为角色授权为角色授权2.给角色授权给角色授权 GRANT,ON TO,DBA和用户可以利用和用户可以利用GRANT语句将权语句将权限授予某一个或几个角色限授予某一个或几个角色3.将一个角色授予其他的角色或将一个角色授予其他的角色或用户用户 GRANT,TO,WITH ADMIN OPTION;l授予者或者是角色的创建者,或者拥有在这个角色上授予者或者是角色的创建者,或者拥有在这个角色上的的ADMIN OPTION。l若指定了若指定了WITH ADMIN OPTION子句,则获得某种子句,
32、则获得某种权限的角色或用户还可以将权限再授予其他角色权限的角色或用户还可以将权限再授予其他角色l一个角色的权限包括直接授予这个角色的全部权限加一个角色的权限包括直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限上其他角色授予这个角色的全部权限4.角色权限的收回角色权限的收回 REVOKE ,ON FROM,l用户可以回收角色的权限,从而修改角色拥有用户可以回收角色的权限,从而修改角色拥有的权限的权限lREVOKE动作的执行者或者是角色的创建者,动作的执行者或者是角色的创建者,或者拥有在这个(些)角色上的或者拥有在这个(些)角色上的ADMIN OPTION 例题例题例例11 通过角色来
33、实现将一组权限授予一个用户。步骤如下:通过角色来实现将一组权限授予一个用户。步骤如下:1.首先创建一个角色首先创建一个角色R1 CREATE ROLE R1;2.然后使用然后使用GRANT语句,使角色语句,使角色R1拥有拥有Student表的表的SELECT、UPDATE、INSERT权限权限 GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1;3.将角色授予王平、张明、赵玲将角色授予王平、张明、赵玲 GRANT R1 TO王平、张明、赵玲;王平、张明、赵玲;4.也可以一次性的通过角色也可以一次性的通过角色R1来回收王平的这来回收王平的这3个权限
34、个权限 REVOKE R1 FROM 王平;王平;例题例题例例12 角色的权限修改角色的权限修改 GRANT DELETE ON TABLE Student TO R1;使角色使角色R1在原来的基础上增加了对表在原来的基础上增加了对表Student的的DELETE权限权限例例13 REVOKE SELECT ON TABLE Student FROM R1;使使R1减少了减少了SELECT权限权限数据库安全性控制(续)数据库安全性控制(续)l4.2.1 用户标识与鉴别用户标识与鉴别l4.2.2 存取控制存取控制l4.2.3 自主存取控制方法自主存取控制方法l4.2.4 授权与回收授权与回收l4
35、.2.5 数据库角色数据库角色l4.2.6 强制存取控制方法强制存取控制方法4.2.6 强制存取控制强制存取控制(MAC)方方法法lMAC是指系统为保证更高程度的安全性,是指系统为保证更高程度的安全性,按照按照TDI/TSCEC标准中安全策略的要求,标准中安全策略的要求,所采取的强制存取检查手段。所采取的强制存取检查手段。l不是用户能直接感知或进行控制的不是用户能直接感知或进行控制的l适用于那些对数据有严格而固定密级分适用于那些对数据有严格而固定密级分类的部门,如军事部门或政府部门类的部门,如军事部门或政府部门强制存取控制方法(续)强制存取控制方法(续)l在在MAC中,中,DBMS所管理的全部
36、实体被分为主所管理的全部实体被分为主体和客体两大类体和客体两大类l主体是系统中的活动实体,既包括主体是系统中的活动实体,既包括DBMS所管所管理的实际用户,也包括代表用户的各进程理的实际用户,也包括代表用户的各进程l客体是系统中的被动实体,是受主体操纵的,客体是系统中的被动实体,是受主体操纵的,包括文体、基本表、索引、视图等。包括文体、基本表、索引、视图等。l对于主体和客体,对于主体和客体,DBMS为它们每个实例(值)为它们每个实例(值)指派一个敏感度标记指派一个敏感度标记强制存取控制方法(续)强制存取控制方法(续)l敏感度标记被分成若干级别,例如绝密、机密、敏感度标记被分成若干级别,例如绝密
37、、机密、可信、公开等。可信、公开等。l主体的敏感度标记称为许可证级别,客体的敏主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级感度标记称为密级lMAC机制就是通过对比主体的机制就是通过对比主体的Label和客体的和客体的Label,最终确定主体是否能够存取客体,最终确定主体是否能够存取客体强制存取控制方法(续)强制存取控制方法(续)当某一用户(或某一主体)以标记当某一用户(或某一主体)以标记label注册入系统时,注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:系统要求他对任何客体的存取必须遵循如下规则:(1)仅当主体的许可证级别大于或等于客体的密级时,)仅当主体的许可证级别
38、大于或等于客体的密级时,该主体才能读取相应的客体该主体才能读取相应的客体 (2)仅当主体的许可证级别等于客体的密级时,该主)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体体才能写相应的客体 在某些系统中,第(在某些系统中,第(2)条规则有些不同,它们规定:)条规则有些不同,它们规定:仅当主体的许可证级别小于或等于客体的密级时,该仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。主体才能写相应的客体。强制存取控制方法(续)强制存取控制方法(续)l强制存取控制是对数据本身进行密级标强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是记,无论数据如何复
39、制,标记与数据是一个不可分的整体,只有符合密级标记一个不可分的整体,只有符合密级标记要求的用户才能操纵数据,从而提供了要求的用户才能操纵数据,从而提供了更高级别的安全性。更高级别的安全性。强制存取控制方法(续)强制存取控制方法(续)l较高安全性级别提供的安全保护要包含较高安全性级别提供的安全保护要包含较低级别的所有保护,因此在实现较低级别的所有保护,因此在实现MAC时要首先实现时要首先实现DAC,即,即DAC与与MAC共同共同构成构成DBMS的安全机制。系统首先进行的安全机制。系统首先进行DAC检查,对通过检查,对通过DAC检查的允许存取检查的允许存取的数据库对象再由系统自动进行的数据库对象再
40、由系统自动进行MAC检检查,只有通过查,只有通过MAC检查的数据库对象方检查的数据库对象方可存取。可存取。第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结4.3 视图机制视图机制l视图机制把要保密的数据对无权存取这些数据视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。程度的安全保护。l 视图机制更主要的功能在
41、于提供数据独立性,视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应其安全保护功能太不精细,往往远不能达到应用系统的要求。用系统的要求。视图机制(续)视图机制(续)l视图机制间接地实现支持存取谓词的用视图机制间接地实现支持存取谓词的用户权限定义户权限定义视图机制(续)视图机制(续)例:建立计算机系学生的视图,把对该视图的例:建立计算机系学生的视图,把对该视图的SELECT权限授予王平,把该视图上的所有操权限授予王平,把该视图上的所有操作权限授予张明作权限授予张明 先建立计算机系学生的视图先建立计算机系学生的视图CS_Student CREATE VIEW CS_S
42、tudent AS SELECT*FROM Student WHERE Sdept=CS;视图机制(续)视图机制(续)在视图上进一步定义存取权限在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平王平;GRANT ALL PRIVILIGES ON CS_Student TO 张明张明;第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结4.4 审计(审计(A
43、udit)l什么是审计什么是审计 审计功能启用一个专用的审计日志(审计功能启用一个专用的审计日志(Audit Log),),系统自动将用户对数据库的所有操系统自动将用户对数据库的所有操作记录在上面作记录在上面 DBA可以利用审计日志中的追踪信息,重现可以利用审计日志中的追踪信息,重现导致数据库现有状况的一系列事件,以找出导致数据库现有状况的一系列事件,以找出非法存取数据的人非法存取数据的人 C2以上安全级别的以上安全级别的DBMS必须具有审计功能必须具有审计功能审计(续)审计(续)l审计功能的可选性审计功能的可选性 审计很费时间和空间,所以审计很费时间和空间,所以DBMS往往都将往往都将其作为
44、可选特征其作为可选特征 DBA可以根据应用对安全性的要求,灵可以根据应用对安全性的要求,灵活地打开或关闭审计功能。活地打开或关闭审计功能。审计(续)审计(续)l审计一般可以分为用户级审计和系统级审计审计一般可以分为用户级审计和系统级审计l用户级审计是任何用户可设置的审计,主要是用户级审计是任何用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的(或)不成功的访问要求以及各种类型的SQL操作操作l系统级审计只能由系统级审计只能由D
45、BA设置,用以监测成功或设置,用以监测成功或失败的登录要求、监测失败的登录要求、监测GRANT和和REVOKE操操作以及其他数据库级权限下的操作作以及其他数据库级权限下的操作审计(续)审计(续)用户识别和鉴定、存取控制、视图等安全性措施均用户识别和鉴定、存取控制、视图等安全性措施均为强制性机制,将用户操作限制在规定的安全范围为强制性机制,将用户操作限制在规定的安全范围内。审计技术是预防手段,监测可能的不合法行为。内。审计技术是预防手段,监测可能的不合法行为。审计设置以及审计内容一般都存放在数据字典中。审计设置以及审计内容一般都存放在数据字典中。必须把审计开关打开(即把系统参数必须把审计开关打开
46、(即把系统参数audit_trail设设为为true),才可以在系统表),才可以在系统表SYS_AUDITTRAIL中中查看审计信息查看审计信息审计(续)审计(续)由于任何系统的安全性措施都不可能是完美由于任何系统的安全性措施都不可能是完美无缺的,蓄意盗窃、破坏数据的人总是想方无缺的,蓄意盗窃、破坏数据的人总是想方设法打破控制。所以,当数据相当敏感,或设法打破控制。所以,当数据相当敏感,或者对数据的处理极为重要时,就必须使用审者对数据的处理极为重要时,就必须使用审计技术。计技术。审计(续)审计(续)lAUDIT语句用来设置审计功能,语句用来设置审计功能,NOAUDIT语语句取消审计功能句取消审
47、计功能例例15 对修改对修改SC表结构或修改表结构或修改SC表数据的操作进表数据的操作进行审计行审计 AUDIT ALTER,UPDATE ON SC;例例16 取消对取消对SC表的一切审计表的一切审计 NOAUDIT ALTER,UPDATE ON SC;第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结4.5 数据加密数据加密l数据加密数据加密 防止数据库中数据在存储和传输中失密的有防止数据库
48、中数据在存储和传输中失密的有效手段效手段l加密的基本思想加密的基本思想 根据一定的算法将原始数据(术语为明文,根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术变换为不可直接识别的格式(术语为密文,语为密文,Cipher text)不知道解密算法的人无法获知数据的内容不知道解密算法的人无法获知数据的内容数据加密(续)数据加密(续)l加密方法加密方法 替换方法替换方法 使用密钥(使用密钥(Encryption Key)将明文中的每一个将明文中的每一个字符转换为密文中的一个字符字符转换为密文中的一个字符 置换方法置换方法 将明文的字符按不同的顺序重新排列将明文
49、的字符按不同的顺序重新排列 这两种方法结合能提供相当高的安全程度这两种方法结合能提供相当高的安全程度 例:美国例:美国1977年制定的官方加密标准:数据加密标年制定的官方加密标准:数据加密标准(准(Data Encryption Standard,简称简称DES)数据加密(续)数据加密(续)lDBMS中的数据加密中的数据加密 有些数据库产品提供了数据加密例行程序有些数据库产品提供了数据加密例行程序 有些数据库产品本身未提供加密程序,但提有些数据库产品本身未提供加密程序,但提供了接口供了接口数据加密(续)数据加密(续)l数据加密功能通常也作为可选特征,允数据加密功能通常也作为可选特征,允许用户自
50、由选择许用户自由选择 数据加密与解密是比较费时的操作数据加密与解密是比较费时的操作 数据加密与解密程序会占用大量系统资源数据加密与解密程序会占用大量系统资源 应该只对高度机密的数据加密应该只对高度机密的数据加密第第4章章 数据库安全性数据库安全性l4.1 计算机安全性概述计算机安全性概述l4.2 数据库安全性控制数据库安全性控制l4.3 视图机制视图机制l4.4 审计审计l4.5 数据加密数据加密l4.6 统计数据库安全性统计数据库安全性l4.7 小结小结4.6 统计数据库安全性统计数据库安全性l统计数据库允许用户查询聚集类型的信统计数据库允许用户查询聚集类型的信息,但是不允许查询单个记录信息