版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章数据库保第5章5.15.25.35.4
第九章数据库安全性第十章数据库完整性第八章迸发控制5.5数据 第5章数据库保第5章5.15.25.35.45.5数据 第5章数据库保护 5.1第5章数据库保护5.15.1 5.1安全 使用数据库造成共享共享分户分户 格的
户允许他存取 编写应用程序执行 操
数
图5-1 行用户鉴定不再详叙。另外对于强力迫
口令、物理设备等行为而
用户标
④审 户要求进入系统时,由系统将用户提供的标识是系统提供的最外层安全保护措施或用户标识号来标明用户,系统鉴别此用户是
行,但用户名与口令容易窃取,因此还例如,每个用户都预先约定好一个计算过程或者函数,鉴别用户时,系统提供一结果是否正确进一步鉴定用户。用户可以约定比较简单的计算过程或函数,以便 表表5 数据表 表5-表5- 关系………对象的范围。定义中围越小,子系统就越 列A行C列A行C英682 对象对象关系关系………
表5-4一 表5-4一 表5- …列o…… ………
另外,还可以在存取谓词中系统变量。如终端设备号,系实现和收回所力。 机制把要的数据对无权存取这些数据的用户隐 但实际上任何系统的安全性措施都不可能是完美无缺的,蓄意、的处理极为重要时,就必须以审计技术作为预防,监测可能的不合法行 供供洞以动对和传输的数据进行加理,另一些数据库产品虽然本身未提供加 所有提供加密机制的系统必然也提供相应的程序。这些程序本身也必须具有一定的安全性保护措施,否则由于数据加密与也是比较费时的操作,而且数据加密与程序会占用大量系统资源,因此数据加密功能通常 ,只对高度的数据 SQLServer的安全等级SQLServer采用了集成WindowsNT SQLServer的安全等级(2(2SQLServer登录SQLSQLServer的登录安全机制建立在控制数据库服务器SQLServer的登录安全机制建立在控制数据库服务器 的基础上。SQLServer采用了标准SQLServer登录和集成WindowsNT登录两种方式。无论使用那 户能否获得SQLServer的 SQLSQLSQL SQLServer的安全等级SQLSQLSQLSQL
SQLServer的安全等级SQL
SQLSQLSQL
5.1.2ORACLE数据库的安全性措ORACLE还 5.1.2ORACLE数据库的安全性措22ORACLE 5.1.2ORACLE数据库的安全性措
CONNECT角色允许用户登录数据库,并执行数据查询和 允许用户执行ALTERTABLE,CREATEVIEW,CREATEINDEX, 5.1.2ORACLE数据库的安全性措
RESOURCE角色允许用户建表,即执行CREATETABLE操作。 TABLE,CREATEVIEW,CREATEINDEX,DROP GRANTCONNECTTOU12这样就可以省略十几条GRANT 5.1.2ORACLE数据库的安全性措
GRANT/REVOKE
GRANTSELECTONSCTO 5.1.2ORACLE数据库的安全性措
CREATEVIEWSELECTCREATEVIEWSELECTFROMWHERESdept=’IS’ 全许用户U12查看自己创性建的Student表中有关信视图GRANTSELECTONS_ISGRANTSELECTONS_ISTO 5.1.2ORACLE数据库的安全性措Cno的UPDATE权力授予U12: 5.1.2ORACLE数据库的安全性措 图5-2 图5-2 5.1.2ORACLE数据库的安全性措功的要求以及各种类型的SQL操作。系统级审计只能由DBA进行, ALTERUPDATEONSC 5.1.2ORACLE数据库的安全性措NOAUDITNOAUDITALLONSC 5.1.2ORACLE数据库的安全性措CREATEORRE CETRIGGERsecure_studentBEFOREINSERTORUPDATEORDELETEONStudentIF(TO_CHAR(sysdate,’DY’)IN(’SAT’,’SUN’)OR(TO_NUMBER(sysdate,’HH24’)NOTBETWEEN8AND’Youmayonlychangedataduringnormalbusinesshours.’)ENDIF; 5.1.2ORACLE数据库的安全性措触发器一经定义后,将存放在数据字典中。用户每次对Student表 ORACLE的安全性和检查以及审计技术中起着重要作用。 5.25.25.25.2第五例如,学生的必须是整数,取值范围为14~29;学生的只能是男或 5.2.1完整性约束条 列级 5.2.1完整性约束条 5.2.1完整性约束条图5-3图5-3
⑥
①①对数据格式 5.2.1完整性约束条 5.2.1完整性约束条③函数依赖 系SJT(S,J,T)中存在如下的函数依赖(S,J→T,T→J),将(S,J)作为主码,还 5.2.1完整性约束条统计约束即某个字段值与一个关系多个元组的统计值之间的约束关系。 5.2.1完整性约束条修改列定义修改列定义 5.2.1完整性约束条表5-5表5-5 5.2.2完整性控 5.2.2完整性控5.2.2
(deferredconstraints)。 5.2.2完整性控5.2.2 5.2.2完整性控5.2.2
D,O,A,C
5.2.2完整性控5.2.2 5.2.2完整性控5.2.2 5.2.2完整性控的 5.2.2完整性控值,但在学生-选课数据库中,Student关系为被参照关系,其主码为的某个学生,或者某个不知学号的学生,选修了某门课程,其成绩记录在Grade列中。这与学校的应用环境是不相符的,因此SC的Sno列不能取空值。从上面的讨论中,我们看到外码是否能够取空值是依赖于应用环境的语义的,因此在实现参照完整性时,系统除了应该提供定 5.2.2完整性控 5.2.2完整性控 5.2.2完整性控 5.2.2完整性控②受限修改(restricted)。即此修改操作。只当参照关系中没有任何元组 5.2.3ORACLE的完整CREATETABLE SnameVARCHAR(20),SageNUMBER(20),CREATETABLE SnameVARCHAR(20),SageNUMBER(20),
5.2.3ORACLE的完整例
CREATETABLESCCREATETABLESC GradeCONSTRAINTPK_SCPRIMARYKEY(Sno,在用在用PRIMARYKEY语句定义了关系的主码后,每当用户程序对主码使主码值在表中不唯一,系统此操作,从而保证了实体完整性。 5.2.3ORACLE的完整ORACLE的CREATETABLE语句不仅可以定义关系的实体完整性规则,CREATETABLE(EmpnoNUMBER(4),EnameCREATETABLE(EmpnoNUMBER(4),EnameVARCHAR(10),JobVERCHAR(9),MgrNUMBER(4),SalNUMBER(7,2),DeptnoCONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)REFERENCESDEPT(Deptno)); 没有,接受此操作;否则这一更新
CREATECREATETABLE(EmpnoNUMBER(4),EnameVARCHAR(10),JobVERCHAR(9),MgrSalDeptnoCONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)REFERENCESDEPT(Deptno));5.25.25.2.3ORACLE
CREATECREATETABLE(EmpnoNUMBER(4),EnameVARCHAR(10),JobVERCHAR(9),MgrSalDeptnoCONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)REFERENCESDEPT(Deptno)ONDELETECASCADE));5.25.25.2.3ORACLE 5.2.3ORACLE的完整 5.2.3ORACLE的完整CREATETABLE DnameVARCHAR(9)CONSTRAINTU1LocCONSTRAINTPK_DETPRIMARYKEY(Deptno) 5.2.3ORACLE的完整 SnameVARCHAR(20)CONSTRAINTC2NOT CONSTRAINTC4CHECK IN(’男’,’女’))); 5.2.3ORACLE的完整例JobSal
5.2.3ORACLE的完整例CREATETRIGGERUPDATE_SALBEFOREINSERTORUPDATEOFFOREACHROWIF :new.sal< :new.Sal:=2800
Sal,PosONTeacherENDIF 5.2.3ORACLE的完整来实现。所谓数据库触发器,就是一类靠驱动的特殊过程,一旦动激活相应的触发子,在层进行集中的完整性控制。定义数据库触发器的语句是CREATEORRECETRIGGER。 第五章数据库保 5.3并发控 5.3并发控共享共享串 并
5.3.1并发控制概BEGINBEGIN 5.3.1并发控制概BEGINBEGINTRANSACTION事务通常是以BEGINTRANSACTION开始,以COMMIT或 5.3.1并发控制概 5.3.1并发控制概性性及使用的数据对并发的其他事务是的,并发执行的各个事 5.3.1并发控制概
例如,在该系统中的一个活动序列①甲售票员读出某航班的机票余额A,设②乙售票员读出同一航班的机票余额A,也为←④乙售票点也卖出一张机票,修改机票余额A←A-1,所以A=15,把A 5.3.1并发控制概
读t2读 tt 例子
t4更新图5-4图5-4 5.3.1并发控制概不可重复读是指事务 事务 事务 务
回写读读图5-5图5-5 5.3.1并发控制概事务1按一定条件从数据库中某些数据再次按相同条件数据时,发现某些记录神密地 5.3.1并发控制概盘,事务
读读C←C写回C恢复为
据B
读 5.3.2并发操作的调个是不正确的呢?串行性(serializability)是并行事务正确性的唯一准则。 5.3.2并发操作的调
AAB写回
BBA写回读A←B读A←B写回读B←A写回图5-7图5-75.3.2并发操作的调度5.3.2并发操作的调度以是错误的调度。(d)中两个事务也是交错执行的,由于其执行结果与串行 读读 读读A←B写回A←B写回读A←B写回A←B写回读B←A写回读B←A写回B←A写回图5-7图5-7 5.3.2并发操作的调 从理论上讲,在某一事务执行时其他事务执行的调度策略 封锁封锁 DBMS通常提供了多种类型的。一个事务对某个数据对象加锁后究竟拥有什么样的控制是由的类型决定的。基本的类型有两
T和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。配合适当的协议,这就可以保证其他事务在T释放A上的锁之前不能再和修改A。 XS-XNNYSNYY-YYY在图58的类型相容矩阵的XS-XNNYSNYY-YYYT2
图5-图5- 类型的相容矩 粒度与系统的并发度和并发控制的开销密切相关。的粒度越大,系统中能够被的对象就越少,并发度也就越小,但同时系统开销也越小;相反,的粒度越小,并发度越高,但系统开 因此,如果在一个系统中同时存在不同大小的单元供不同的事务选择使用是比较理想的。而选择同时考虑锁机构和与进行最优的效果可以以关系为库为;而对于一个处理少量元组的元组为单位以提高并发度。 修改、不可重复读和读“脏”数据。三级协议分别在不同程度 1级协议的内容是:事务T在修改数据R之前必须先对其加 1
tt3
Xlock读 A←写回
A
Xlock
Unlock
Xlock读5 A←A-1UnlockA5图5-9图5-9 2
由于读完
Xlock读C←写回t
C⌒CS
Slock…放S锁,所 4它不能保 4可重复读
3UnlockC
…C⌒C Xlock读图5-10图5-10 3级协议的内容是:1级协议加上事务T在数据R之3级协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。例如图5-11使用3级协议解决了图5-6中的不
封封 SlockSlock读
ASAB⌒BSB
Xlockt3读读UnlockAUnlock
B
……图5-11图5-11 Xlock读写回 表5-6表5-6不同级别 XS操作操作复√√√√√√√√√√√√√√√√ 据的,而且②在释放一个之后,事务不再获得任何其他封 SlockA….SlockB…XlockSlockA….SlockB…XlockC…UnlockA….UnlockB…UnlockC
SlockA…UnlockSlockA…UnlockA…SlockB…XlockC…UnlockC…UnlockB
tSlockt读 Y←BXlock3 3UnlockUnlock
Slockt读 tY←BUnlockBXlock 图5-3图5-3写回UnlockSlockSlock………Slock读Y←XlockUnlockBUnlockSlock………Slock读Y←UnlockXlock写回Unlock
5.3.45.3.4
5.3.4 •Xlock••Unlock•••
•Xlock •Xlock••R•Unlock
•••Slock•••
R R⌒•
Xlock ••••••Slock•••••避免活锁的简单方法是采用先来先服务的策略。当多个事务请求同一数据对象时,子系统按请求的先后次序对这些事务排队,该数据对象上5.3.4如果事务T1了数据A,事务T2了数据B。之后T1又申请数据B,因T2已Xlock••Xlock•••
XlockXlockXlock 图5-14 了A,T2也只能等待T1 能结束,形成死锁。如图5-14图5-14
Xlock••
5.3.4死锁和活
在数据库中,产生死锁的原因是两个或多个事务都已了一些数据对象,然后又都请求对已为其他事务的数据对象加锁,从而出现死等待。防止死锁 5.3.4死锁和活①一①一 一次法虽然可以有效地防止死锁的发生,但也存在问题。第一,一次就将以后要用到的全部数据加锁,势必扩大了的范围,从而降低了系统的并发度。第二,数据库中数据是不断变化的,原来不要求的数据,在执行过程中可能会变成对象,所以很难事先精确地确定每个 要的数据对象,只能采取扩大范围,将事务在执行过程中可能要的数据对象 5.3.4死锁和活②顺②顺 顺序法同样可以有效地防止死锁,但也同样存在问题。第一,数据库系统中可的数据对象极其众多,并且随数据的插入、删除等操作而不断地变化,要这样极多而且变化的资源的顺序非常,成本很高。,事务的请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要哪些对象,因此也就很难按规定的顺序去施加。例如,规定数据对象的顺序为A,B,C,D,E。事务T3起初要求数据对 5.3.4死锁和活 5.3.5ORACLE的并发控
5.3.5T1SX—SYNYNNYXNNNNNYYNYYYYNNYYNYNT1SX—SYNYNNYXNNNNNYYNYYYYNNYYNYNNYNNY—YYYYYY 图5-15图5-15ORACLE 5.3.5ORACLE的并发控 问 5.3.5ORACLE的并发控
5.3.5ORACLE的并发控 不同级别的协议提供不同的数据一致性保证,提供不同对数据对象施加,会带来活锁和死锁问题, 5.45.45.4恢复第五章数据库保 5.4恢恢
5.4.1恢复的原 5.4.1恢复的原
5.4.1恢复的原出、了某些完整性限制、某些应用程序的错误以及并行事务发 5.4.1恢复的原 5.4.1恢复的原 5.4.1恢复的原 5.4.1恢复的原 5.4.2恢复的实现技 常在一个数据库系统中,这两种方法是一起 5.4.2恢复的实现技 5.4.2恢复的实现技术 TT的所有更新事务,或根据日志文件(logfile)将这些事务对数据库重新图5-165.4.2恢复的实现技术5.4.2.1 态态 5.4.2恢复的实现技术5.4.2.1 态转转 5.4恢 5.4.2恢复的实现技5.4.2.15.4.2.15.4.2.1表5-7转储状静海量动态海量静态海量增量动态增量静态增量5.4恢 5.4.2恢复的实现技5.4恢 5.4.2恢复的实现技5.4.2.2登记日志文件(Jogging5.4恢 5.4.2恢复的实现技5.4.2.2登记日志文件(Jogging
图5-17图5-175.4恢 5.4.2恢复的实现技5.4.2.2登记日志文件(Jogging5.4恢 5.4.2恢复的实现技5.4.2.2登记日志文件(Jogging5.4恢 5.4.2恢复的实现技5.4.2.3技术也不一样。①反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新5.4恢 5.4.2恢复的实现技重做已完成的事务。具体做法如下。 5.4恢 5.4.2恢复的实现技5.4.2.3 5.4恢 5.4.2恢复的实现技
5.4.2.3 5.4恢 5.4.3ORACLE的恢复技 5.4.3ORACLE的恢复技在ORACLE5中,日志文件以块为单位,ORACLE将更新前的旧值与值的日志文件称为数据库前象文件(beforeimage,简称BI文件),记录数据库更新后的新值的日志文件称为数据库的后象文件(afterimage,简称AI文必需的。而AI文件的作用仅是尽可能地将数据库向前推进,减少必须重 5.4.3ORACLE的恢复技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂企业食堂错峰就餐制度
- 教案里面的课程设计
- 招投标管理制度
- 教材 学前手工课程设计
- 幼儿入园安全协议书
- 教师素养课程设计
- 教师招聘英语课程设计
- 教师培训的整体课程设计
- 教师个人课程设计
- 美甲拍摄技巧课程设计
- 七年级数学分层教学实施方案
- 人民医院卫生工作制度(管理规范10篇)
- 奖牌制作施工方案
- 房屋整改方案
- 2024-2030年中国地铁广告行业市场现状供需分析及投资评估规划分析研究报告
- TBIA 7-2022 骨科疾病诊疗数据集-机器人辅助全膝关节置换
- 职业技术学院《老年心理学基础》课程标准
- 2024至2030年中国医疗卫生行业分析及发展预测报告
- 凤兮凰兮(2022年山东枣庄中考语文试卷记叙文阅读题及答案)
- 员工入职审批表
- 现代设施农业技术与应用考核试卷
评论
0/150
提交评论