您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 33信息安全技术11章1
第11章数据库系统的安全11.1数据库系统简介11.1数据库的基本概念下面先介绍一些数据库员常用的术语和基本概念。11.1.1数据数据(Data)是描述事物的符号记录。数字、文字、声音、图形、图像等都是数据,用数据描述的现实世界中的对象可以是实在的事物。如描述一个学生的情况可用学号、姓名、性别、年龄、系别、入学时间等,如下:(80102,赵文,男,22,计算机系,2003)这里的学生记录就是数据。对于这条记录,若了解其含义,将得到如下信息:赵文是个大学生,男,今年22岁,2003年考入计算机系;若不了解其含义,则无法得到上述信息。可见,数据的形式本身还不能完全表达其内容,需要经过语义解释。因此数据和关于数据的解释是不可分的,数据的解释是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。11.1.2数据库数据库(DataBase,DB)是长期存储在计算机内有组织的、共享的数据的集合。数据库中的数据按一定的数据模型组织、描述和存储。它可以供用户共享,具有尽可能小的冗余度和较高的数据独立性,使得数据存储最优,数据最容易操作,并且具有完善的自我保护能力和数据恢复能力。数据库的特点如下:(1)集成性:把某特定应用环境中的各种应用相关的数据及数据之间的联系全部集中地并按照一定的结构形式进行存储,或者说,把数据库看成若干个单个性质不同的数据文件的联合和统一的数据整体。(2)共享性:数据库的不同块中的数据可为多个不同的用户所共享,即多个不同的用户,使用多种不同的语言,为了不同的应用目的,同时存取数据库,甚至同时存取同—块数据,即多用户系统。11.1.3数据库管理系统数据库管理系统(DataBaseManagementSystem,DBMS)是位于用户与操作系统之间的一层数据管理软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。DBMs就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来了很大的方便。它的主要功能包括以下几个方面:1.数据定义DBMs提供数据定义语言DDL(DataDefineLanguage),用户通过它可以方面地对数据库中的数据对象进行定义。例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义的完整性规则。2.数据操纵DBMS提供数据操纵语言DML(DataManipulationLanguge)实现对数据库的基本操作,包括检索、插入、修改和删除等。SQL就是DML的一种。3.数据库运行管理数据库在建立、运行和维护时内数据库管理系统统——管理和统一控制。DBMS据的安全性控制、数据的完整性控制、多用户环境下的并发控制及数据库的恢复,据的正确有效和数据库系统的正常运行。4.数据库的建立和维护功能该项功能包括数据库的初始数据的装入、转换.数据库的转储、恢复、重组织,系统性能监视、分析等功能。这些功能通常是由一些实用程序完成的。5.数据通信DBMs提供与其他软件系统进行通信的功能,实现用J:’程序与DBM3之间的通信,通常与操作系统协调完成。11.1.4数据库系统数据库系统(DataBaseSystem,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成(见图1—5)。11.1.5用户用户(User)是指使用数据库的人,即对数据库的存储、维护和检索等操作。用户大致可分为终端用户、应用程序贝和数据库管理员。1.终端用户终端用户(EndUser)一般为非计算机专业人员。2.应用程序员应用程序员(ApplicationProgrammer)负责为终端用户设计和编制应用程序,用户对数据库进行存取操作。3.数据库管理员数据库管理员(DataBaseAdministrator,DBA)是数据库所属单位的代表。一个单位决定开发一个数据库系统时,首先就应确定DBA的人选。DBA不仅应当熟悉系统软件,还应熟悉本单位的业务工作。DBA应自始至终参加整个数据库系统的研制开发工作,开发成功后,DBA将全面负责数据库系统的“管理、维护和正常使用”。其职责如下:(1)参与数据库设计的全过程,决定数据库的结构和内容。(2)定义数据的安全性和完整性,负责分配用户对数据库的使用权限和口令管理。(3)监督控制数据库的使用和运行,改进和重新构造数据库系统。当数据库受到破坏时,应负责恢复数据库:当数据库的结构需要改变时.完成对数据结构的修改。因此,DBA不仅要有较高的技术专长和较深的资历,而且应具有了解和阐明管理要求的能力,特别对于大型数据库系统,DBA极为重要。对于常见的微机数据库系统,通常只有一个用户,常常不设DBA,DBA的职责由应用程序员或终端用户代替。11.1.6数据模型数据模型(DataModel)是专门用来抽象、表示和处理现实世界中的数据和信息的工具。计算机系统是不能直接处理现实世界的,现实世界只有数据化后,才能内计算机系统来处理这些代表现实世界的数据。为了把现实世界的具体事物及事物之间的联系转换成计算机能够处理的数据,必须用某种数据模型来抽象和描述这些数据。数据模型是数据库系统的核心。通俗地讲,数据模型是现实世界的模拟。观点对数据和信息建模,强调其语义表达能力。概念应该简单、清晰、易于用户理解,它是对现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一类模型中最著名的是“实体联系模型”。第二类模型是数据模型,主要包括网状模型、层次模型和关系模型等.它是核计算机系统的观点对数据建模,是直接面向数据库的逻辑结构,是对现实世界的第二层抽象。这类模型直接与DBMs有关,称为“逻辑数据模型”,一般又称为“结构数据模型”。这类模型有严格的形式化定义,以便于在计算机系统中实现。它通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这种语言来定义、操纵数据库中的数据。数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。11.2数据库的安全性11.2.1数据库安全性概述为了保证数据库中数据的安全可靠和正确有效,DBMS必须提供一套有效的数据库安全保护措施,防止数据意外丢失和不一致数据的产生,以及当数据库遭受破坏后能迅速地恢复正常。DBMS对数据库的安全保护功能是通过四个方面来实现的,即安全控制、完整性控制、并发性控制和数据恢复。本章就是从这四个方面来介绍数据库的安全与保护功能,读者应掌握安全性(Security)、完整性(Integrity),并发控制(ConcurrentControl)和数据库恢复(Recovery)的含义,掌握这四个方面分别实现安全保护功能的方法。11.2.2用户标识和鉴别用户标识和鉴定(Identification&Authentication)是系统提供的员外层安全保护措施。只有在DBMS成功注册了的人员才是该数据库的用户,才能访问数据库。注册时,每个用户都有一个与其他用户不同的用户标识符。任何数据库用户要访问数据库时,都需提供自己的用户标识符。系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统将用户提供的身份标识与系统内部记录的合法用户标识进行核对,通过鉴定后才提供机器使用权。用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并存,以获得更强的安全性。标识和鉴定一个用户最常用的方法是用一个用户名或用户标识号来标明用户身份,系统鉴别此用户是否合法,若是,则可进入下一步的核实;若不是,则不能使用计算机。为了进一步核实用户,系统常常要求用户输人口令(password),然后系统核对口令以鉴别用户身份。为保密起见,口令由合法用户自己定义并可以随时变更。为防止口令被人窃取,不把口令的内容显示在屏幕上,而用字符“*”替代其内容。通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此还可以用更复杂的方法。例如,利用用户的个人特征。用户的个人特征包括指纹、签名、声波等。这些鉴别方法效果不错,但需要特殊的鉴别装置。还可以通过回答对随机数的运算结果表明用户身份。通常的做法是:每个用户都预先约定好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份。例如算法为“输出结果=随机数立方的后两位”出现随机数12,则用户身份识别码为28。11.2.3存储控制用户标识和鉴定解决了用户是否合法的问题,但是合法用户的存取权限是不相同的。在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。存取权限是由两个要素组成的:数据对象和操作类型。定义一个用户的存取权限就是定义这个用户可以在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权(Authorization)。这些授权定义经过编译后存放在数据字典中。对于获得上机权后又进一步发出存取数据库操作的用户,DBMS查找数据字典,根据其存取权限对操作的合法性进行捡查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作,这就是存取控制。在关系数据库系统中,数据库管理员DBA可以把建立、修改基本表的权限授予用户,用户一旦获得此权限后可建立和修改基本表,同时还可创建所建表的索引和视图。因此,关系数据库系统中存取控制的数据对象不仅有数据本身,如表、属性列等,还有模式、外模式、内模式等数据字典中的内容,如表11.1所示。表11.1关系数据库系统中的存取权限数据对象操作类型模式模式外模式内模式建立、修改、检索建立、修改、检索建立、修改、检索数据表同性列查找、插入、修改、检索查找、插入、修改、检索授权编译程序和合法权检查机制一起组成了安全性子系统。表11.2就是一个授权表的例子。用户名数据对象名允许的操作类型李新关系sSELECT李新关系scINSERT王燕关系scSELECT王燕关系sALL王燕关系cALL张山关系scUPDATA衡量授权机制是否灵活的一个重要指标是授权粒度,即可以定义的数据对象的范围。授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小;授权子系统就越灵活。在关系数据库系统中,实体以及实体间的联系都用单一的数据结构即表来表示;表由行和列组成,所以在关系数据库中,授权的数据对象粒度包括表、属性列、行(记录)。表11.2就是一个授权粒度很粗的表,它只能对整个关系授权,如用户李新可以查询s关系以及向sc关系中插入新记录;用户王燕拥有对关系s和c的一切权限,以及对sc的SELECT权限;用户张山拥有对关系sc的UPDATE权。表11.3中的授权表则精细到可以对属性列授权,用户王燕拥有对关系s和c的一切权限,但只能查询sc关系和修改sc关系的score屑性,李新只能查询sc关系的snum属性和Cnum属性。表11.2和表11.3中的授权定义均独立于数据位,用户能否执行某个操作的数据内容无关。而表11.4中的授权表则不但可以对属性列授权;还可以提供与数值有关的授权,即可以对关系中的一组记录授权。比如,张山只能查询男学生的数据。提供与数据有关的授权,要求系统必须能支持存取谓词。可见,授权粒度越细,授权子系统就越灵活.能够提供的安全性就越完善。但另一方面,因数据字典变大变复杂,系统定义与检查权限的开销也会相应地增大。DBMS一般都提供了存取控制语句进行存取权限的定义。例如,SQL语言就提供了GRANT和REVOKE语句实现授权和收回所授权力。3.视图机制进行存取权限的控制,不仅可以通过授权与收回权力来实现,还可以通过定义用户的外模式来提供一定的安全保护功能。在关系数据库系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。但视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求,因此,在实际应用中通常是视图机制与授权机制配合
本文标题:33信息安全技术11章1
链接地址:https://www.777doc.com/doc-5273482 .html