数据库的安全性完整性并发控制与恢复.docx
- 文档编号:10372638
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:22
- 大小:28.41KB
数据库的安全性完整性并发控制与恢复.docx
《数据库的安全性完整性并发控制与恢复.docx》由会员分享,可在线阅读,更多相关《数据库的安全性完整性并发控制与恢复.docx(22页珍藏版)》请在冰豆网上搜索。
数据库的安全性完整性并发控制与恢复
数据库的安全性完整性并发控制与恢复
数据库的安全性、完整性、并发操纵和复原
为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据爱护功能。
数据爱护也为数据操纵,要紧包括数据库的安全性、完整性、并发操纵和复原。
一、数据库的安全性
数据库的安全性是指爱护数据库以防止不合法的使用所造成的数据泄露、更换或破坏。
运算机系统都有那个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。
在一样的运算机系统中,安全措施是一级一级设置的。
在DB储备这一级可采纳密码技术,当物理储备设备失窃后,它起到保密作用。
在数据库系统这一级中提供两种操纵:
用户标识和鉴定,数据存取操纵。
在ORACLE多用户数据库系统中,安全机制作以下工作:
●防止非授权的数据库存取;
●防止非授权的对模式对象的存取;
●操纵磁盘使用;
●操纵系统资源使用;
●审计用户动作。
数据库安全可分为二类:
系统安全性和数据安全性。
系统安全性是指在系统级操纵数据库的存取和使用的机制,包含:
●有效的用户名/口令的组合;
●一个用户是否授权可连接数据库;
●用户对象可用的磁盘空间的数量;
●用户的资源限制;
●数据库审计是否是有效的;
●用户可执行哪些系统操作。
数据安全性是指在对象级操纵数据库的存取和使用的机制,包含:
●哪些用户可存取一指定的模式对象及在对象上承诺作哪些操作类型。
在ORACLE服务器上提供了一种任意存取操纵,是一种基于特权限制信息存取的方法。
用户要存取一对象必须有相应的特权授给该用户。
已授权的用户可任意地可将它授权给其它用户,由于那个缘故,这种安全性类型叫做任意型。
ORACLE利用以下机制治理数据库安全性:
●数据库用户和模式;
●特权;
●角色;
●储备设置和空间份额;
●资源限制;
●审计。
1.数据库的存取操纵
ORACLE爱护信息的方法采纳任意存取操纵来操纵全部用户对命名对象的存取。
用户对对象的存取受特权操纵。
一种特权是存取一命名对象的许可,为一种规定格式。
ORACLE使用多种不同的机制治理数据库安全性,其中有两种机制:
模式和用户。
模式为模式对象的集合,模式对象如表、视图、过程和包等。
第一数据库有一组模式。
每一ORACLE数据库有一组合法的用户,可存取一数据库,可运行一数据库应用和使用该用户各连接到定义该用户的数据库。
当建立一数据库用户时,对该用户建立一个相应的模式,模式名与用户名相同。
一旦用户连接一数据库,该用户就可存取相应模式中的全部对象,一个用户仅与同名的模式相联系,因此用户和模式是类似的。
用户的存取权益受用户安全域的设置所操纵,在建立一个数据库的新用户或更换一已有用户时,安全治理员对用户安全域有以下决策:
●是由数据库系统依旧由操作系统爱护用户授权信息。
●设置用户的缺省表空间和临时表空间。
●列出用户可存的表空间和在表空间中可使用空间份额。
●设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。
●规定用户具有的特权和角色,可存取相应的对象。
每一个用户有一个安全域,它是一组特性,可决定以下内容:
●用户可用的特权和角色;
●用户可用的表空间的份额;
●用户的系统资源限制。
1)用户鉴别:
为了防止非授权的数据库用户的使用,ORACLE提供二种确认方法
操作系统确认和相应的ORACLE数据库确认。
假如操作系统承诺,ORACLE可使用操作系统所爱护的信息来鉴定用户。
由操作系统鉴定用户的优点是:
●用户可更方便地连接到ORACLE,不需要指定用户名和口令。
●对用户授权的操纵集中在操作系统,ORACLE不需要储备和治理用户口令。
然而用户名在数据库中仍旧要爱护。
●在数据库中的用户名项和操作系统审计跟踪相对应。
ORACLE数据库方式的用户确认:
ORACLE利用储备在数据库中的信息可鉴定试图接到数据库的一用户,这种鉴别方法仅当操作系统不能用于数据库用户鉴别时才使用。
当用户使用一ORACLE数据库时执行用户鉴别。
每个用户在建立时有一个口令,用户口令在建立对数据库连接时使用,以防止对数据库非授权的使用。
用户的口令以密码的格式储备在数据库数据字典中,用户可随时修改其口令。
2)用户的表空间设置和定额
关于表空间的使用有几种设置选择:
●用户的缺省表空间;
●用户的临时表空间;
●数据库表空间的空间使用定额。
3)用户资源限制和环境文件
用户可用的各种系统资源总量的限制是用户安全域的部分。
利用显式地设置资源限制;安全治理员可防止用户无操纵地消耗宝贵的系统资源。
资源限制是由环境文件治理。
一个环境文件是命名的一组赋给用户的资源限制。
另外ORACLE为安全治理员在数据库级提供使能或使不能实施环境文件资源限制的选择。
ORACLE可限制几种类型的系统资源的使用,每种资源可在会话级、调用级或两者上操纵。
在会话级:
每一次用户连接到一数据库,建立一会话。
每一个会话在执行SQL语句的运算机上耗费CPU时刻和内存量进行限制。
对ORACLE的几种资源限制可在会话级上设置。
假如会话级资源限制被超过,当前语句被中止〔回滚〕,并返回指明会话限制已达到的信息。
现在,当前事务中所有之前执行的语句不受阻碍,现在仅可作COMMIT、ROLLBACK或删除对数据库的连接等操作,进行其它操作都将出错。
在调用级:
在SQL语句执行时,处理该语句有好几步,为了防止过多地调用系统,ORACLE在调用级可设置几种资源限制。
假如调用级的资源限制被超过,语句处理被停止,该语句被回滚,并返回一错误。
然而当前事务的已执行所用语句不受阻碍,用户会话连续连接。
有以下资源限制:
●为了防止无操纵地使用CPU时刻,ORACLE可限制每次ORACLE调用的CPU时刻和在一次会话期间ORACLE调用所使用的CPU的时刻,以0.01秒为单位。
●为了防止过多的I/O,ORACLE可限制每次调用和每次会话的逻辑数据块读的数目。
●ORACLE在会话级还提供其它几种资源限制。
每个用户的并行会话数的限制;
会话闲暇时刻的限制,假如一次会话的ORACLE调用之间时刻达到该闲暇时刻,当前事务被回滚,会话被中止,会话资源返回给系统;
每次会话可消逝时刻的限制,假如一次会话期间超过可消逝时刻的限制,当前事务被回滚,会话被删除,该会话的资源被开释;
每次会话的专用SGA空间量的限制。
用户环境文件:
用户环境文件是指定资源限制的命名集,可赋给ORACLE数据库的有效的用户。
利用用户环境文件可容易地治理资源限制。
要使用用户环境文件,第一应将数据库中的用户分类,决定在数据库中全部用户类型需要多少种用户环境文件。
在建立环境文件之前,要决定每一种资源限制的值。
例如一类用户通常不执行大量逻辑数据块读,那就可将LOGICAL-READS-PER-SESSION和LOGICAL-READS-PER-CALL设置相应的值。
在许多情形中决定一用户的环境文件的合适资源限制的最好的方法是收集每种资源使用的历史信息。
2.特权和角色
1)特权:
特权是执行一种专门类型的SQL语句或存取另一用户的对象的权力。
有两类特权:
系统特权和对象特权。
系统特权:
是执行一处专门动作或者在对象类型上执行一种专门动作的权益。
ORACLE有60多种不同系统特权,每一种系统承诺用户执行一种专门的数据库操作或一类数据库操作.
系统特权可授权给用户或角色,一样,系统特权全治理人员和应用开发人员,终端用户不需要这些相关功能.授权给一用户的系统特权并具有该系统特权授权给其他用户或角色.反之,可从那些被授权的用户或角色回收系统特权.
对象特权:
在指定的表、视图、序列、过程、函数或包上执行专门动作的权益。
关于不同类型的对象,有不同类型的对象特权。
关于有些模式对象,如集合、索引、触发器、数据库链没有相关的对象特权,它们由系统特权操纵。
关于包含在某用户名的模式中的对象,该用户对这些对象自动地具有全部对象特权,即模式的持有者对模式中的对象具有全部对象特权。
这些对象的持有者可将这些对象上的任何对象特权可授权给其他用户。
假如被授者包含有GRANTOPTION授权,那么该被授者也可将其权益再授权给其他用户。
2)角色:
为相关特权的命名组,可授权给用户和角色。
ORACEL利用角色更容易地进行特权治理。
有以下优点:
●减少特权治理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。
●动态特权治理,假如一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。
●特权的选择可用性,授权给用户的角色可选择地使其使能〔可用〕或使不能〔不可用〕。
●应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或不能。
●专门的应用安全性,角色使用可由口令爱护,应用可提供正确的口令使用权角色使能,达到专用的应用安全性。
因用户不知其口令,不能使角色使能。
一样,建立角色服务于两个目的:
为数据库应用治理特权和为用户组治理特权。
相应的角色称为应用角色和用户角色。
应用角色是授予的运行一数据库应用所需的全部特权。
一个应用角色可授给其它角色或指定用户。
一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。
用户角色是为具有公布特权需求的一组数据库用户而建立的。
用户特权治理是受应用角色或特权授权给用户角色所操纵,然后将用户角色授权给相应的用户。
数据库角色包含以下功能:
●一个角色可授予系统特权或对象特权。
●一个角色可授权给其它角色,但不能循环授权。
●任何角色可授权给任何数据库用户。
●授权给一用户的每一角色能够是使能的或者使不能的。
一个用户的安全域仅包含当前对该用户使能的全部角色的特权。
●一个间接授权角色〔授权给另一角色的角色〕对一用户可显式地使其能或使不能。
在一个数据库中,每一个角色名必须唯独。
角色名与用户不同,角色不包含在任何模式中,因此建立一角色的用户被删除时不阻碍该角色。
ORACLE为了提供与往常版本的兼容性,预定义以下角色:
CONNENT、RESOURCE、DBA、EXP-FULL-DATABASE和IMP-FULL-DATABASE。
3.审计
审计是对选定的用户动作的监控和记录,通常用于:
●审查可疑的活动。
例如:
数据被非授权用户所删除,现在安全治理员可决定对该数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。
●监视和收集关于指定数据库活动的数据。
例如:
DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。
ORACLE支持三种审计类型:
●语句审计,对某种类型的SQL语句审计,不指定结构或对象。
●特权审计,对执行相应动作的系统特权的使用审计。
●对象审计,对一专门模式对象上的指定语句的审计。
ORACLE所承诺的审计选择限于以下方面:
●审计语句的成功执行、不成功执行,或者其两者。
●对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
●对全部用户或指定用户的活动的审计。
当数据库的审计是使能的,在语句执行时期产生审计记录。
审计记录包含有审计的操作、用户执行的操作、操作的日期和时刻等信息。
审计记录可存在数据字典表〔称为审计记录〕或操作系统审计记录中。
数据库审计记录是在SYS模式的AUD$表中。
二、数据完整性
它是指数据的正确性和相容性。
数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规那么。
ORACLE应用于关系数据库的表的数据完整性有以下类型:
●在插入或修改表的行时承诺不承诺包含有空值的列,称为空与非空规那么。
●唯独列值规那么,承诺插入或修改的表行在该列上的值唯独。
●引用完整性规那么,同关系模型定义
●用户对定义的规那么,为复杂性完整性检查。
ORACLE承诺定义和实施上述每一种类型的数据完整性规那么,这些规那么可用完整性约束和数据库触发器定义。
完整性约束,是对表的列定义一规那么的说明性方法。
数据库触发器,是使用非说明方法实施完整性规那么,利用数据库触发器〔储备的数据库过程〕可定义和实施任何类型的完整性规那么。
1.完整性约束
ORACLE利用完整性约束机制防止无效的数据进入数据库的基表,假如任何DML执行结果破坏完整性约束,该语句被回滚并返回一上个错误。
ORACLE实现的完整性约束完全遵守ANSIX3。
135-1989和ISO9075-1989标准。
利用完整性约束实施数据完整性规那么有以下优点:
●定义或更换表时,不需要程序设计,便专门容易地编写程序并可排除程序性错误,其功能是由ORACLE操纵。
因此说明性完整性约束优于应用代码和数据库触发器。
●对表所定义的完整性约束是储备在数据字典中,因此由任何应用进入的数据都必须遵守与表相关联的完整性约束。
●具有最大的开发能力。
当由完整性约束所实施的事务规那么改变时,治理员只需改变完整性约束的定义,所有应用自动地遵守所修改的约束。
●由于完整性约束储备在数据字典中,数据库应用可利用这些信息,在SQL语句执行之前或由ORACLE检查之前,就可赶忙反馈信息。
●由于完整性约束说明的语义是清晰地定义,关于每一指定说明规那么可实现性能优化。
●由于完整性约束可临时地使不能,以致在装入大量数据时可幸免约束检索的开销。
当数据库装入完成时,完整性约束可容易地使其能,任何破坏完整性约束的任何新行在例外表中列出。
ORACLE的DBA和应用开始者对列的值输入可使用的完整性约束有以下类型:
●NOTNULL约束:
假如在表的一列的值不承诺为空,那么需在该列指定NOTNULL约束。
●UNIQUE码约束:
在表指定的列或组列上不承诺两行是具有重复值时,那么需要该列或组列上指定UNIQUE码完整性约束。
在UNIQUE码约束定义中的列或组列称为唯一码。
所有唯独完整性约束是用索引方法实施。
●PRIMARYKEY约束:
在数据库中每一个表可有一个PRIMARYKEY约束。
包含在PRIMARYKEY完整性约束的列或组列称为主码,每个表可有一个主码。
ORACLE使用索引实施PRIMARYKEY约束。
●FOREIGNKEY约束〔可称引用约束〕:
在关系数据库中表可通过公共列相关联,该规那么操纵必须爱护的列之间的关系。
包含在引用完整性约束定义的列或组列称为外来码。
由外来码所引用的表中的唯一码或方码,称为引用码。
包含有外来码的表称为子表或从属表。
由子表的外来码所引用的表称为双亲表或引用表。
假如对表的每一行,其外来码的值必须与主码中一值相匹配,那么需指定引用完整性约束。
●CHECK约束:
表的每行对一指定的条件必须是TRUE或未知,那么需在一列或列组上指定CHECK完整性约束。
假如在发出一个DML语句时,CHECK约束的条件运算得FALSE时,该语句被回滚。
2.数据库触发器
ORACLE承诺定义过程,当对相关的表作INSERT、UPDATE或DELETE语句时,这些过程被隐式地执行。
这些过程称为数据库触发器。
触发器类似于储备的过程,可包含SQL语句和PL/SQL语句,可调用其它的储备过程。
过程与触发器差别在于调用方法:
过程由用户或应用显式执行;而触发器是为一激发语句〔INSERT、UPDATE、DELETE〕发出进由ORACLE隐式地触发。
一个数据库应用可隐式地触发储备在数据库中多个触发器。
在许多情形中触发器补充ORACLE的标准功能,提供高度专用的数据库治理系统。
一样触发器用于:
●自动地生成导出列值。
●防止无效事务。
●实施复杂的安全审核。
●在分布式数据库中实施跨结点的引用完整性。
●实施复杂的事务规那么。
●提供透亮的事件记录。
●提供高级的审计。
●爱护同步的表副本。
●收集表存取的统计信息。
注意:
在ORACLE环境中利用ORACLE工具SQL*FORMS也可定义、储备和执行触发器,它作为由SQL*FORMS所开发有应用的一部分,它与在表上定义的数据库触发器有差别。
数据库触发器在表上定义,储备在相关的数据库中,在对该表发出IMSERT、UPDATE、DELETE语句时将引起数据库触发器的执行,不管是哪些用户或应用发出这些语句。
而SQL*FORMS的触发器是SQL*FORMS应用的组成,仅当在指定SQL*FORMS应用中执行指定触发器点时才激发该触发器。
一个触发器由三部分组成:
触发事件或语句、触发限制和触发器动作。
触发事件或语句是指引起激发触发器的SQL语句,可为对一指定表的INSERT、UNPDATE或DELETE语句。
触发限制是指定一个布尔表达式,当触发器激以时该布尔表达式是必须为真。
触发器作为过程,是PL/SQL块,当触发语句发出、触发限制运算为真时该过程被执行。
3.并发操纵
数据库是一个共享资源,可为多个应用程序所共享。
这些程序可串行运行,但在许多情形下,由于应用程序涉及的数据量可能专门大,常常会涉及输入/输出的交换。
为了有效地利用数据库资源,可能多个程序或一个程序的多个进程并行地运行,这确实是数据库的并行操作。
在多用户数据库环境中,多个用户程序可并行地存取数据库,假如不对并发操作进行操纵,会存取不正确的数据,或破坏数据库数据的一致性。
例:
在飞机票售票中,有两个订票员〔T1,T2〕对某航线〔A〕的机动性票作事务处理,操作过程如下图:
数据库中的A
1
1
1
1
0
0
T1
READA
A:
=A-1
WRITEA
T2
READA
A:
=A-1
WRITEA
T1工作区中的A
1
1
0
0
0
0
T2工作区中的A
1
1
0
0
0
第一T1读A,接着T2也读A。
然后T1将其工作区中的A减1,T2也采取同样动作,它们都得0值,最后分别将0值写回数据库。
在这过程中没有任何非法操作,但实际上多出一张机票。
这种情形称为数据库的不一致性,这种不一致性是由于并行操作而产生的。
所谓不一致,实际上是由于处理程序工作区中的数据与数据库中的数据不一致所造成的。
假如处理程序不对数据库中的数据进行修改,那么决可不能造成任何不一致。
另一方面,假如没有并行操作发生,那么这种临时的不一致也可不能造成什么问题。
数据不一致总是是由两个因素造成:
一是对数据的修改,二是并行操作的发生。
因此为了保持数据库的一致性,必须对并行操作进行操纵。
最常用的措施是对数据进行封锁。
1)数据库不一致的类型
●不一致性
在一事务期间,其它提交的或未提交事务的修改是明显的,以致由查询所返回的数据集不与任何点相一致。
●不可重复读
在一个事务范畴内,两个相同查询将返回不同数据,由于查询注意到其它提交事务的修改而引起。
●读脏数据
假如事务T1将一值〔A〕修改,然后事务T2读该值,在这之后T1由于某种缘故撤销对该值的修改,如此造成T2读取的值是脏的。
●丢失更换
在一事务中一修改重写另一事务的修改,如上述飞机票售票例子。
●破坏性的DDL操作
在一用户修改一表的数据时,另一用户同时更换或删除该表。
1)封锁
在多用户数据库中一样采纳某些数据封锁来解决并发操作中的数据一致性和完整性问题。
封锁是防止存取同一资源的用户之间破坏性的干扰的机制,该干扰是指不正确地修改数据或不正确地更换数据结构。
在多用户数据库中使用两种封锁:
排它〔专用〕封锁和共享封锁。
排它封锁禁止相关资源的共享,假如一事务以排它方式封锁一资源,仅仅该事务可更换该资源,直至开释排它封锁。
共享封锁承诺相关资源能够共享,几个用户可同时读同一数据,几个事务可在同一资源上猎取共享封锁。
共享封锁比排它封锁具有更高的数据并行性。
在多用户系统中使用封锁后会显现死锁,引起一些事务不能连续工作。
当两个或多个用户彼此等待所封锁数据时可发生死锁。
2)ORACLE多种一致性模型。
ORACLE利用事务和封锁机制提供数据并发存取和数据完整性。
在一事务内由语句猎取的全部封锁在事务期间被保持,防止其它并行事务的破坏性干扰。
一个事务的SQL语句所作的修改在它提交之后所启动的事务中才是可见的。
在一事务中由语句所猎取的全部封锁在该事务提交或回滚时被开释。
ORACLE在两个不同级上提供读一致性:
语句级读一致性和事务级一致性。
ORCLE总是实施语句级读一致性,保证单个查询所返回的数据与该查询开始时刻相一致。
因此一个查询从可不能看到在查询执行过程中提交的其它事务所作的任何修改。
为了实现语句级读一致性,在查询进入执行时期时,在凝视SCN的时候为止所提交的数据是有效的,而在语句执行开始之后其它事务提交的任何修改,查询将是看不到的。
ORACLE承诺选择实施事务级读一致性,它保证在同一事务内所有查询的数据
4)封锁机制
ORACLE自动地使用不同封锁类型来操纵数据的并行存取,防止用户之间的破坏性干扰。
ORACLE为一事务自动地封锁一资源以防止其它事务对同一资源的排它封锁。
在某种事件显现或事务不再需要该资源时自动地开释。
ORACLE将封锁分为以下类:
●数据封锁:
数据封锁爱护表数据,在多个用户并行存取数据时保证数据的完整性。
数据封锁防止相冲突的DML和DDL操作的破坏性干扰。
DML操作可在两个级猎取数据封锁:
指定行封锁和整个表封锁,在防止冲突的DDL操作时也需表封锁。
当行要被修改时,事务在该行猎取排它数据封锁。
表封锁能够有以下方式:
行共享、行排它、共享封锁、共享行排它和排它封锁。
●DDL封锁〔字典封锁〕
DDL封锁爱护模式对象〔如表〕的定义,DDL操作将阻碍对象,一个DDL语句隐式地提交一个事务。
当任何DDL事务需要时由ORACLE自动猎取字典封锁,用户不能显式地要求DDL封锁。
在DDL操作期间,被修改或引用的模式对象被封锁。
●内部封锁:
爱护内部数据库和内存结构,这些结构对用户是不可见的。
5)手工的数据封锁
以下情形承诺使用选择代替ORACLE缺省的封锁机制:
●应用需要事务级读一致或可重复读。
●应用需要一事务对一资源可排它存取,为了连续它的语句,具有对资源排它存取的事务不必等待其它事务完成。
ORACLE自动封锁可在二级被替代:
事务级各系统级。
●事务级:
包含以下SQL语句的事务替代ORACLE缺省封锁:
LOCKTABLE命令、SELECT…FORUPDATE命令、具有READONLY选项的SETTRANSACTIN命令。
由这些语句所获得的封锁在事务提交或回滚后所开释。
●系统级:
通过调整初始化参数SERIALIZABLE和REO-LOCKING,实例可用非缺省封锁启动。
该两参数据的缺省值为:
SERIALIZABLE=FALSE
ORW-LOCKING=ALWAYS
4.数据库后备和复原
当我们使用一个数据库时,总期望数据库的内容是可靠的、正确的,但由于运算机系统的故障〔硬件故障、软件故障、网络故障、进程故障和系统故障〕阻碍数据库系统的操作,阻碍数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,期望能重新建立一个完整的数据库,该处理称为数据库复原。
复原子系统是数据库治理系统的一个重要组成部分。
复原处理随所发生的故障类型所阻碍的结构而变化。
1)复原数据库所使用的结构
ORACLE数据库使用几种结构对可能故障来爱护数据:
数据库后备、日志、回滚段和操纵文件。
数据库后备是由构成ORACLE数据库的物理文件的操作系统后备所组成。
当介质故障时进行数据库复原,利用后备文件复原毁坏的数据文件或操纵文件。
日志,每一个ORACLE数据库实例都提供,记录数据库中所作的全部修改。
一个实例的日志至少由两个日志文件组成,当实例故障或介质故障时进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全性 完整性 并发 控制 恢复