本文属于「数据库系统」系列文章之一,这一系列着重于「数据库系统知识的学习与实践」。由于文章内容随时可能发生更新变动,欢迎关注和收藏数据库系统系列文章汇总目录一文以作备忘。需要特别说明的是,为了透彻理解和全面掌握数据库系统,本系列文章中参考了诸多博客、教程、文档、书籍等资料,限于时间精力有限,这里无法一一列出。部分重要资料的不完全参考目录如下所示,在后续学习整理中还会逐渐补充:

  • 数据库系统概念 第六版 Database System Concepts, Sixth Edition ,作者是 Abraham Silberschatz, Henry F. Korth, S. Sudarshan ,机械工业出版社
  • 数据库系统概论 第五版,王珊 萨师煊编著,高等教育出版社

文章目录

  • 本章参考文献
  • 4.1 数据库安全性概述
    • 4.1.1 数据库的不安全因素
    • 4.1.2 安全标准简介
  • 4.2 数据库安全性控制
    • 4.2.1 用户身份鉴别
    • 4.2.2 存取控制
  • 4.3 视图机制
  • 4.4 审计
    • 4.4.1 审计事件
    • 4.4.2 审计功能
    • 4.4.3 `audit` 语句和 `noaudit` 语句
  • 4.5 数据加密
    • 4.5.1 存储加密
    • 4.5.2 传输加密
  • 4.6 其他安全性保护

第1章已经提及,数据库的特点之一是「由数据库管理系统提供统一的数据保护功能,以保证数据的安全可靠和正确有效」。数据库的数据保护主要包括数据的安全性数据的完整性,第4章和第5章将简要讨论这两者。


本章参考文献


4.1 数据库安全性概述

数据库的安全性是指「保护数据库,以防止不合法使用所造成的的数据泄露、更改损坏」。

注意,安全性问题不是数据库系统独有的,所有计算机系统都存在不安全因素,只是在数据库中由于「大量数据集中存放」且「为众多最终用户直接共享」,从而使安全性问题更为突出。因此,「系统安全保护措施是否有效」是数据库系统的主要技术指标之一。

4.1.1 数据库的不安全因素

对数据库安全性造成威胁的因素主要有:

  1. 非授权用户对数据库的恶意存取和访问
    黑客和犯罪分子在用户存取数据库时,猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。因此,必须阻止有损数据库安全的非法操作,保证数据免受未经授权的访问和破坏。数据库管理系统提供的安全措施主要包括,用户身份鉴别存取控制视图技术
  2. 数据库中重要或敏感的数据被泄露
    黑客和犯罪分子盗窃数据库中的重要数据,使得一些机密数据被暴露。为防止数据泄露,数据库管理系统提供的安全措施主要包括,强制存取控制数据加密存储加密传输等。在安全性要求较高的部门,DBMS还提供审计功能——通过分析审计日志,可对潜在的威胁提前采取防范措施,对非授权用户的入侵行为及信息破坏情况进行追踪,防止对数据库安全责任的否认。
  3. 安全环境的脆弱性
    数据库安全性与计算机系统安全性——包括计算机硬件、操作系统、网络系统等的安全性是紧密联系的。操作系统安全的脆弱、网络协议安全保障的不足等,都会破坏数据库安全性。因此,必须加强计算机系统的安全性保证。

随着Internet技术的发展,计算机安全性问题越来越突出,对各种计算机及其相关产品、信息系统的安全性要求越来越高,为此在计算机安全技术方面逐步建立了一套可信 trusted 计算机系统的概念和标准。只有建立了完善的可信标准(即安全标准),才能规范和指导安全计算机部件的生产,准确测定产品的安全性能指标,满足民用和军用的不同需要。

4.1.2 安全标准简介

计算机及信息安全技术方面有一系列的安全标准,最有影响力的当属 TCSECCC 这两个标准。

  • TCSEC :1985年美国国防部 Department of Defense, DoD 颁布 Trusted Computer System Evaluation CriteriaDoD可信计算机系统评估准则,简称为 TCSECDoD85)。
    TCSEC 推出后的10年里,不同国家在 TCSEC 概念上建立了许多评估准则,包括欧洲的 ITSEC信息技术安全评估准则)、加拿大的 CTCPEC可信计算机产品评估准则)、美国的 FC信息技术安全联邦标准)等,这些准则比 TCSEC 更加灵活,适应了IT技术的发展。
  • CC :为满足全球IT市场上互认「标准化安全评估结果」的需要,TCSECITSECCTCPECFC的发起组织于1993年联合行动,将各自独立的准则集合成「一组单一的、能被广泛使用的IT安全准则」,这一行动称为通用准则项目。历经多次讨论和修订,Common Criteria通用准则,简称为 CC)V2.1版在1999年被ISO采用为国际标准,2001年被我国采用为国家标准。目前,CC 已经基本取代了 TCSEC ,成为评估信息产品安全性的主要标准

下面简要介绍 TCSECCC V2.1 的基本内容。

  • TCSEC 又称桔皮书。1991年,美国国家计算机安全中心 National Computer Security Center, NCSC 颁布了 TCSEC/Trusted Database Interpretation, TCSEC/TDI可信计算机系统评估准则关于可信数据库系统的解释)即紫皮书,将 TCSEC 扩展到数据库管理系统。TCSEC/TDI 中定义了数据库管理系统的设计与实现中、需满足和用以进行安全性级别评估的标准,从四个方面描述安全性级别划分的指标,即安全策略、责任、保证和文档,每个方面又细分为若干项。
    根据计算机系统对各项指标的支持情况,TCSEC/TDI 将系统划分为四组 division 七个等级,依次是 D,C(C1,C2),B(B1,B2,B3),A(A1)D,\ C(C1, C2),\ B(B1, B2, B3),\ A(A1)D, C(C1,C2), B(B1,B2,B3), A(A1) ,按系统可靠或可信程度逐渐增高,如下表所示:

    • D级:最低级别。保留D级的目的是:为了将一切不符合更高标准的系统全部归为D组。如操作系统中安全标准为D级的例子有 DOS ——它具有操作系统的基本功能,如文件系统、进程调度等,但几乎没有专门的机制保障安全性;
    • C1级:该级只提供了非常初级的自主安全保护,能够实现对用户和数据的分离,进行自主存取控制 DAC,保护或限制用户权限的传播。现有商业系统只需稍作改进,即可满足要求。
    • C2级:该级实际上是安全产品的最低档,提供受控的存取保护,即将C1级的 DAC 进一步细化,以个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中一般不突出“安全” security 这一特色,如操作系统中的 Windows 2000 、数据库产品中的 Oracle 7 等。
    • B1级:标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制 MAC 以及审计等安全机制。B1级的产品才被认为是真正意义上的安全产品,满足此级别的产品名前一般冠有“安全” security 或“可信的” trusted 字样,作为区别于普通产品的安全产品出售。
    • B2以上的系统:结构化保护。建立形式化的安全策略模型,并对系统内的所有主体和客体实施 DACMAC
    • B3级:安全域。该级的 Trusted Computing Base, TCB 必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
    • A1级:验证设计。即提供B3级保护的同时,给出系统的形式化设计说明和验证,以确保各安全保护真正实现。
  • CC 是在上述各评估准则及具体实践的基础上,通过相互总结和互补发展而来的。和早期的评估准则相比,它具有结构开放、表达方式通用等特点,提出了目前国际上公认的表述信息技术安全性的结果——即把对信息产品的安全性要求分为「安全功能要求」和「安全保证要求」,前者用以规范产品和系统的安全行为,后者解决如何正确有效地实施这些功能,二者都以“类-子类-组件”的结构表述,组件是安全要求的最小构件块。
    CC 的文本由三部分组成,相互依存、缺一不可:

    • 第一部分是简介和一般模型,介绍 CC 中的有关术语、基本概念、一般模型以及与评估有关的一些框架;
    • 第二部分是安全功能要求,列出了一系列类、子类、组件。由11大类、66个子类和135个组件构成;
    • 第三部分是安全保证要求,列出了一系列保证类、子类、组件。由7大类、26个子类、74个组件构成。根据系统对安全保证要求的支持情况,提出了评估保证级 Evaluation Assurance Level, EAL ,从 EAL1EAL7 共分为7级,按保证程度逐渐升高,如下表所示:

      粗略来看,TCSEC 的C1、C2级相当于EAL2、EAL3;B1、B2、B3相当于EAL4、EAL5、EAL6;A1对应于EAL7 。
    • CC 的附录部分主要介绍保护轮廓 Protection Profile, PP 和安全目标 Security Target, ST 的基本内容。这三部分的有机结合,具体体现在保护轮廓和安全目标中,CC 提出的安全功能要求和安全保证要求,都可以在具体的 PPST 中进一步细化和扩展,这种开放式的结构更适应信息安全技术的发展。CC 的具体应用,也是通过 PPST 这两种结构来实现的。

4.2 数据库安全性控制

在一般计算机系统中,安全措施是一级一级层层设置的。例如,下图所示的简单安全模型中,用户要求进入数据库管理系统时,系统首先根据输入的用户标识进行用户身份鉴别,只有合法的用户才准许进入计算机系统;对已进入系统的用户,数据库管理系统还要进行存取控制,只允许用户执行合法操作。操作系统也会有自己的保护措施,相关措施可参考操作系统学习文章。数据最后还可用密码形式存储到数据库中。另外,对于强力逼迫透漏口令、盗窃物理措辞设备等行为而采取的安保措施,例如出入机房登记、加锁等,不在此处讨论之列。

下面详细讨论与数据库有关的安全性(安全措施),主要包括用户身份鉴别多层存取控制审计视图数据加密等安全技术。下图给出了数据库管理系统的安全性控制模型——首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统;然后,在SQL处理层进行自主存取控制强制存取控制,进一步还可进行推理控制;为监控恶意访问,可根据具体安全需求配置审计规则,对用户访问行为和系统关键操作进行审计;通过设置简单入侵检测规则,对异常用户行为进行检测和处理。特别地,在数据库存储层,数据库管理系统不仅存储用户数据及备份信息,还存储与安全有关的标记和信息(即安全数据),提供存储加密功能等。

4.2.1 用户身份鉴别

用户身份鉴别是数据库管理系统提供的最外层安全保护措施。每个用户在系统中都有一个用户标识,每个用户标识由用户名 user name用户标识号 UID 两部分组成,UID 在系统的整个生命周期内是唯一的,系统内部记录着所有合法用户的标识。系统鉴别是指「由系统提供一定的方式,让用户标识自己的名字或身份」。每次用户要求进入系统时,系统进行核对,通过鉴定后才提供使用数据库管理系统的权限。

用户身份鉴别的方法有很多种,而且在一个系统中往往是多种方法结合,以获取更强的安全性。常用的用户身份鉴别方法有以下几种:

  1. 静态口令鉴别
    这种方法是当前常用的鉴别方法。静态口令一般由用户自己设定,鉴别时只要按要求输入正确的口令,系统将允许用户使用数据库管理系统。这些口令是静态不变的。在实际应用中,用户常用自己的生日、电话、简单易记的数字等内容作为口令,容易被破解。一旦被破解,非法用户就可以冒充该用户使用数据库。因此,这种方式虽然简单,但容易被攻击,安全性较低
    口令的安全可靠对数据库安全来说至关重要。因此,数据库管理系统从口令的复杂度、口令的管理、存储及传输等多方面保障口令的安全可靠。例如,要求口令长度至少是8个或更多字符;口令要求是字母、数字和特殊字符(除空白符、英文字母、单引号和数字外的所有可见字符)混合。在此基础上,管理员还能根据应用需求灵活地设置口令强度,例如设定口令中数字、字母或特殊符号的个数;设置口令是否可以是简单的常见单词,是否允许口令与用户名相同;设置重复使用口令的最小时间间隔等。此外,在存储和传输过程中口令信息不可见,均以密文方式存在。用户身份鉴别可以重复多次
  2. 动态口令鉴别
    这是目前较为安全的鉴别方式。口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用「一次一密」的方法。常用方式如短信密码和动态令牌方式,每次鉴别时先通过短信或令牌等途径获取新口令,再要求用户使用新口令登录数据库管理系统。与静态口令鉴别相比,这种认证方式增加了口令被窃取或破解的难度,安全性相对高一些。
  3. 生物特征鉴别
    这是一种通过生物特征进行认证的技术,其中生物特征是指生物体唯一具有的、可测量、识别和验证的稳定生物特征,如指纹、虹膜、掌纹等。这种方式通过采用图像处理和模式识别等技术,实现了基于生物特征的认证。与传统的口令鉴别方式相比,无疑产生了质的飞跃,安全性较高。
  4. 智能卡鉴别
    智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能。智能卡由用户随身携带,登录数据库管理系统时,用户将智能卡插入专用的读卡器进行身份验证。由于每次从智能卡中读取的信息是静态的,通过内存扫描或网络监听等技术,还是可能截获用户的身份验证信息,存在安全隐患。因此,实际应用中一般采用个人身份识别码 PIN 和智能卡相结合的方式。这样,即使 PIN 或智能卡中有一种被窃取,用户身份仍不会被冒充。

4.2.2 存取控制

自主存取控制方法(授权与收回、数据库角色)和强制存取控制方法等内容,见【数据库系统】第一部分 数据库基础(4) 数据库安全性(2) 数据库安全性控制(2) 存取控制这篇文章。


4.3 视图机制

在【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(7) 视图中提到过,视图能够对机密数据提供安全保护——通过视图机制,我们不仅能「对不同的用户定义不同的视图,把数据对象限制在一定的范围内」,还可以「把要保密的数据对无权存取的用户隐藏起来」,从而自动对数据提供一定程度的安全保护。

视图机制中,间接支持存取谓词的用户权限定义。例如,在某大学中假定王平老师只能检索计算机系学生的信息,系主任张明具有检索和增删改计算机系学生信息的所有权限,就要求系统能支持“存取谓词”的用户权限定义。在不直接支持存取谓词的系统中,可以先建立计算机系学生的视图 CS_Student ,然后在视图上进一步定义存取权限。

【例4.14】建立计算机系学生的视图,把对该视图的 select 权限授予王平,把该视图上的所有操作权限授予张明。
答:

create view CS_Student   /* 先建立视图CS_Student */
asselect *from Studentwhere Sdept='CS';grant select /* 王平老师只能检索计算机系学生的信息 */
on CS_Student
to 王平;grant all privileges /* 系主任具有检索和增删改计算机系学生信息的所有权限 */
on CS_Student
to 张明;

4.4 审计

前面讲的用户身份鉴别、存取控制是数据库安全保护的重要技术(安全策略方面),但不是全部。为了使数据库管理系统达到一定的安全级别,还需要在其他方面提供相应的支持。例如按照 TCSEC/TDI 标准中安全策略的要求,审计 audit 功能就是数据库管理系统达到C2以上安全级别、必不可少的一项指标。

因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃、破坏数据的人总是想方设法打破控制。审计功能把用户对数据库的所有操作自动记录下来,放入审计日志 audit log 中。审计员可以利用审计日志,监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 还可以分析审计日志,提前采取措施防范潜在的威胁。

审计通常是很费时间和空间的,所以数据库管理系统往往都将审计设置为可选特征,允许数据库管理员根据「具体应用对安全性的要求」,灵活地打开或关闭审计功能。一般地,审计功能主要用于安全性要求较高的部门。

4.4.1 审计事件

可审计事件一般有多个类别,如服务器事件、系统权限、语句事件模式对象事件,还包括用户鉴别、自主访问控制、强制访问控制事件。换句话说,它能对普通和特权用户行为、各种表操作、身份鉴别、自主和强制访问控制等操作进行审计;它既能审计成功操作,也能审计失败操作。

  • 服务器事件:审计数据库服务器发生的事件,包括数据库服务器的启动、停止、数据库服务器配置文件的重新加载;
  • 系统权限:对系统拥有的结构或模式对象进行操作的审计,要求该操作的权限是通过系统权限获得的;
  • 语句事件:对SQL语句,如DDL、DML、DQL(Data Query Language,数据查询语句)及DCL语句的审计;
  • 模式对象事件:对特定模式对象上进行的 select 或DML操作的审计。模式对象包括表、视图、存储过程、函数等,不包括依附于表的索引、约束、触发器、分区表等。

4.4.2 审计功能

审计功能主要提供以下几方面的内容。

  • 基本功能,提供多种审计查阅方式:基本的、可选的、有限的等等。
  • 提供多套审计规则,审计规则一般在数据库初始化时设定,以方便审计员管理;
  • 提供审计分析和报表功能;
  • 审计日志管理功能,包括为防止审计员误删审计记录,审计日志必须先转储后删除;对转储的审计记录文件提供完整性和保密性保护;只允许审计员查阅和转储审计记录,不允许任何用户新增和修改审计记录等等;
  • 系统提供查询审计设置及审计记录信息的专门视图。对于系统权限级别、语句级别及模式对象级别的审计记录,也可通过相关系统表直接查看

4.4.3 audit 语句和 noaudit 语句

audit 语句用来设置审计功能,noaudit 语句则取消审计功能。审计功能一般分为用户级审计系统级审计

  • 用户级审计是任何用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功或不成功的访问要求,以及各种类型的SQL操作。
  • 系统级审计只能由数据库管理员设置,用以监测成功或失败的登录要求、监测授权和收回操作,以及其他数据库权限下的操作。

【例4.15】对修改 SC 表结构或修改 SC 表数据的操作进行审计。
答:

audit alter, update
on SC;

【例4.16】取消对 SC 表的一切审计。
答:

noaudit alter, update
on SC;

审计设置及审计日志一般都存储在数据字典中。必须把审计开关打开(即把系统参数 audit_trail 设为 true ),才可以在系统表 sys_audittrail 中查看到审计信息。

数据库安全审计系统提供了一种事后检查的安全机制。安全审计机制将特定用户或特定对象相关的操作记录到系统审计日志中,作为后续对操作进行查询分析和追踪的依据。通过审计机制,可以约束用户可能的恶意操作。


4.5 数据加密

对于高度敏感性数据,例如财务数据、军事数据、国家机密数据等,除前面介绍的安全性措施外,还可以采用数据加密技术。数据加密是防止数据库数据在存储和传输中失密的有效手段。加密的基本思想是,根据一定算法将原始数据(明文 plain text)变换为不可直接识别的格式(密文 cipher text ),从而使得不知道解密算法的人无法获知数据的内容。

数据加密主要包括存储加密传输加密

4.5.1 存储加密

对于存储加密,一般提供透明和非透明两种存储加密方式。透明存储加密是内核级加密保护方式,对用户完全透明;非透明存储则是通过多个加密函数实现的

透明存储加密是在数据写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密。由于数据加密对用户透明,数据库的应用程序不需做任何修改,只需在创建表语句中说明需加密的字段即可。 当对加密数据进行增、删、改、查询操作时,数据库管理系统将自动对数据进行加/解密工作。基于数据库内核的数据存储加密、解密方法性能较好,安全完备性较高。

4.5.2 传输加密

在客户/服务器结构中,数据库用户与服务器之间若采用明文方式传输数据,容易被网络恶意用户截获或篡改,存在安全隐患。因此,为保证二者之间的安全数据交换,数据库管理系统提供了传输加密功能。

常用的传输加密方式如链路加密端到端加密。其中,链路加密对传输数据在链路层进行加密,它的传输信息由报头和报文两部分组成,前者是路由选择信息,而后者是传送的数据信息。这种方式对报文和报头均加密。相对的,端到端加密对传输数据在发送端加密、在接收端解密,它只加密报文,不加密报头。与链路加密相比,它只在发送端和接收端需要密码设备,而中间节点不需要密码设备,因此它所需密码设备数据相对较少。但这种方式不加密报头,从而容易被非法监听者发现并从中获取敏感信息。

下图是一种基于安全套接层协议 Security Socket Layer, SSL 的数据库管理系统可信传输方案。它采用一种端到端的传输加密方式。在这一方案中,通信双方协商建立可信连接,一次会话采用一个密钥,传输数据在发送端加密、接收端解密,有效降低了重放攻击和恶意篡改的风险。此外,出于易用性考虑,这一方案的通信加密还对应用程序透明。它的实现思路包含以下三点:

(1)确认通信双方端点的可靠性。
数据库管理系统采用「基于数字证书的服务器和客户端认证」方式,实现通信双方的可靠性确认。用户和服务器各自持有由知名数字证书认证 Certificate Authority, CA 中心或企业内建 CA 颁发的数字证书,双方在进行通信时均首先向对方提供己方证书,然后使用本地的 CA 信任列表和证书撤销列表 Certificate Revocation List, CRL 对接收到的对方证书进行验证,以确保证书的合法性和有效性,进而保证对方确系通信的目的端。
(2)协商加密算法和密钥
确认双方端点的可靠性后,通信双方协商本次会话的加密算法与密钥。在这一过程中,通信双方利用公钥基础设施 Public Key Infrastructure, PKI 方式,保证服务器和客户端的协商过程通信的安全可靠。
(3)可信数据传输
在加密算法和密钥协商完成后,通信双方开始进行业务数据交换。与普通通信路径不同的是,这些业务数据在被发送之前,将被用某一组特定的密钥进行加密和消息摘要计算,以密文的形式在网络上传输。当业务数据被接收的时候,需用相同一组特定的密钥进行解密和摘要计算。
所谓特定的密钥,是由先前通信双方协商决定的,为且仅为双方共享,通常称之为会话密钥。第三方即使窃取传输密文,因无会话密钥也无法识破密文信息。一旦第三方对密文进行任何篡改,均将会被真实的接收方通过摘要算法识破。另外,会话密钥的生命周期仅限于本次通信,理论上每次通信所采用的会话密钥将不同,因此避免了使用固定密钥而引起的密钥存储类问题。

数据库加密使用已有的密码技术和算法,对数据库中存储的数据和传输的数据进行保护。加密后数据的安全性能够进一步提高。即使攻击者获取数据源文件,也很难获取原始数据。但是,数据库加密增加了查询处理的复杂性,查询效率会受到影响。加密数据的密钥的管理和数据加密对应用程序的影响,也是数据加密过程中需要考虑的问题。


4.6 其他安全性保护

为满足较高安全等级数据库管理系统的安全性保护要求,在自主存取控制和强制存取控制之外,还有推理控制、以及数据库应用中隐蔽信道数据隐私保护等技术。

推理控制 inference control 处理的是强制存取控制未解决的问题。例如,利用列的函数依赖关系,用户能从低安全等级信息推导出其无权访问的高安全等级信息,进而导致信息泄露。

数据库推理控制机制用来避免用户利用其能够访问的数据推知更高密级的数据,即用户利用其被允许的多次查询的结果,结合相关的领域背景知识以及数据之间的约束,推导出其不能访问的数据。在推理控制方面,常用方法如基于函数依赖的推理控制基于敏感关联的推理控制等。

例如,某个公司信息系统中假设姓名和职务属于低安全等级(即公开)信息,而工资属于高安全等级(即机密)信息。用户甲的安全等级较低,他通过授权可以查询自己的工资、姓名和职务,及其他用户的姓名和职务。由于工资是机密信息,因此用户甲不应知道其他用户的工资。但是若用户乙的职务和用户甲相同,则利用函数依赖关系“职务->工资”,用户甲可通过自己的工资信息(如3000元),推出乙的工资也是3000元,从而导致高安全等级的敏感信息泄露。

隐蔽信道 convert channel 处理内容也是强制存取控制未解决的问题。下面的例子是,利用未被强制存取控制的SQL执行后反馈的信息,进行间接信息传递。

通常,如果 insert 语句对 unique 属性列写入重复值,则系统会报错且操作失败。那么,针对 unique 约束列,高安全等级用户(发送者)可先向该列插入(或者不插入)数据,而低安全等级用户(接收者)向该列插入相同数据——如果插入失败,则表明发送者已向该列插入数据,此时二者约定发送者传输信息位为 0 ;如果插入成功,则表明发送者未向该列插入数据,此时二者约定发送者传输信息位为 1 。通过这种方式,高安全等级用户按事先约定方式主动向低安全等级用户传输信息,使得信息流从高安全等级向低安全等级流动,从而导致高安全等级敏感信息泄露。

随着人们对隐私的重视,数据隐私 data privacy 成为数据库应用中新的数据保护模式,数据隐私保护也是当前研究的热点。所谓数据隐私是控制不愿被他人知道或他人不便知道的个人数据的能力。数据隐私范围很广,涉及数据管理中的数据收集、数据存储、数据处理和数据发布等各个阶段:

  • 在数据存储阶段,应避免非授权用户访问个人的隐私数据。通常可以使用数据库安全技术实现这一阶段的隐私保护,如使用自主访问控制、强制访问控制和基于角色的访问控制以及数据加密等。
  • 在数据处理阶段,需要考虑数据推理带来的隐私数据泄露。非授权用户能通过分析多次查询的结果,或者基于完整性约束信息,推导出其他用户的隐私数据。
  • 在数据发布阶段,应使包含隐私的数据发布结果满足特定的安全性标准。如发布的关系数据表首先不能包含原有表的候选码,同时还要考虑准标识符的影响。
    准标识符是能够唯一确定大部分记录的属性集合。在现有安全性标准中,k-匿名化 k-anonymization 标准要求,每个具有相同准标识符的记录组中,至少包括 k 条记录,从而控制攻击者判别隐私数据所属个体的概率。还有1-多样化标准 1-diversityt-临近标准 t-closeness 等,从而使攻击者不能从发布数据中,推导出额外的隐私数据。

要想万无一失地保证数据库安全,使其免于遭到任何蓄意的破坏,这几乎是不可能的。但是,高度的安全措施将使蓄意的攻击者付出高昂的代价,从而迫使攻击者不得不放弃他们的破坏企图。

【数据库系统】第一部分 数据库基础(4) 数据库安全性相关推荐

  1. sql数据库基础之数据库介绍

    sql数据库基础之数据库介绍,部分来至于该文章点击打开链接 1.什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改, ...

  2. [数据库基础篇]——数据库系统概述、数据模型、数据库系统的结构、数据库系统的组成

    目录 一.数据库系统概述 1.数据库的四个基本概念 2.数据管理技术的产生及发展 二.数据模型 两类数据模型 概念模型 逻辑模型 三.数据库系统的结构 三级模式结构 二级映像功能与数据独立性 外模式| ...

  3. 数据库基础知识——数据库的相关概念

    文章目录 1.数据库的好处 2.数据库相关概念 3.数据库存储数据的特点 1.数据库的好处 1.持久化数据到本地 2.可以实现结构化查询,方便管理 2.数据库相关概念 1.DB:数据库,保存一组有组织 ...

  4. 数据库基础(数据库的由来 + 第一、二、三范式)

    一.数据库的产生原理 1.1 无纸化办公 将数据存在文件中. 1.2 李氏查询-SQL 所有计算机的问题都可以通过增加一个中间层来解决. 中间层上要有逻辑的数据结构. 学生信息:[学号,姓名,性别,入 ...

  5. 【数据库基础】数据库中隔离性的四种级别及锁机制

    2019独角兽企业重金招聘Python工程师标准>>> 事务的隔离性一般分为4个级别: 1. Read Uncommitted 未授权读取,实质上该级别允许读取未提交的数据,就是允许 ...

  6. 软件测试oracle问题,数据库基础:Oracle数据库中时间问题比较

    关键字: 在监控.诊断.处理数据库 在以前的版本中,Oracle的时间计量单位是厘秒,使用厘秒最显而易见的问题就是可能有些操作是小于厘秒的.看上去这似乎不太常见,但是实际上在操作系统上很多操作都是以微 ...

  7. mysql数据库基础简介_MySql数据库基础之数据库简介及安装

    MySql数据库简介: 众所周知,MySql数据库是一款开源的关系型数据库,在Web应用方面,MySql是最好的.最流行的RDBMS(Relational Database Management Sy ...

  8. 【数据库基础】数据库的数据查询

    目录 一.实验目的 二.实验代码 三.代码汇总 一.实验目的 1.  查询全部商品信息. 2.查询类别为"cn002"的所有商品信息. 3. 查询类别为"cn001&qu ...

  9. 【数据库基础】数据库的视图操作

    一.实验目的 1. 定义"MIS"专业学生基本情况视图V_MIS,并根据视图查询结果. 2.将student.salebill.goods表中学生学号.姓名.商品名.商品售价,销售 ...

最新文章

  1. zabbix_get 无法获取值(解决思路)
  2. 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
  3. matlab plot绘制曲线
  4. 前端学习(2802):完成资讯页面详情
  5. 在Unity3D的网络游戏中实现资源动态加载
  6. sql server死锁_如何解决SQL Server中的死锁
  7. linux下文件下载中文,LINUX环境下资源下载中文目录及中文文件名称问题
  8. zeppelin 连接hive 认证方式_HIVE的学习之路(六)Hive的分组Join排序
  9. 基于SSM的NBA篮球球队运营系统
  10. MFC的定时器OnTimer
  11. 题解【NOIP2013_火柴排序】— 问题与转化
  12. 十大Ajax框架(排名不分先后)
  13. 【Mysql】Error 1826: Duplicate foreign key constraint 错误
  14. 微信小程序web-view使用audio标签播放音频文件时无法自动播放的问题
  15. ASP.NET Core开发-后台任务利器Hangfire使用
  16. 恒太照明在北交所上市:募资规模缩水三成,第三季度收入下滑
  17. passing 'unsigned char [150]' to parameter of type 'char *' converts between pointers to integer typ
  18. ArcGIS转GeoJSON,ArcGIS打开GeoJSON(【图说GIS】)
  19. Design下TextInputLayout结合EditText的简单使用
  20. 大数据与互联网的关系

热门文章

  1. 带exp在线计算机计算器使用,电脑系统自带科学计算器使用方法
  2. 创业第一步——改变固有思维,建立创业性思维
  3. ios设置App版本号
  4. 常见登录密码加密方式
  5. 微信公众号开发__微信网页授权并获取用户基本信息(是否关注公众号、头像、昵称等)
  6. 计算机中的越界英文怎么说,计算机与网络英语词汇(T4)
  7. 博士申请 | 美国密歇根州立大学ACTION Lab招收CV/ML方向全奖博士生
  8. Linux内核网络结构,和收发数据基本流程
  9. OpenGL颜色渐变
  10. Python 四舍六入五成双