版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库的安全性1 v计算机安全性概论计算机安全性概论 v数据库安全性控制数据库安全性控制 v视图机制视图机制 v审计(审计(AuditAudit) v数据加密数据加密 v统计安全性统计安全性 v小结小结 数据库的安全性2 数据库的特点之一是数据库的特点之一是DBMS提供统一的数提供统一的数 据保护功能来保证数据的安全性可靠性和据保护功能来保证数据的安全性可靠性和 正确有效,数据库的数据保护主要包括数正确有效,数据库的数据保护主要包括数 据的安全性和数据的完整性。这一章我们据的安全性和数据的完整性。这一章我们 讨论数据的安全性问题。讨论数据的安全性问题。 数据库的安全性3 数据安全性是指保护数据
2、库以防止不合法的使 用造成的数据泄露、更改或破坏。 数据库的安全性和计算机系统的安全性,包数据库的安全性和计算机系统的安全性,包 括操作系统、网络系统的安全性是紧密联系、括操作系统、网络系统的安全性是紧密联系、 相互支持的,因此在讨论数据库的安全性之前相互支持的,因此在讨论数据库的安全性之前 首先讨论一下计算机系统安全性问题。首先讨论一下计算机系统安全性问题。 数据库的安全性4 一、计算机系统的三类安全性问题一、计算机系统的三类安全性问题 计算机系统的安全性是指计算机系统建立和计算机系统的安全性是指计算机系统建立和 采取的各种安全保护措施,以保护计算机系统采取的各种安全保护措施,以保护计算机系
3、统 中的硬件、软件及数据,防止因偶然或恶意的中的硬件、软件及数据,防止因偶然或恶意的 原因使系统遭到破坏,数据遭到更改或泄露等。原因使系统遭到破坏,数据遭到更改或泄露等。 计算机系统的安全性问题可分为技术安全类、计算机系统的安全性问题可分为技术安全类、 管理安全类和政策法律类三类管理安全类和政策法律类三类 数据库的安全性5 v技术安全性技术安全性 是指计算机系统中采用具有一定安全性的是指计算机系统中采用具有一定安全性的 硬件、软件来实现对计算机系统及其所存数据的安全硬件、软件来实现对计算机系统及其所存数据的安全 保护,当计算机系统受到无意或恶意的攻击时仍能保保护,当计算机系统受到无意或恶意的攻
4、击时仍能保 证系统正常运行,保证系统能的数据不增加、不丢失、证系统正常运行,保证系统能的数据不增加、不丢失、 不泄露。不泄露。 v管理安全性管理安全性 是指由于管理不善导致的计算机设备和数是指由于管理不善导致的计算机设备和数 据介质的物理破坏、丢失等软硬件意外故障以及场地据介质的物理破坏、丢失等软硬件意外故障以及场地 的意外事故等安全问题。的意外事故等安全问题。 v政策法规政策法规 则是指政府部门建立的有关计算机犯罪、数则是指政府部门建立的有关计算机犯罪、数 据安全保密的法律道德准则和政策法规、法令。据安全保密的法律道德准则和政策法规、法令。 数据库的安全性6 二、计算机系统安全标准简介二、计
5、算机系统安全标准简介 在计算机安全技术方面逐步建立了一套可信标准。在目在计算机安全技术方面逐步建立了一套可信标准。在目 前各国所引用或制定的一系列安全标准中,最有影响的前各国所引用或制定的一系列安全标准中,最有影响的 是是TCSECTCSEC和和CCCC 数据库的安全性7 二、计算机系统安全标准简介二、计算机系统安全标准简介 TCSECTCSEC是是19851985年美国国防部(年美国国防部(DoDDoD)正式颁布的)正式颁布的 DoDDoD可信计算机系统评估标准可信计算机系统评估标准(Trusted Trusted Computer System Evaluation CriteriaCom
6、puter System Evaluation Criteria,简称,简称 TCSECTCSEC或或DoD85DoD85)。)。 制定这个标准的目的主要有:制定这个标准的目的主要有: 提供一种标准,使用户可以对其计算机系统内提供一种标准,使用户可以对其计算机系统内 敏感信息安全操作的可信程度作评估。敏感信息安全操作的可信程度作评估。 给计算机行业的制造商提供一种可循的指导规给计算机行业的制造商提供一种可循的指导规 则,使其产品能够更好地满足敏感应用的安全需则,使其产品能够更好地满足敏感应用的安全需 求。求。 数据库的安全性8 1991 1991年年4 4月美国月美国NCSCNCSC(国家计算
7、机安全中心)颁布了(国家计算机安全中心)颁布了 可信计算机系统评估标准关于可信数据库系统的解释可信计算机系统评估标准关于可信数据库系统的解释 (Trusted Database InterpretationTrusted Database Interpretation,简称,简称TDITDI),将),将 TCSECTCSEC扩展到数据库管理系统。扩展到数据库管理系统。TDITDI中定义了数据库管理中定义了数据库管理 系统的设计与实现中需要满足和用以进行安全性级别评系统的设计与实现中需要满足和用以进行安全性级别评 估的标准。估的标准。 TDI/TCSECTDI/TCSEC标准从以下四个方面描述安
8、全性级别划分标标准从以下四个方面描述安全性级别划分标 准:安全策略、责任、保证和文档。每个方面又细分为准:安全策略、责任、保证和文档。每个方面又细分为 若干项。若干项。 TDI/TCSECTDI/TCSEC将系统划分为四组(将系统划分为四组(division)division)七个等级,依七个等级,依 次是次是D;C(C1,C2)D;C(C1,C2);B(B1,B2,B3);AB(B1,B2,B3);A(A1A1)。)。 安全级别之间具有一种偏序向下兼容的关系,即较高安安全级别之间具有一种偏序向下兼容的关系,即较高安 全性级别提供的安全保护要包含较低级别的所有保护要全性级别提供的安全保护要包含
9、较低级别的所有保护要 求,同时提供更多或更完善的保护能力。求,同时提供更多或更完善的保护能力。 数据库的安全性9 数据库的安全性10 D级级 最低级别。如最低级别。如DOS就是操作系统中安全标准为就是操作系统中安全标准为D的典的典 型例子。它具有操作系统的基本功能,如文件系统,型例子。它具有操作系统的基本功能,如文件系统, 进程调度等,但在安全方面几乎没有什么专门的机制进程调度等,但在安全方面几乎没有什么专门的机制 来保障。来保障。 C1级级 只提供非常初级的自主安全保护。能够实现对用户只提供非常初级的自主安全保护。能够实现对用户 和数据的分离,进行自主存取控制(和数据的分离,进行自主存取控制
10、(DAC),保护或),保护或 限制用户权限的传播。限制用户权限的传播。 C2级级 是安全产品的最低档次,提供受控的存取保护,即是安全产品的最低档次,提供受控的存取保护,即 将将C1级的级的DAC进一步细化,以个人身份注册负责,并进一步细化,以个人身份注册负责,并 实施审计和资源隔离。如操作系统中实施审计和资源隔离。如操作系统中Microsoft的的 Windows 2000。数据库产品有。数据库产品有Oracle公司的公司的Oracle7等等 数据库的安全性11 B1级级 标记安全保护。对系统的数据加以标记,并对标记标记安全保护。对系统的数据加以标记,并对标记 的主体和客体实施强制存取控制(的
11、主体和客体实施强制存取控制(MAC)以及审计等)以及审计等 安全机制。安全机制。B1级能够较好地满足大型企业或一般政府级能够较好地满足大型企业或一般政府 部门对数据的安全需求,这一级别的产品才认为是真部门对数据的安全需求,这一级别的产品才认为是真 正意义上的安全产品。例如,操作系统方面有惠普公正意义上的安全产品。例如,操作系统方面有惠普公 司的司的HPUX BLS release9.0.9等,数据库方面择优等,数据库方面择优 Qracle 公司的公司的Trusted Oracle7 、Sybase公司的公司的Secure SQL Sever11.0.6 B2级级 结构化保护。建立形式化的安全策
12、略模型并对系统结构化保护。建立形式化的安全策略模型并对系统 内的所有主体和客体实施自主存取控制内的所有主体和客体实施自主存取控制DAC和强制存和强制存 取控制取控制MAC。 数据库的安全性12 B3级级 安全域。该级的安全域。该级的TCB(可信计算基础)必须满足访(可信计算基础)必须满足访 问监控器的要求,审计跟踪能力更强,并提供系统恢问监控器的要求,审计跟踪能力更强,并提供系统恢 复过程。复过程。 A1级级 验证设计,即提供验证设计,即提供B3级保护的同时给出系统的形式级保护的同时给出系统的形式 化设计说明和验证以确信各安全保护真正实现。化设计说明和验证以确信各安全保护真正实现。 数据库的安
13、全性13 CC是在上述各评估准则及具体实践基础上,通过相互是在上述各评估准则及具体实践基础上,通过相互 总结和互补发展而来的。和早期的评估准则相比,总结和互补发展而来的。和早期的评估准则相比,CC 只有结构开放、表达方式通用等特点。只有结构开放、表达方式通用等特点。 CC提出了目前国际上公认的表述信息技术安全性的结提出了目前国际上公认的表述信息技术安全性的结 构,即把对信息产品的安全要求分为安全功能要求和构,即把对信息产品的安全要求分为安全功能要求和 安全保证要求。安全保证要求。 安全功能要求用以规范产品和系统的安全行为,安全安全功能要求用以规范产品和系统的安全行为,安全 保证要求解决如何正确
14、有效地实施这些功能。保证要求解决如何正确有效地实施这些功能。 安全功能要求和安全保证要求都以安全功能要求和安全保证要求都以“类子类组件类子类组件” 的结构表达,组件是安全要求的最小构件块。的结构表达,组件是安全要求的最小构件块。 数据库的安全性14 CC的文本由三都分组成,三个部分相互依存,的文本由三都分组成,三个部分相互依存, 缺一不可。缺一不可。 第一部分是第一部分是“简介和一般模型简介和一般模型”。介绍。介绍CC中中 的有关术语、基本概念和一般模型以及与评估的有关术语、基本概念和一般模型以及与评估 有关的一些框架,有关的一些框架,CC的附录部分主要介绍的附录部分主要介绍 “保护轮廓保护轮
15、廓”(Protection Profile ,简称,简称PP) 和和“安全目标安全目标”(Security Target,简称,简称ST) 的基本内容。的基本内容。 数据库的安全性15 第二都分是安全功能要求,列出了一系列功第二都分是安全功能要求,列出了一系列功 能组件、子类和类。具体来说有能组件、子类和类。具体来说有11类,分别是类,分别是 安全审计(安全审计(FAU)、通信()、通信(FCO)、密码支持)、密码支持 (FCS)、用户数据保护()、用户数据保护(FDP)、标识和鉴)、标识和鉴 别(别(FIA)、安全管理()、安全管理(FMT)、隐私)、隐私 (FPR)、)、TSF保护(保护(
16、FPT)、资源利用)、资源利用 (FRU)、)、TOE访问(访问(FTA)、可信路径和通)、可信路径和通 信(信(FTP)。)。 这这11大类分为大类分为66个子类,由个子类,由135个组件构成。个组件构成。 数据库的安全性16 第三部分是安全保证要求,列出了一系列保证组件、第三部分是安全保证要求,列出了一系列保证组件、 子类和类,包括子类和类,包括7个类,分别是配置管理(个类,分别是配置管理(ACM)、)、 交付和运行(交付和运行(ADO)、开发()、开发(ADV)、指导性文档)、指导性文档 (AGD)、生命周期支持()、生命周期支持(ALC)、测试()、测试(ATE)、)、 脆弱性评定(脆
17、弱性评定(AVA)。)。 这这7大类分为大类分为26个子类,由个子类,由74个组件构成。个组件构成。 另外,第三部分中根据系统对安全保证要求的支持情另外,第三部分中根据系统对安全保证要求的支持情 况提出了评估保证级(况提出了评估保证级(Evaluation Assurance Level ,EAL),并定义了保护轮廓),并定义了保护轮廓PP和安全目标和安全目标ST的的 评估准则,用于对评估准则,用于对PP和和ST的评估。的评估。 数据库的安全性17 这三部分的有机结合具体体现在这三部分的有机结合具体体现在PP和和ST中,中, CC提出的安全功能要求和安全保证要求都可提出的安全功能要求和安全保证
18、要求都可 以在具体的以在具体的PP和和ST中进一步细化和扩展,这中进一步细化和扩展,这 种开放式的结构更适应信息安全技术的发展。种开放式的结构更适应信息安全技术的发展。 CC的具体应用也是通过的具体应用也是通过PP和和ST这两种结构来这两种结构来 实现的。实现的。 数据库的安全性18 PP用于表达一类产品或系统的用户需求,是用于表达一类产品或系统的用户需求,是CC在某一在某一 领域的具体化。领域的具体化。CC针对不同领域产品的评估,就体现针对不同领域产品的评估,就体现 在开发该类产品的在开发该类产品的PP上,例如,针对操作系统产品的上,例如,针对操作系统产品的 PP(OS PP)、针对数据库产
19、品的、针对数据库产品的PP(DBMS PP)等。等。 CC并没有专门针对并没有专门针对DBMS的解释。的解释。 DBMS PP 是是CC在在 DBMS领域的具体化,相当于是对领域的具体化,相当于是对DBMS的解释。换的解释。换 句话说,句话说,CC的的DBMSPP就相当于就相当于TCSEC的的TDl。CC 中规定了中规定了PP应包含的基本内容和格式,例如必须指明应包含的基本内容和格式,例如必须指明 该该PP符合哪一种评估保证级别,目前国外已开发多种符合哪一种评估保证级别,目前国外已开发多种 不同不同EAL的的DBMS PP。ST是对特定的一种产品进行描是对特定的一种产品进行描 述,参加述,参加
20、CC评估的产品必须提供自己的评估的产品必须提供自己的ST。 数据库的安全性19 PP的编制有助于提高安全保护的针对性和有的编制有助于提高安全保护的针对性和有 效性。效性。ST在在PP的基础上,将安全要求进一步的基础上,将安全要求进一步 具体化,解决安全要求的具体实现。具体化,解决安全要求的具体实现。 通过通过PP和和ST这两种结构,能够方便的将这两种结构,能够方便的将CC的的 安全性要求具体应用到信息产品的开发、生产、安全性要求具体应用到信息产品的开发、生产、 测试、评估和信息系统的集成、运行、评估、测试、评估和信息系统的集成、运行、评估、 管理中。管理中。 数据库的安全性20 除了除了PP和
21、和ST之外,还有一个重要的结构是包。之外,还有一个重要的结构是包。 包是组件的特定组合,用来描述一组特定的安包是组件的特定组合,用来描述一组特定的安 全功能和保证要求。评估保证级全功能和保证要求。评估保证级(EAL)是在是在CC 第三部分中预先定义的由保证组件组成的保证第三部分中预先定义的由保证组件组成的保证 包,每一保证包描述了一组特定的保证要求,包,每一保证包描述了一组特定的保证要求, 对应着一种评估保证级别。对应着一种评估保证级别。 从从EALl至至EAL7共分为七级,按保证程度逐渐共分为七级,按保证程度逐渐 增高。增高。 数据库的安全性21 数据库的安全性22 目前有许多信息产品,操作
22、系统如目前有许多信息产品,操作系统如Windows2000、 Sun Solaris 8等,数据库管理系统如等,数据库管理系统如Oracle9i、 DB2 V8.2 、Sybase Adaptive Sever Enterprise Vl2.5.2等,都已通过了等,都已通过了CC的的EAL4。 数据库的安全性23 在一般计算机系统中,安全措施是一级一级层层设置在一般计算机系统中,安全措施是一级一级层层设置 的。例如可以有如下的模型:的。例如可以有如下的模型: 用户DBMSOSDB 用户标识和鉴别 存取控制 操作系统安全保护 数据密码存储 计算机系统的安全模型 系统首先根据输入的用户标识进行用户
23、身份鉴定,系统首先根据输入的用户标识进行用户身份鉴定, 只有合法的用户才准许进入计算机系统。对已进入只有合法的用户才准许进入计算机系统。对已进入 系统的用户,系统的用户,DBMS还要进行存取控制,只允许用还要进行存取控制,只允许用 户执行合法操作。操作系统一级也会有自己的保护户执行合法操作。操作系统一级也会有自己的保护 措施。数据还可以以密码形式存储到数据库中。措施。数据还可以以密码形式存储到数据库中。 数据库的安全性24 一、用户标识与鉴定(一、用户标识与鉴定(Identification Authentication) 用户标识和鉴订是系统提供的最外层安全措施。其方用户标识和鉴订是系统提供
24、的最外层安全措施。其方 法是由系统提供一定的方式让用户标识自己的名字或法是由系统提供一定的方式让用户标识自己的名字或 身份。每次用户要求进入系统时,由系统进行核对,身份。每次用户要求进入系统时,由系统进行核对, 通过鉴定后才提供机器使用权。通过鉴定后才提供机器使用权。 二、存取控制二、存取控制 数据库安全最重要的一点就是确保只授权给有资格的数据库安全最重要的一点就是确保只授权给有资格的 用户访问数据库的权限,同时令所有未被授权的人员用户访问数据库的权限,同时令所有未被授权的人员 无法接近数据,这主要是通过数据库系统的存取控制无法接近数据,这主要是通过数据库系统的存取控制 机制实现。机制实现。
25、数据库的安全性25 存取控制机制主要包括两部分:存取控制机制主要包括两部分: 1. 定义用户权限,并将用户权限登记到数据字典中。定义用户权限,并将用户权限登记到数据字典中。 用户权限是指不同用户对于不同的数据对象允许执行用户权限是指不同用户对于不同的数据对象允许执行 的操作权限。系统必须提供适当的语言定义用户权限,的操作权限。系统必须提供适当的语言定义用户权限, 这些定义经过编译后存放在数据字典中,被称作安全这些定义经过编译后存放在数据字典中,被称作安全 规则或授权规则。规则或授权规则。 2. 合法权限检查,每当用户发出存取数据库的操作请求合法权限检查,每当用户发出存取数据库的操作请求 后,后
26、,DBMS查找数据字典,根据安全规则进行合法权查找数据字典,根据安全规则进行合法权 限检查,若用户的操作请求超出了定义的权限,系统限检查,若用户的操作请求超出了定义的权限,系统 将拒绝执行此操作。将拒绝执行此操作。 用户权限定义和合法权限检查机制一起组成了用户权限定义和合法权限检查机制一起组成了DBMS 的安全子系统。的安全子系统。 数据库的安全性26 三、自主存取控制(三、自主存取控制(DAC)方法)方法 在在自主存取控制自主存取控制方法中,用户对于不同的数据对象有方法中,用户对于不同的数据对象有 不同的存取权限,不同的用户对同一对象也有不同的不同的存取权限,不同的用户对同一对象也有不同的
27、权限,而且用户还可以将其拥有的存取权限转授予其权限,而且用户还可以将其拥有的存取权限转授予其 他用户。因此自主存取控制非常灵活。他用户。因此自主存取控制非常灵活。 大型的数据库管理系统几乎都支持自主存取控制,在大型的数据库管理系统几乎都支持自主存取控制,在 SQL中用中用GRANT语句和语句和REVOKE语句来实现。语句来实现。 用户权限是有两个要素组成的:数据对象和操作类型。用户权限是有两个要素组成的:数据对象和操作类型。 定义一个用户的存取权限就是要定义这个用户可以在定义一个用户的存取权限就是要定义这个用户可以在 那些数据对象上进行哪些类型的操作。在数据库系统那些数据对象上进行哪些类型的操
28、作。在数据库系统 中,定义存取权限称为中,定义存取权限称为授权授权(Authorization)。)。 数据库的安全性27 在非关系系统中,用户只能对数据进行操作,存在非关系系统中,用户只能对数据进行操作,存 取控制的数据对象也仅限于数据本身。取控制的数据对象也仅限于数据本身。 在关系系统中,在关系系统中,DBA可以把建立、修改基本表的可以把建立、修改基本表的 权限授予用户,用户获得此权限后可以建立和修权限授予用户,用户获得此权限后可以建立和修 改基本表、索引、视图。因此关系系统中存取控改基本表、索引、视图。因此关系系统中存取控 制的数据对象不仅有数据本身,如表、属性列等,制的数据对象不仅有数
29、据本身,如表、属性列等, 还有模式、外模式、内模式等数据字典中的内容。还有模式、外模式、内模式等数据字典中的内容。 数据库的安全性28 数据库的安全性29 四四 授权(授权(AuthorizationAuthorization)与回收语句)与回收语句 SQL语言用语言用GRANT语句向用户授予操作权限,语句向用户授予操作权限, REVOKE语句收回授予的权限语句收回授予的权限 (一)、(一)、授权语句授权语句 GRANT语句的一般格式为:语句的一般格式为: GRANT ,. ON TO ,. WITH GRANT OPTION; 其语义为:将对指定操作对象的指定操作权限授予指其语义为:将对指定
30、操作对象的指定操作权限授予指 定的用户定的用户。 数据库的安全性30 接受权限的用户可以是一个或多个具体用户,接受权限的用户可以是一个或多个具体用户, 也可以是也可以是PUBLIC即全体用户。即全体用户。 如果指定了如果指定了WITH GRANT OPTION子句,则子句,则 获得某种权限的用户还可以把这种权限再授予获得某种权限的用户还可以把这种权限再授予 别的用户。如果没有指定别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使子句,则获得某种权限的用户只能使 用该权限,但不能传播该权限。用该权限,但不能传播该权限。 数据库的安全性31 例例1 1把查询把
31、查询StudentStudent表权限授给用户表权限授给用户U1U1 GRANT SELECT ON TABLE Student TO U1 GRANT SELECT ON TABLE Student TO U1 例例2 2把对把对StudentStudent表和表和CourseCourse表的全部权限授予用表的全部权限授予用 户户U2U2和和U3U3 GRANT ALL PRIVILIGES ON TABLE GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3 Student, Course TO U2, U3 例例3 3把对表把对
32、表SCSC的查询权限授予所有用户的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC 数据库的安全性32 例例4 4把查询把查询StudentStudent表和修改学生学号的权限授表和修改学生学号的权限授 给用户给用户U4U4 这里实际上要授予这里实际上要授予U4U4用户的是对基本表用户的是对基本表 StudentStudent的的SELECTSELECT权限和对属性列权限和对属性列SnoSno的的UPDATEUPDATE 权限。授予关于属性列的权限时必须明确指出权限。授予关于属性列的权限时必须明确指出 相应属性列名。完成本授权操作的相应属性列名。完成本
33、授权操作的SQLSQL语句为:语句为: GRANT UPDATE(Sno), SELECT ON TABLEGRANT UPDATE(Sno), SELECT ON TABLE Student TO U4 Student TO U4 数据库的安全性33 例例5 5把对表把对表SCSC的的INSERTINSERT权限授予权限授予U5U5用户,并允许他再将此用户,并允许他再将此 权限授予其他用户权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPT
34、ION; 执行此执行此SQL语句后,语句后,U5不仅拥有了对表不仅拥有了对表SC的的INSERT权权 限,还可以传播此权限,即由限,还可以传播此权限,即由U5用户发上述用户发上述GRANT命命 令给其他用户。令给其他用户。 例如例如U5可以将此权限授予可以将此权限授予U6: GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION 同样,同样,U6还可以将此权限授予还可以将此权限授予U7: GRANT INSERT ON TABLE SC TO U7 因为因为U6未给未给U7传播的权限,因此传播的权限,因此U7不能再传播此权限。不能再传播此权限。 数据库
35、的安全性34 由上面的例子可以看到,由上面的例子可以看到,GRANTGRANT语句可以一次向一个用语句可以一次向一个用 户授权,如例户授权,如例1 1所示,这是最简单的一种授权操作;所示,这是最简单的一种授权操作; 也可以一次向多个用户授权,如例也可以一次向多个用户授权,如例2 2、例、例3 3等所示;等所示; 还可以一次传播多个同类对象的权限,如例还可以一次传播多个同类对象的权限,如例2 2所示;所示; 甚至一次可以完成对基本表、视图和属性列这些不同甚至一次可以完成对基本表、视图和属性列这些不同 对象的授权,如例对象的授权,如例4 4所示;所示; 数据库的安全性35 (二)、收权语句(二)、
36、收权语句 授予的权限可以由授予的权限可以由DBADBA或其他授权者用或其他授权者用REVOKEREVOKE 语句收回,语句收回,REVOKEREVOKE语句的一般格式为:语句的一般格式为: REVOKE REVOKE ,. . ON ON FROM FROM ,.;.; 数据库的安全性36 例例7 7把用户把用户U4U4修改学生学号的权限收回修改学生学号的权限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM REVOKE UPDATE(Sno) ON TABLE Student FROM U4;U4; 例例8 8收回所有用户对表收回所有用户对表SCSC的查
37、询权限的查询权限 REVOKE SELECT ON TABLE SC FROM PUBLIC;REVOKE SELECT ON TABLE SC FROM PUBLIC; 数据库的安全性37 例例9 9把用户把用户U5U5对对SCSC表的表的INSERTINSERT权限收回权限收回 REVOKE INSERT ON TABLE SC FROM U5;REVOKE INSERT ON TABLE SC FROM U5; 在例在例5中,中,U5又将对又将对SC表的表的INSERT权限授予了权限授予了U6, 而而U6又将其授予了又将其授予了U7,执行此,执行此REVOKE语句后,语句后, DBMS在
38、收回在收回U5对对SC表的表的INSERT权限的同时,还会权限的同时,还会 自动收回自动收回U6和和U7对对SC表的表的INSERT权限,即收回权限权限,即收回权限 的操作会级联下去的。的操作会级联下去的。 但如果但如果U6或或U7还从其他用户处获得对还从其他用户处获得对SC表的表的INSERT 权限,则他们仍具有此权限,系统只收回直接或间接权限,则他们仍具有此权限,系统只收回直接或间接 从从U5处获得的权限。处获得的权限。 数据库的安全性38 (三)、创建数据库模式的权限(三)、创建数据库模式的权限 GRANT和和REVOKE语句向用户授予或收回对语句向用户授予或收回对 数据的操作权限。对数
39、据库模式的授权则由数据的操作权限。对数据库模式的授权则由 DBA在创建用户时实现。在创建用户时实现。 CREATE USER语句一般格式如下语句一般格式如下: CREATE USER WITHDBA|RESOURCE|CONNECT 数据库的安全性39 对对CREATE USERCREATE USER语句说明如下语句说明如下: : l只有系统的超级用户才有权创建一个新的数据库用户。只有系统的超级用户才有权创建一个新的数据库用户。 l新创建的数据库用户有三种权限新创建的数据库用户有三种权限:CONNECT:CONNECT、RESOURCERESOURCE 和和DBADBA。 lCREATE US
40、ERCREATE USER命令中如果没有指定创建的新用户的权限,命令中如果没有指定创建的新用户的权限, 默认该用户拥有默认该用户拥有CONNECTCONNECT权限。拥有权限。拥有CONNECTCONNECT权限的用权限的用 户不能创建新用户,不能创建模式,也不能创建基本户不能创建新用户,不能创建模式,也不能创建基本 表表; ;只能登录数据库。然后由只能登录数据库。然后由DBADBA或其他用户授予他应或其他用户授予他应 有的权限,根据获得的授权情况他可以对数据库对象有的权限,根据获得的授权情况他可以对数据库对象 进行权限范围内的操作。进行权限范围内的操作。 数据库的安全性40 对对CREATE
41、 USERCREATE USER语句说明如下语句说明如下: : l拥有拥有RESOURCERESOURCE权限的用户能创建基本表和视图,成为权限的用户能创建基本表和视图,成为 所创建对象的属主。但是不能创建模式,不能创建新所创建对象的属主。但是不能创建模式,不能创建新 的用户。数据库对象的属主可以使用的用户。数据库对象的属主可以使用GRANTGRANT语句把该对语句把该对 象上的存取权限授予其他用户。象上的存取权限授予其他用户。 l拥有拥有DBADBA权限的用户是系统中的超级用户,可以创建新权限的用户是系统中的超级用户,可以创建新 的用户、创建模式、创建基本表和视图等的用户、创建模式、创建基本
42、表和视图等;DBA;DBA拥有对拥有对 所有数据库对象的存取权限,还可以把这些权限授予所有数据库对象的存取权限,还可以把这些权限授予 一般用户。一般用户。 数据库的安全性41 一个一个DBADBA用户可以拥有用户可以拥有CREATE USERCREATE USER、CREATE CREATE SCHEMASCHEMA和和CREATE TABLECREATE TABLE权限,一个权限,一个RESOURCERESOURCE用用 户可以拥有户可以拥有CREATE TABLECREATE TABLE权限。权限。 有关有关CREATE SCHEMACREATE SCHEMA和和CREATE TABLEC
43、REATE TABLE的语句在的语句在 第第3 3章中已经讲解了。章中已经讲解了。 数据库的安全性42 五、数据库角色五、数据库角色 数据库角色是被命名的一组与数据库操作相关数据库角色是被命名的一组与数据库操作相关 的权限,角色是权限的集合。因此,可以为一的权限,角色是权限的集合。因此,可以为一 组具有相同权限的用户创建一个角色,使用角组具有相同权限的用户创建一个角色,使用角 色来管理数据库权限可以简化授权的过程。色来管理数据库权限可以简化授权的过程。 在在SQLSQL中首先用中首先用CREATE ROLECREATE ROLE语句创建角色,然语句创建角色,然 后用后用GRANTGRANT语句
44、给角色授权。语句给角色授权。 数据库的安全性43 ( (一一) )、角色的创建、角色的创建 创建角色的创建角色的SQLSQL语句格式是语句格式是 CREATE ROLECREATE ROLE 刚刚创建的角色是空的,没有任何内容。可以用刚刚创建的角色是空的,没有任何内容。可以用GRANTGRANT 为角色授权。为角色授权。 ( (二二) )、给角色授权、给角色授权 GRANT GRANT , ON ON 对象名对象名 TO TO , DBA DBA和用户可以利用和用户可以利用GRANTGRANT语句将权限授予某一个或几语句将权限授予某一个或几 个角色。个角色。 数据库的安全性44 ( (三三)
45、)、将一个角色授子其他的角色或用户、将一个角色授子其他的角色或用户 GRANTGRANTl, 2 TOTO3, 1 WITH ADMIN OPTIONWITH ADMIN OPTION 该语句把角色授予某用户,或授予另一个角色。这样,一个角色该语句把角色授予某用户,或授予另一个角色。这样,一个角色 ( (例如角色例如角色3)3)所拥有的权限就是授予它的全部角色所拥有的权限就是授予它的全部角色( (例如角色例如角色1 1和和 角色角色2)2)所包含的权限的总和。所包含的权限的总和。 授予者或者是角色的创建者,或者拥有在这个角色上的授予者或者是角色的创建者,或者拥有在这个角色上的ADMIN ADM
46、IN OPTIONOPTION。 如果指定了如果指定了WITH ADMIN OPTIONWITH ADMIN OPTION子句,则获得某种权限的角色或子句,则获得某种权限的角色或 用户还可以把这种权限再授予其他的角色。用户还可以把这种权限再授予其他的角色。 一个角色包含的权限包括直接授予这个角色的全部权限加上其一个角色包含的权限包括直接授予这个角色的全部权限加上其 他角色授予这个角色的全部权限。他角色授予这个角色的全部权限。 数据库的安全性45 ( (四四) )、角色权限的收回、角色权限的收回 REVOKE REVOKE , ON ON FROM FROM , 用户可以回收角色的权限,从而修改
47、角色拥有的权用户可以回收角色的权限,从而修改角色拥有的权 限。限。 REVOKEREVOKE动作的执行者或者是角色的创建者,或者拥动作的执行者或者是角色的创建者,或者拥 有在这个有在这个( (些些) )角色上的角色上的ADMIN OPTIONADMIN OPTION。 数据库的安全性46 例例1111通过角色来实现将一组权限授予一个用户。步骤如下通过角色来实现将一组权限授予一个用户。步骤如下 1.1.首先创建一个角色首先创建一个角色RlRl: CREATE ROLE RlCREATE ROLE Rl 2.2.然后使用然后使用GRANTGRANT语句,使角色语句,使角色RlRl拥有拥有Stude
48、ntStudent表的表的SELECTSELECT、 UPDATEUPDATE、INSERTINSERT权限权限 GRANT SELECTGRANT SELECT,UPDATEUPDATE,INSERT ON TABLE Student TO R1INSERT ON TABLE Student TO R1 3.3.将这个角色授予王平,张明,赵玲。使他们具有角色将这个角色授予王平,张明,赵玲。使他们具有角色RlRl所包所包 含的全部权限含的全部权限 GRANT Rl TO GRANT Rl TO 王平,张明,赵玲王平,张明,赵玲 4.4.当然,也可以一次性的通过当然,也可以一次性的通过R1R1来
49、回收王平的这来回收王平的这3 3个权限个权限 REVOKE Rl FROM REVOKE Rl FROM 王平王平 数据库的安全性47 例例1212 角色的权限修改角色的权限修改 GRANT DELETE ON TABLE Student TO RlGRANT DELETE ON TABLE Student TO Rl 使角色使角色RlRl在原来的基础上增加了在原来的基础上增加了StudentStudent表的表的 DELETEDELETE权限。权限。 例例13 13 收回收回R1R1对对StudentStudent表的查询权限表的查询权限 REVOKE SELECT ON TABLE Stu
50、dent FROM RlREVOKE SELECT ON TABLE Student FROM Rl 可以看出,通过角色的使用可以使自主授权的执行可以看出,通过角色的使用可以使自主授权的执行 更加灵活、方便。更加灵活、方便。 数据库的安全性48 自主存取控制能够通过授权机制有效地控制其他自主存取控制能够通过授权机制有效地控制其他 用户对敏感数据的存取,但仍可能造成数据的用户对敏感数据的存取,但仍可能造成数据的 “无意泄露无意泄露”。 造成这一问题的根本原因就在于这种机制仅仅通造成这一问题的根本原因就在于这种机制仅仅通 过对数据的存取权限来进行安全控制,而数据本过对数据的存取权限来进行安全控制,
51、而数据本 身并无标记。要解决这一问题,就需要对系统控身并无标记。要解决这一问题,就需要对系统控 制下的所有主客体实施强制存取策略。制下的所有主客体实施强制存取策略。 数据库的安全性49 六、强制存取控制(六、强制存取控制(MAC)方法)方法 在强制存取方法中,每一个数据对象被标以一定的密在强制存取方法中,每一个数据对象被标以一定的密 级,每一个用户也被授予某一级别的许可证。对于任级,每一个用户也被授予某一级别的许可证。对于任 一对象,只有具有合法许可证的用户才可以存取。强一对象,只有具有合法许可证的用户才可以存取。强 制存取控制因此比较严格。制存取控制因此比较严格。 MAC适用于那些对数据有严
52、格而固定密级分类的部门,适用于那些对数据有严格而固定密级分类的部门, 例如军事部门或政府部门。例如军事部门或政府部门。 在在MAC中,中,DBMS所管理的全部实体被分为主体和客所管理的全部实体被分为主体和客 体两大类。体两大类。 主体主体是系统中的活动实体,既包括是系统中的活动实体,既包括DBMS所管理的实所管理的实 际用户,也包括代表用户的各进程。际用户,也包括代表用户的各进程。 客体客体是系统中被动的实体,是受主体操纵的,包括文是系统中被动的实体,是受主体操纵的,包括文 件、基表、索引、视图等件、基表、索引、视图等。 数据库的安全性50 对于主体和客体,对于主体和客体,DBMS为它们每个实
53、例(值)为它们每个实例(值) 指派一个指派一个敏感度标记敏感度标记(Label)。)。 敏感度标记(敏感度标记(Label)被分成若干级别,例如)被分成若干级别,例如 绝密(绝密(Top Secret)、机密()、机密(Secret)、可信)、可信 (Confidential)、公开()、公开(Public)等。)等。 主体的敏感度标记称为许可证级别主体的敏感度标记称为许可证级别 (Clearance Level),),客体的敏感度标记称为客体的敏感度标记称为 密级密级(Classification Level)。)。MAC机制就是机制就是 通过对比主体的通过对比主体的Level和客体的和客体
54、的Level,最终确,最终确 定主体是否能够存取客体。定主体是否能够存取客体。 数据库的安全性51 当某一用户(或某一主体)以标记当某一用户(或某一主体)以标记Label注册入系统时,注册入系统时, 系统要求他对任何客体的存取必须遵守如下规则:系统要求他对任何客体的存取必须遵守如下规则: l仅当主体的许可证级别大于或等于客体的密级时,该仅当主体的许可证级别大于或等于客体的密级时,该 主体才能读取客体。主体才能读取客体。 l仅当主体的许可证级别等于客体的密级时,该主体才仅当主体的许可证级别等于客体的密级时,该主体才 能写相应客体。能写相应客体。 对于第二条规则在某些系统中规定:仅当主体的许可对于
55、第二条规则在某些系统中规定:仅当主体的许可 证级别小于或等于客体的密级时,该主体才能写相应证级别小于或等于客体的密级时,该主体才能写相应 客体,即用户可以为写入的数据对象赋予高于自己的客体,即用户可以为写入的数据对象赋予高于自己的 许可证级别的密级。这样一旦数据被写入,该用户自许可证级别的密级。这样一旦数据被写入,该用户自 己也不能再读该数据对象了。己也不能再读该数据对象了。 数据库的安全性52 写规则禁止了拥有高许可证级别的主体更新密写规则禁止了拥有高许可证级别的主体更新密 级低的数据对象。级低的数据对象。 强制存取控制(强制存取控制(MAC)是对数据本身进行密)是对数据本身进行密 级标记,
56、无论数据如何复制,标记与数据是一级标记,无论数据如何复制,标记与数据是一 个不可分的整体,只有复合密级标记要求的用个不可分的整体,只有复合密级标记要求的用 户才可以操纵数据,从而提供了更高级别的安户才可以操纵数据,从而提供了更高级别的安 全性。全性。 数据库的安全性53 因较高安全性级别提供的安全保护要包含较低级别的因较高安全性级别提供的安全保护要包含较低级别的 所有保护要求,因此在实现所有保护要求,因此在实现MACMAC时要首先实现时要首先实现DACDAC,即,即 DACDAC与与MACMAC共同构成共同构成DBMSDBMS的安全机制。系统首先进行的安全机制。系统首先进行DACDAC 检查,
57、对通过检查,对通过DACDAC检查的允许存取的数据对象再由系统检查的允许存取的数据对象再由系统 自动进行自动进行MACMAC检查,只有通过检查,只有通过MACMAC检查的数据对象方可检查的数据对象方可 存取。存取。 SQL语法分析语义检查语法分析语义检查 DAC检查检查 MAC检查检查 继续语义检查继续语义检查 安全检查安全检查 DAC+MAC安全检查示意图安全检查示意图 数据库的安全性54 进行存取权限控制时可以为不同的用户定义不同的视进行存取权限控制时可以为不同的用户定义不同的视 图,把数据对象限制在一定的范围内,也就是说,通图,把数据对象限制在一定的范围内,也就是说,通 过视图机制把要保
58、密的数据对无权存取的用户隐藏起过视图机制把要保密的数据对无权存取的用户隐藏起 来,从而自动地对数据提供一定程度的安全保护。来,从而自动地对数据提供一定程度的安全保护。 例如只允许王平检索计算机系学生的信息,则可以先例如只允许王平检索计算机系学生的信息,则可以先 建立计算机系学生的视建立计算机系学生的视 图,然后把对视图的查询权限图,然后把对视图的查询权限 授予王平。授予王平。 CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept”CS”; GRANT SELECT ON CS_Student To 王平;王平; 数据库的安全性55
59、审计功能把用户对数据库的所有操作自动记录下来放审计功能把用户对数据库的所有操作自动记录下来放 入审计日志(入审计日志(Audit Log)中。)中。DBA可以利用审计跟踪可以利用审计跟踪 的信息,重现导致数据库现状的一系列事件,找出非的信息,重现导致数据库现状的一系列事件,找出非 法存取数据的人、时间和内容等。法存取数据的人、时间和内容等。 审计通常是很费时间和空间的,所以审计通常是很费时间和空间的,所以DBMS往往都将往往都将 其作为可选特征,允许其作为可选特征,允许DBA根据应用对安全性要求灵根据应用对安全性要求灵 活地打开或关闭审计功能。审计功能一般主要用于安活地打开或关闭审计功能。审计
60、功能一般主要用于安 全性要求较高的部门。全性要求较高的部门。 审计一般可分为用户级审计和系统级审计。用户审计审计一般可分为用户级审计和系统级审计。用户审计 是任何用户可设置的审计,主要是用户针对自己创建是任何用户可设置的审计,主要是用户针对自己创建 的数据库表或视图进行审计,记录所有用户对这些表的数据库表或视图进行审计,记录所有用户对这些表 或视图的一切成功和(或)不成功的访问要求以及各或视图的一切成功和(或)不成功的访问要求以及各 种类型的种类型的SQL操作。操作。 数据库的安全性56 系统级审计只能由系统级审计只能由DBA设置,用以监测成功或失败的设置,用以监测成功或失败的 登录要求、监测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国化学计量泵行业市场规模及投资前景预测分析报告
- 2025江苏无锡工艺职业技术学院招聘专职辅导员2人笔试考试备考试题及答案解析
- 2025年11月湖北省湖北交投集团部分子公司管理岗位遴选12人考试笔试备考试题及答案解析
- 2025河北唐山市直属公立医院第三次选聘27人笔试考试参考题库及答案解析
- 2025广西百色市德保县定向招聘服务期满“三支一扶”计划、志愿服务西部计划基层项目人员15人考试笔试备考试题及答案解析
- 新生儿黄疸护理教程
- 2025年沃尔沃汽车销售代理合同协议
- 2026年南京铁道职业技术学院单招职业倾向性考试题库新版
- 2026年渤海理工职业学院单招职业技能测试必刷测试卷附答案
- 2026年天津理工大学中环信息学院单招职业适应性考试必刷测试卷及答案1套
- 2025年液体闪烁仪市场发展现状
- 关于无人机多旋翼的结构细节试题及答案
- 企业财务管理中的流动性风险评估与应对策略
- 变电站GIS组合电器安装工程风险识别及预防措施
- 某管理咨询公司薪酬管理制度
- 物业管家管理课件
- TCACM 1460-2023 成年人中医体质治未病干预指南
- 三人合租房协议合同
- 大学生职业生涯规划书模板范文:市场营销篇
- 卧式蒸汽锅炉蒸汽锅炉安全操作规程
- 2025年内蒙古包钢集团招聘笔试参考题库含答案解析
评论
0/150
提交评论