1、数据库系统概论数据库系统概论An Introduction to Database System第四章第四章 数据库安全性数据库安全性http:/ 数据库安全性数据库安全性n4.1 计算机安全性概述n4.2 数据库安全性控制n4.3 视图机制n4.4 审计n4.5 数据加密n4.6 统计数据库安全性n4.7 小结4.1 计算机安全性概述计算机安全性概述n什么是数据库的安全性n数据库的安全性是指保护数据库以防止不合法的使用所造成数据泄露、更改或破坏。n安全性问题不是数据库系统所独有的,所有计算机都有这个问题。n数据库中大量数据集中存放;n为许多最终用户共享;n安全性问题更突出。n数据库系统的安全
2、保护措施是否有效是数据库系统主要的性能指标之一。n数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介4.1 计算机安全性概述计算机安全性概述4.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题 n什么是计算机系统安全性n为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。4.1.1 计算机系统的三类安全性问题计算机系统的三类安全性问题n计算机安全涉及问题n计算机系统本身的技术问题n计算机安全
3、理论与策略n计算机安全技术n管理问题n安全管理n安全评价n安全产品n法学n计算机安全法律n犯罪学n计算机犯罪与侦察n安全监察n心理学n三类计算机系统安全性问题n技术安全类n管理安全类n政策法律类n技术安全n指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。n管理安全n软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题n政策法律n政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令4.1 计算机安全性概述
4、计算机安全性概述4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介4.1.2 安全标准简介安全标准简介n为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准nTCSEC(桔皮书)nTDI(紫皮书)n1985年美国国防部(DoD)正式颁布 DoD可信计算机系统评估标准(简称TCSEC或DoD85)nTCSEC又称桔皮书nTCSEC标准的目的n提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。n给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。n1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评
5、估标准关于可信数据库系统的解释(Trusted Database Interpretation 简称TDI)nTDI又称紫皮书。它将TCSEC扩展到数据库管理系统。nTDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。nTDI/TCSEC标准的基本内容nTDI与TCSEC一样,从四个方面来描述安全性级别划分的指标n安全策略n责任n保证n文档nR1 安全策略(Security Policy)R1.1 自主存取控制 (Discretionary Access Control,简记为DAC)R1.2 客体重用(Object Reuse)R1.3 标记(Labels)R1.
6、4 强制存取控制 (Mandatory Access Control,简记为MAC)nR2 责任(Accountability)R2.1 标识与鉴别 (Identification&Authentication)R2.2 审计(Audit)nR3 保证(Assurance)R3.1 操作保证(Operational Assurance)R3.2 生命周期保证(Life Cycle Assurance)nR4 文档(Documentation)R4.1 安全特性用户指南(Security Features Users Guide)R4.2 可信设施手册(Trusted Facility Manu
7、al)R4.3 测试文档(Test Documentation)R4.4 设计文档(Design Documentation)nTCSEC/TDI安全级别划分(4组7个等级)安安 全全 级级 别别 定定 义义 A1验证设计(验证设计(Verified Design)B3安全域(安全域(Security Domains)B2结构化保护(结构化保护(Structural Protection)B1标记安全保护(标记安全保护(Labeled Security Protection)C2受控的存取保护受控的存取保护(Controlled Access Protection)C1自主安全保护自主安全保护
8、(Discretionary Security Protection)D最小保护(最小保护(Minimal Protection)nD级n将一切不符合更高标准的系统均归于D组n典型例子:DOS是安全标准为D级的操作系统n DOS在安全性方面几乎没有什么专门的机制来保障。nC1级n非常初级的自主安全保护。n能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。nC2级n安全产品的最低档次。n提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离n达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色。n典型例子n 操
9、作系统nMicrosoft的Windows NT 3.5,n数字设备公司的Open VMS VAX 6.0和6.1n 数据库nOracle公司的Oracle 7nSybase公司的 SQL Server 11.0.6nB1级n标记安全保护。“安全”(Security)或“可信的”(Trusted)产品。n对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制。n典型例子n 操作系统n数字设备公司的SEVMS VAX Version 6.0n惠普公司的HP-UX BLS release 9.0.9+n 数据库nOracle公司的Trusted Oracle 7nSyb
10、ase公司的Secure SQL Server version 11.0.6nInformix公司的Incorporated INFORMIX-OnLine/Secure 5.0nB2级n结构化保护n建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。n经过认证的B2级以上的安全系统非常稀少n典型例子n 操作系统n只有Trusted Information Systems公司的Trusted XENIX一种产品n 标准的网络产品n只有Cryptek Secure Communications公司的LLC VSLAN一种产品n 数据库n没有符合B2标准的产品。nB3级n安全域。
11、n该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。nA1级n验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。nB2以上的系统n还处于理论研究阶段n应用多限于一些特殊的部门如军队等n美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准。第四章第四章 数据库安全性数据库安全性4.1 计算机安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计4.5 数据加密4.6 统计数据库安全性4.7 小结4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.
12、2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法n安全模型n在一般的计算机系统中,安全措施是一级一级层层设置的。n例如可以有以下模型:4.2.1 用户标识与鉴别用户标识与鉴别 用户用户DBMSOS DB 低低 高高安全性控制层次安全性控制层次 方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 安全保护安全保护 密码存储密码存储n数据库安全性控制的常用方法n用户标识和鉴定n存取控制n视图n审计n密码存储4.2.1 用户标识与鉴别用户标识与鉴别n用户标识与鉴别n系统提供的最外层安全保护措施n
13、基本方法n系统提供一定的方式让用户标识自己的名字或身份;n系统内部记录着所有合法用户的标识;4.2.2 用户标识与鉴别用户标识与鉴别n每次用户要求进入系统时,由系统核对用户提供的身份标识;n通过鉴定后才提供机器使用权。n用户标识和鉴定可以重复多次用户标识自己的名字或身份用户标识自己的名字或身份n用户名/口令n简单易行,容易被人窃取n每个用户预先约定好一个计算过程或者函数n系统提供一个随机数n用户根据自己预先约定的计算过程或者函数进行计算n系统根据用户计算结果是否正确鉴定用户身份4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.
14、2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法9.2.3 存取控制存取控制n存取控制机制的功能n存取控制机制的组成n 定义存取权限n 检查存取权限n用户权限定义和合法权检查机制一起组成了DBMS的安全子系统存取控制(续)存取控制(续)n定义存取权限n在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。n检查存取权限n对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。存取控制(续)存取控制(续)n常用存取控制方法n自主存取控制(Discretionary Access Co
15、ntrol,简称DAC)n C2级n 灵活n强制存取控制(Mandatory Access Control,简称 MAC)n B1级n严格4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法自主存取控制方法自主存取控制方法n同一用户对于不同的数据对象有不同的存取权限n不同的用户对同一对象也有不同的权限n用户还可将其拥有的存取权限转授给其他用户9.2 数据库安全性控制数据库安全性控制9.2.1 用户标识与鉴别9.2.2 存取控制9.2.3 自主存取控制方法9.2.
16、4 强制存取控制方法9.2.3 自主存取控制方法自主存取控制方法n定义存取权限n存取权限n 存取权限由两个要素组成n数据对象和操作类型自主存取控制方法(续)自主存取控制方法(续)n关系系统中的存取权限n类型 数据对象操作类型模 式 模 式建立、修改、删除、检索外模式 建立、修改、删除、检索 内模式建立、删除、检索数 据 表查找、插入、修改、删除属性列查找、插入、修改、删除自主存取控制方法(续)自主存取控制方法(续)n关系系统中的存取权限n定义方法nGRANT/REVOKE自主存取控制方法(续)自主存取控制方法(续)n关系系统中的存取权限(续)n例:一张授权表 用户名 数据对象名 允许的操作类型
17、 王 平 关系Student SELECT 张明霞 关系Student UPDATE 张明霞 关系Course ALL 张明霞 SC.Grade UPDATE 张明霞 SC.Sno SELECT 张明霞 SC.Cno SELECT自主存取控制方法(续)自主存取控制方法(续)n检查存取权限n对于获得上机权后又进一步发出存取数据库操作的用户nDBMS查找数据字典,根据其存取权限对操作的合法性进行检查n若用户的操作请求超出了定义的权限,系统将拒绝执行此操作自主存取控制方法(续)自主存取控制方法(续)n 授权粒度n授权粒度是指可以定义的数据对象的范围n它是衡量授权机制是否灵活的一个重要指标。n授权定义
18、中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。自主存取控制方法(续)自主存取控制方法(续)n关系数据库中授权的数据对象粒度n 数据库n 表n 属性列n 行n能否提供与数据值有关的授权反映了授权子系统精巧程度自主存取控制方法(续)自主存取控制方法(续)n实现与数据值有关的授权n利用存取谓词n存取谓词可以很复杂n可以引用系统变量,如终端设备号,系统时钟等,实现与时间地点有关的存取权限,这样用户只能在某段时间内,某台终端上存取有关数据 例:规定“教师只能在每年1月份和7月份星期一至星期五上午8点到下午5点处理学生成绩数据”。自主存取控制方法(续)自主存取控制方法(续)例:
19、扩充后的授权表 用户名 数据对象名 允许的操作类型 存取谓词王 平 关 系 S t u d e n t S E L E C T Sdept=CS张明霞 关系Student UPDATE Sname=张明霞张明霞 关系 Course ALL 空自主存取控制方法(续)自主存取控制方法(续)n自主存取控制小结n定义存取权限n用户n检查存取权限nDBMS自主存取控制方法(续)自主存取控制方法(续)n自主存取控制小结(续)n授权粒度n数据对象粒度:数据库、表、属性列、行n数据值粒度:存取谓词n授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。但另一方面,因数据字典变大变复杂,系统定义与检查权限
20、的开销也会相应地增大。自主存取控制方法(续)自主存取控制方法(续)n自主存取控制小结(续)n优点n能够通过授权机制有效地控制其他用户对敏感数据的存取自主存取控制方法(续)自主存取控制方法(续)n自主存取控制小结(续)n缺点n可能存在数据的“无意泄露”n原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。n解决:对系统控制下的所有主客体实施强制存取控制策略4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法4.2.4 授授 权与回收权与
21、回收nGRANT语句的一般格式:GRANT,.ON TO,|PUBLIC WITH GRANT OPTION;n功能:将指定操作对象的指定操作权限授予指定的用户。对象 对象类型 操 作 权 限 属性列 TABLE SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES 视图 TABLE SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES 基本表 TABLE SELECT,INSERT,UPDATE,DELETE ALTER,INDEX,ALL PRIVILEGES 数据库 DATABASE CREATETAB n建表(CREATE
22、 TAB)的权限:属于DBAnDBA授予-普通用户n基本表或视图的属主拥有对该表或视图的一切操作权限n接受权限的用户:一个或多个具体用户 PUBLIC(全体用户)n指定了WITH GRANT OPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。n没有指定WITH GRANT OPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限例题例题 例1 把查询Student表权限授给用户U1GRANT SELECT ON Student TO U1;例题(续)例题(续)例2 把对Student表和Course表的全部权限授予用户U2和U3GRANT ALL PRIVILEGE
23、S ON Student,Course TO U2,U3;n注意:在Oracle中,只能对一个对象授权。例题(续)例题(续)例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
24、后,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中建立表的权限授予用户U8GRANT CREATETABON DATABASE S_C TO U8;注意:Oracle中由DBA把CREATE TABLE的权限授予用户。3.6 数据控制数据控制n概述n3.6.1 授权n3.6.2 收回权限n小结3.6.2 收回权限收回权限nR
25、EVOKE语句的一般格式为:REVOKE,.ON FROM,.;n功能:从指定用户那里收回指定的权限。例题例题例7 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno)ON Student FROM U4;注意:Oracle中不能按列收回权限。例题(续)例题(续)例8 收回所有用户对表SC的查询权限REVOKE SELECT ON SC FROM PUBLIC;例题(续)例题(续)例9 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON SC FROM U5;权限的级联回收权限的级联回收系统将收回直接或间接从U5处获得的对SC表的INSERT权限:-U5
26、-U6-U7收回U5、U6、U7获得的对SC表的INSERT权限:-U5-U6-U7小结小结:SQLSQL灵活的授权机制灵活的授权机制nDBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。n用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。n被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。n所有授予出去的权力在必要时又都可以用REVOKE语句收回。4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.
27、2.5 数据库角色4.2.6 强制存取控制方法4.2 数据库安全性控制数据库安全性控制4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法4.2.6 强制存取控制方法强制存取控制方法n什么是强制存取控制n强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。nMAC不是用户能直接感知或进行控制的。nMAC适用于对数据有严格而固定密级分类的部门n 军事部门n 政府部门强制存取控制方法强制存取控制方法n主体与客体n在MAC中,DBMS所
28、管理的全部实体被分为主体和客体两大类n主体是系统中的活动实体n DBMS所管理的实际用户n 代表用户的各进程n客体是系统中的被动实体,是受主体操纵的n 文件n 基表n 索引n 视图强制存取控制方法强制存取控制方法n敏感度标记n 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)n 敏感度标记分成若干级别n 绝密(Top Secret)n 机密(Secret)n 可信(Confidential)n 公开(Public)强制存取控制方法(续)强制存取控制方法(续)n主体的敏感度标记称为许可证级别(Clearance Level)n客体的敏感度标记称为密级(Classifi
29、cation Level)nMAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体强制存取控制方法(续)强制存取控制方法(续)n 强制存取控制规则n当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。强制存取控制方法(续)强制存取控制方法(续)n修正规则:n主体的许可证级别 得到的利益第四章第四章 数据库安全性数据库安全性4.1 计算机安全性概述4.2 数据库安全性控制4
30、.3 视图机制4.4 审计4.5 数据加密4.6 统计数据库安全性4.7 小结4.7 小结小结n随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要nDBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。n可信计算机系统评测标准TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。nCSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标n实现数据库系统安全性的技术和方法有多种,最重要的是存取控制技术和审计技术。n目前许多大型DBMS 达到了C2级,其安全版本达到了B1nC2级的DBMS必须具有自主存取控制功能和初步的审计功
31、能nB1级的DBMS必须具有强制存取控制和增强的审计功能n自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的Oracle数据库的安全性措施数据库的安全性措施nORACLE的安全措施:n用户标识和鉴定n授权和检查机制n审计技术n用户通过触发器灵活定义自己的安全性措施一、一、Oracle的用户标识和鉴定的用户标识和鉴定nOracle允许用户重复标识三次n如果三次仍未通过,系统自动退出二、二、Oracle的授权与检查机制的授权与检查机制nOracle授权和检查机制的特色nOracle的权限包括系统权限和数据库对象的权限n采用非集中式的授权机制nDBA负责授予与回收系统权限,
32、也可以授予与回收所有数据库对象的权限二、二、Oracle的授权与检查机制的授权与检查机制n每个用户授予与回收自己创建的数据库对象的权限。n允许重复授权,即可将某一权限多次授予同一用户,系统不会出错。n不允许无效回收,即用户回收没有授出的权限。1.系统权限系统权限Oracle 9i数据库提供了100多种系统权限n 创建会话 CREATE SESSIONn 创建表 CREATE TABLEn 创建视图 CREATE VIEWn 创建用户 CREATE USER1 系统权限系统权限nDBA在创建一个用户时需要将其中的一些权限授予该用户n什么是角色?n一组系统权限的集合,目的在于简化权限管理。nORA
33、CLE允许DBA定义角色nORACLE提供的预定义角色n CONNECTn RESOURCEn DBA1 系统权限系统权限nCONNECT角色n允许用户登录数据库并执行数据查询和操纵n ALTER TABLEn CREATE VIEW/INDEX n DROP TABLE/VIEW/INDEXn GRANT,REVOKEn INSERT,UPDATE,DELETEn SELETEn AUDIT/NOAUDIT1 系统权限系统权限nRESOURCE角色n允许用户建表,即执行CREATE TABLE操作n由于创建表的用户将拥有该表,因此他具有对该表的任何权限。1 系统权限系统权限nDBA角色n允许
34、用户执行授权命令,建表,对任何表的数据进行操纵。nDBA角色涵盖了前两种角色,此外还可以执行一些管理操作。nDBA角色拥有最高级别的权限。1系统权限系统权限例:DBA建立一用户U12后,欲将ALTER TABLE、CREATE VIEW、CREATE INDEX、DROP TABLE、DROP VIEW、DROP INDEX,GRANT,REVOKE、INSERT、SELETE、UPDATE、DELETE、AUDIT、NOAUDIT等系统权限授予U12 GRANT CONNECT TO U12;这样就可以省略十几条GRANT语句2.数据库对象的权限数据库对象的权限ORACLE可以授权的数据库对
35、象n 基本表n 视图n 序列n 同义词n 存储过程n 函数数据库对象的权限(续)数据库对象的权限(续)n基本表的安全性级别n 表级n 行级n 列级数据库对象的权限数据库对象的权限n表级权限n ALTER:修改表定义n SELECT:查找表中记录n INSERT:向表中插入数据记录n DELETE:删除表记录n UPDATE:修改表中的数据n INDEX:在表上建索引n ALL PRIVILEGES:上述所有权限数据库对象的权限数据库对象的权限n 表级授权使用GRANTREVOKE语句 例:GRANT SELECT ON SC TO U12;REVOKE SELECT ON SC FROM U1
36、2;数据库对象的权限数据库对象的权限n行级安全性n Oracle行级安全性由视图间接实现。n用视图定义表的水平子集,限定用户在视图上的操作。数据库对象的权限数据库对象的权限例:用户U1只允许用户U12查看自己创建的Student表中有关信息系学生的信息,则首先创建视图信息系学生视图S_IS:CREATE VIEW S_IS AS SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student WHERE Sdept=IS;然后将关于该视图的SELECT权限授予U12用户:GRANT SELECT ON S_IS TO U12;数据库对象的权限数据库对象的权限n列级安
37、全性n 实现方法n 由视图间接实现n 直接在基本表上定义数据库对象的权限数据库对象的权限n列级安全性(续)n借助视图实现列级安全性CREATE VIEW S_V AS SELECT Sno,Sname FROM Student;GRANT SELECT ON S_V TO U12;数据库对象的权限数据库对象的权限n列级安全性(续)n 直接在基本表上定义列级安全性 例:GRANT UPDATE(Sno,Cno)ON SC TO U2;REVOKE UPDATE ON SC FROM U2;数据库对象的权限数据库对象的权限n上一级对象的权限制约下一级对象的权限 例:当一个用户拥有了对某个表的UPD
38、ATE权限 相当于在表的所有列了都拥有UPDATE 权限 数据库对象的权限(续)数据库对象的权限(续)Oracle对数据库对象的权限采用分散控制方式n允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户Oracle允许循环授权 U1 U2 U3 U4 Oracle的授权与检查机制(续)的授权与检查机制(续)nOracle的权限信息记录在数据字典中n当用户进行数据库操作时,Oracle首先根据数据字典中的权限信息,检查操作的合法性。n在Oracle中,安全性检查是任何数据库操作的第一步。三、三、Oracle的审计技术的审计技术n审计分类n用户级审计n系统级审计n 用
39、户级审计n由用户设置n用户针对自己创建的数据库表或视图进行审计n审计内容n所有用户对这些表或视图的一切成功和或不成功的访问要求n所有用户对这些表或视图的各类SQL操作n系统级审计nDBA设置n审计对象和内容n成功或失败的登录要求nGRANT和REVOKE操作n其他数据库级权限下的操作 可以自由设置nAUDIT:设置审计功能例:AUDIT ALTER,UPDATE ON SC;n NOAUDIT:取消审计功能例:NOAUDIT ALL ON SC;n 对哪些表进行审计n 对哪些操作进行审计n与审计功能有关的数据字典表n SYS.TABLES:审计设置n SYS.AUDIT_TRAIL:审计内容n
40、SYSTEM.AUDIT_ACTION:可审计的命令n SYS.TABLES:nTAB$NAME:表名;nTAB$OWNER:表的拥有者(即创建者)TAB$AUDIT:审计设置四、用户定义的安全性措施四、用户定义的安全性措施n用数据库级触发器定义用户级安全性例:规定只能在工作时间内更新Student表 可以定义如下触发器:CREATE OR REPLACE TRIGGER secure_studentBEFORE 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;n触发器存放在数据字典中n用户每次对Student表执行INSERT、UPDATE或DELETE自动触发该触发器n系统检查当时的系统时间,如是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。n利用触发器进一步细化审计规则,使审计操作的粒度更细下课了。下课了。休息一会儿。休息一会儿。