您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第四章-数据库的安全性与完整性本章讨论数据库的安全性和完整性保
第四章数据库的安全性与完整性本章讨论数据库的安全性和完整性保护问题。首先,要明确‘安全性’和‘完整性’两个词的含义。安全性:防范对数据库的非授权的存取修改和恶意侵害。完整性:语义完整性:要求数据库始终满足确定的语义约束。例如满足‘企业工资总额是各员工工资的总和’。事务完整性:并发控制和系统恢复(第13,14章详述)由于安全性(由用户的数据库账号密码和操作权限来表示)和完整性(由完整性约束来表示)的控制信息存储在数据字典中,所以数据库的安全性和完整性由DBMS和DBA共同来确保。下边,我们分别讨论安全性和完整性。第一节安全性第二节完整性D第一节安全性数据库的安全性旨在保证数据库的任何部分都不受到恶意侵害和未经授权的存取和修改。DBMS和DBA需要考虑以下三个问题:1.用户权限的分配:用户只能在指定范围内执行允许的操作;2.系统保护机制:检查用户进入数据库的权限并记录其操作序列;3.统计数据库的管理:防止用统计(综合)数据推导微数据。计算机系统和数据库安全性还包括数据加密等重要技术。这种技术研究如何保护在通信系统传递的、在数据库存储的机密数据,以及相关的安全机制问题。D1接下页一.数据库安全性与数据库管理员(DBA)DBA是数据库和数据库管理系统具最高权威的管理员,拥有的系统帐号具有最高的权限,能为所有用户建立和撤消帐号,包括初始口令的形成、权限的分配和调整。所有用户(包括DBA)的身份以其帐号和口令标志。DBA指定自己的工作用机,有助于防范其特殊口令的外泄和黑客攻击。识别用户身份还可使用各种物理验证手段,如钥匙软磁盘、IC卡和指纹识别设备等。为了保证数据库安全性,DBA必须在充分认识DBMS安全机制的基础上,制定相应的安全管理规划。D11接下页二.系统保护机制为了制止非授权用户对数据库的访问,也为了约束授权用户对数据库访问的范围和方式,DBMS必须具备如下的保护机制:用户帐号口令机制用户只有向DBA申请到帐号及其初始口令,才取得进入数据库的合法身份。用户身份的识别DBMS依靠帐号和口令的对应来识别用户身份的合法性。全体用户的帐号口令储存在某个系统文件中,DBMS采用安全技术保护该文件,免受人为或非人为的破坏。用户的操作信息存档用户在工作过程中,其使用的终端编号及其操作要求的时间序列均被保存一段时候作为安全档案备查。DBA根据用户的实际需要授予适当的数据库使用权。D12接下页三.授权机制授权机制的功能是为用户授予和撤消数据库操作权限。下边以关系DBMS为例讨论授权机制。有两极权限:(1)用户级权限::DBA授予每个用户特定权限,是对用户访问整个数据库权限的限制,包括:创建关系create,创建视图createview,增删属性alter,增删关系或视图drop,更新元组modify,查询数据库select。(2)关系级权限:DBA授予每个用户与具体关系视图有关的权限.是对用户访问关系视图权限的限制。为实现对关系级权限的授予和撤消,每一关系都具有一个所有者即创建该关系的用户,他具有对该关系的所有权限并可将权利转授他人。SQL语言的关系级权限包括:查询关系select,更新关系modify,修改关系模式alter关系所有者可通过视图机制把关系的部分访问权授予他人一个用户的关系级权限和必须和他的用户级权限一致。D13接下页D14四.统计数据库的安全性统计数据库包含两类数据,第一类是微数据,即描述应用领域的实体、概念或事件的数据;第二类是统计(综合)数据,即对部分微数据进行综合处理的计算结果。考虑统计数据库的安全性,目的是防止用户访问或推导出微数据。1.禁止用户存取关系个别元组的详细信息,只允许他们执行次数控制的统计查询操作,即用统计函数操作数据库的某个子集合,从而获得某些宏观统计数据,统计包括:数数;求和;求最小;求最大;求均值;求标准方查。2.防止由统计数据推导出微数据,例如设置下列障碍:(1)对统计查询结果大小加以限制在某一范围内;(2)禁止在相同的元组集合上重复执行一系列统计查询;(3)在统计查询结果中加进噪声,为微数据的恢复造成困难。第二节完整性数据库完整性包括语义完整性和事务完整性两个方面,后者包括并发控制和系统恢复,留在第十三、十四章讨论,前者指的是数据库必须始终满足确定的语义约束,本节讨论这个问题。语义完整性的目的是保证数据库语义正确,为达到这个目的,DBMS提供了约束定义机制和约束验证机制。一.完整性约束的类型二.显式约束的定义三.完整性约束的验证D2隐含约束固有约束关系关键字,实体完整性,关联完整性1NF的属性值是原子数据层次关键字根记录无父结点,非根记录的父结点唯一网状关键字,插入约束成员约束一.完整性约束的类型:1.数据模型确定的约束显式约束:显式定义数据库模式上的约束。显式定义的方法有两种:过程定义和断言定义。隐含约束:用DDL存储于数据字典的模式定义参数。固有约束:数据模型本身固有的约束,无须用DDL或显式定义。关系、层次和网状数据模型的隐含约束和固有约束的实例:D21接下页2.由应用确定的完整性约束(一般作为显式约束处理)(1)状态约束(静态约束)这是所有数据库状态必须满足的约束,包括:属性值域约束,例如性别属性的值域是{男,女}属性唯一性约束,若实体型的某属性子集被加以唯一性约束,则不允许该实体型有不同的实例在该属性子集上取相同的值。属性结构约束,规定属性是单值还是多值,是否允许取空值。联系结构约束,实体间联系的某些规定。超/子类约束其他的语义完整性约束(2)变迁约束(动态约束)这是指数据库在状态转化过程中必须满足的约束,通常用显示表示。例如,‘雇员年龄属性值的变动只允许增加’D211二显式约束的定义显式定义是指采用显式方式定义数据库模式上的约束。显式定义的方法:1.过程定义方法:把显式约束作为一个过程,由程序员编码到数据库的更新事务中。完整性约束的验证程序由通用程序设计语言编制。缺点是当完整性约束变化时,相应事务须作修改。2.断言定义方法:建立约束库与验证子系统。验证子系统存取约束库的约束,应用到数据库更新事务中。3.触发器:该技术用于完整性被违背时及时执行相应措施。触发条件以断言形式定义,动作用过程形式定义。D22三.完整性约束的验证D23约束类型建立方式存储位置关系更新时验证方式隐含约束建立模式时DBMS的读出约束并验证用DDL说明数据字典中断言定义的用约束定义约束库同上显式约束语言定义过程定义的过程编码事务程序执行事务程序显式约束调用验证过程固有约束DBMS本身所固有由DBMS自动完成
本文标题:第四章-数据库的安全性与完整性本章讨论数据库的安全性和完整性保
链接地址:https://www.777doc.com/doc-5423706 .html