第四章 数据库安全性

news/2025/1/12 3:59:14/

问题的提出

(1)数据库的一大特点是数据可以共享

(2)数据共享必然带来数据库的安全性问题

(3)数据库系统中的数据共享不能是无条件的共享

 这就引发了数据库安全性问题

1.数据库安全性概述

数据库的安全性是指保护数据库

以防止不合法使用所造成的数据泄露,更改或破坏

系统安全保护措施是否有效是数据库系统

主要的性能指标之一

1.1数据库的不安全因素

 

 

1.2安全标准简介

 最重要的两个数据库安全标准

TCSEC标准和CC标准最为重要:

TCSEC(trusted computer system evaluation criteria)1985年美国国防部

可信计算机系统评估标准准则

后来1993年

加拿大,美国,欧洲将这三种准则集合成统一的,恁被广泛使用的IT安全准则

标准,这一行动被称为通用准则CC(common criteria)项目

CC 2.1于1999年被ISO采用国际标准

2001年被我国采用为国家标准


目前CC已经基本取代了TCSEC,成为评估信息产品安全性的主要标准。

 

 从这4个方面来描述安全性级别划分的标准:

安全策略

责任

保证

文档

 更具计算机系统对各项指标的支持情况,TCSEC将系统分为

4组(division)7个等级

 

将一切不符合更高标准的系统归于D组

ep:

dos是安全标准为D级的操作系统

它具有操作系统的基本功能:文件系统,进程调度等

dos在安全性方面几乎没有什么机制来保障

 

 C1级

非常初级的自我安全保护

能够实现用户和数据的分离,进行自我存取控制(DAC),

保护或限制用户权限的传播

现有的商业系统稍作改进即可满足

 

 

 

 

 

 

2.数据库安全性控制

在一般计算机系统中,安全措施是一级一级层层设置的。

例如,在图4.2所示的安全
模型中,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定,
只有合法的用户才准许进入计算机系统;

对已进入系统的用户,数据库管理系统还要进行
存取控制,只允许用户执行合法操作;

操作系统也会有自己的保护措施;

数据最后还可以
以密码形式存储到数据库中。
 

  

 

 

 

 

2.1用户身份鉴别

 用户身份鉴别(identification&authentication)

系统提供的最外层安全保护措施

用户标识:由用户名和用户标识号(UID)组成

 

4.2存取控制

 

 存取控制机制组成:

(1)定义用户权限,并将用户权限登记到数据字典中

用户对某一数据对象的操作权力称为权限

DBMS提供适当的语言来定义用户权限,存放在数据字典中

称作安全规则或授权规则

(2)合法权限检查

用户发出存取数据库操作请求

DBMS查找数据字典,进行合法权限检查

用户权限定义和合法权检查机制一起组成了DBMS的存取控制子系统

 

自主存取控制方法

(1)用户对不同的数据对象有不同的存取权限

(2)不同的用户对同于同一对象也有不同的权限

(3)用户还可以将其拥有的存取权限转授给其他用户

 结构化查询语言通过

grant语句和revoke语句实现自主存取控制

数据库权限是由两个部分组成的:

对象和操作类型

 

 

 所以grant语句:

就是对指定操作对象的指定操作权限授予给指定的用户

 有with grant option

则可以再转授权限,没有指定,则不能传播权限

DBMS不允许循环授权

 

 能够进行权限授予的人有:

数据库管理员

数据库对象创建者

拥有给权限的用户

 接受该权限的用户可以是

一个或多个具体用户

或者PUBLIC

 最简单的一种授权操作:
将一种权限授予一个用户

 全部权限可以用简单的

all privileges来代表

一次向多个用户传播多种同类对象的权限

所有用户可以用public来代表

 

 记住对属性列的授权必须明确指出对应的属性列名

(一次完成了对基本表和属性列这些不同对象的授权

属性列对象放在权限名称后面)

 

with grant option 

我们由上可知:

U5不仅拥有了对表SC的insert权限,还可以传播此权限

前面我们讨论了如何授予权限

授予的权限可以由数据库管理员或者其他授权这用revoke语句收回

 

 注意这还有可选选项

cascade:级联回收——如果回收了这个用户的权限,那么你还可以把他

传播出去的权限回收回来

 回收权限时,如果使用了级联回收,那么如果出现循环授权,那么

会找不到起始点。

 

 前面的例子中,U5将insert权限传播给了U6和U7

 

 

 DBA想把这些完全相同的权限

授权给不同的用户

非常麻烦!!!!

 

 

 to 的对象不再是用户,而是特定的用户

 

授予者是角色的创建者或拥有在这个角色上的ADMIN
OPTION

 

 

 

 

除了对学生表的更新,插入和查找

我们现在还增加了

delete权限 

 

 

 财务人员可以创建一个工资副本表

将原本工资表上的数据查询到上面(变成它自己的数据)

再将副本表的查询权限设为公开

自主存取控制仅仅通过对数据的存取权限来进行安全控制

数据本身并无安全性标识

 

 

 

 

 

 

 原来是机密的信息,把他存到公开中。那么都能看到机密信息

 数据的密级标记会被带过去

 就不会数据泄密了

 

 

4.3视图机制

可以对不同的用户定义不同的视图,把数据对象限制在一定的范围内。

视图机制间接地实现支持存取谓词的用户权限定义。

例如,

在某大学中

假定王平老师只能检索计算机系学生的信息,

系主任张明具有检索和增删改计算机系学生信息的所有权限。

这就要求系统能支持“存取谓词”的用户权限定义。在不直接支持存取
谓词的系统中,可以先建立计算机系学生的视图CS_ Student, 然后在视图上进一步定
义存取权限。

 这样我们就可以先建立视图

然后将视图的不同权限授权给王平和张明老师

4.4审计

审计功能是DBMS达到C2以上安全级别必不可少的一项指标

审计功能是把用户对数据库的所有操作放到审计日志(audit log)中

审计员可以用审计日志监控数据库中的各种行为

重现导致数据现有状况的一系列事件

找除非法存取数据的人,时间和内容

 

1.审计事件

 

2.审计功能

 3.audit语句和noaudit语句

audit语句用于设置审计功能

noaudit语句取消审计功能

审计一般可分为用户级审计和系统级审计:

用户级审计是任何用户可设置的审计:主要是用户对自己创建的数据库表

或视图进行审计,记录用户对这些表或视图的成功或不成功的访问要求以及

各种类型的SQL操作。

系统级审计只能由数据管理员设置,是以监测成功或失败的登陆要求,

检测授权和收回操作以及其他数据库级权限下的操作

 审计什么

audit   DML

on  对象

审计设置以及审计日志一般都存储在数据字典中。

必须把审计开关打开(即把系统参数audit _trail 设为true),

才可以在系统表SYS_ AUDITTRAIL中查看到审计信息。
数据库安全审计系统提供了一种事后检查的安全机制。

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

4.5数据加密

对于高敏感数据:财务数据,军事数据等

还可以采用数据加密技术

数据加密是防止数据库数据在存储和传输中失密的有效手段

加密的基本思想是

更具一定的算法将原始数据——明文(plain text)

变换为不可直接识别的格式——密文(cipher text)

从而使得不知道解密算法的人无法获知数据的内容

数据加密包括存储加密和传输加密

1.存储加密

提供透明和不透明两种存储加密方式

透明存储加密是内核级加密保护方式,对用户完全透明

而非透明存储加密则是通过多个加密函数实现的。

 

2.传输加密

在客户/服务器结构中,

数据库用户与服务器之间若采用明文方式传输数据,容易被网
络恶意用户截获或篡改,存在安全隐患。

因此,为保证二者之间的安全数据交换,数据库
管理系统提供了传输加密功能。
 

常用的传输加密方式如链路加密和端到端加密。

其中,链路加密对传输数据在链路层进行加密,

它的传输信息由报头和报文两部分组成,前者是路由选择信息,而后者是传送
的数据信息。这种方式对报文和报头均加密。

相对地,端到端加密对传输数据在发送端加
密,接收端解密。它只加密报文,不加密报头。

与链路加密相比,它只在发送端和接收端
需要密码设备,而中间节点不需要密码设备,因此它所需密码设备数量相对较少。但这种
方式不加密报头,从而容易被非法监听者发现并从中获取敏感信息。

上图是基于安全套接协议(security socket layer,SSL)的数据库管理系统可信方案

采用端到端的传输加密方式

通信双方协商建立可信连接

一次会话采用一个密钥

传输数据在发送端加密,接收端解密

有效降低重放攻击和恶意篡改的风险

实现思路包含:

 


数据库加密使用已有的密码技术和算法对数据库中存储的数据和传输的数据进行保
护。

加密后数据的安全性能够进一步提高。

即使攻击者获取数据源文件,也很难获取原始
数据。

但是,数据库加密增加了查询处理的复杂性,查询效率会受到影响。

加密数据的密钥的管理和数据加密对应用程序的影响也是数据加密过程中需要考虑的问题。

6.其他安全保护

在自主存取控制和强制存取控制外

还有推理控制以及数据库应用中的隐蔽信道和数据隐私保护技术

利用低安全等级信息推导出

 函数依赖关系的推理出

其无权访问的高安全等级信息

 

 


http://www.ppmy.cn/news/1003811.html

相关文章

Hutool中 常用的工具类和方法

文章目录 日期时间工具类 DateUtil日期时间对象-DateTime类型转换工具类 Convert字符串工具类 StrUtil数字处理工具类 NumberUtilJavaBean的工具类 BeanUtil集合操作的工具类 CollUtilMap操作工具类 MapUtil数组工具-ArrayUtil唯一ID工具-IdUtilIO工具类-IoUtil加密解密工具类 …

音频光耦合器

音频光耦合器是一种能够将电信号转换为光信号并进行传输的设备。它通常由发光二极管(LED)和光敏电阻(光电二极管或光敏电阻器)组成。 在音频光耦合器中,音频信号经过放大和调节后,被转换为电流信号&#xf…

基于 Flink Paimon 实现 Streaming Warehouse 数据一致性管理

摘要:本文整理自字节跳动基础架构工程师李明,在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分: 背景 方案设计 当前进展 未来规划 点击查看原文视频 & 演讲PPT 一、背景 ​ 早期的数仓生产体系主要以离线数仓为主&#xf…

《命运》阅读笔记

《命运》阅读笔记 2023年5月17号在杭州的小屋读完,我读完后,脑海里经常把余华的《活着》和这本《命运》的故事情节搞混淆,几乎都是讲着生活的苦难。全文以阿太(外婆的妈妈)的视角,在她九十九岁的人生里&…

一文学透设计模式——工厂模式

工厂模式 概念 牛马人生公司最近开启了线上直播,直播中牛马人生公司宣称他们建造了一家世界上最为先进的工厂,任何人只要去到工厂面前,告诉工厂你要什么牌子的汽车,工厂就会给你一辆什么牌子的汽车。 这引起了粉丝朋友的注意&a…

Java中运算符要注意的一些点

目录 1. 算术运算符 1. 1 基本四则运算符:加减乘除模( - * / %) 1.2. 增量运算符 - * % 2. 关系运算符 3. 逻辑运算符 3.1. 逻辑与 && 3.2. 逻辑 || 3.3. 逻辑非 ! 3.4. 短路求值 4. 位运算符 4.1. 按位与 &: 如果两个二进制位都是 …

使用中间人攻击的arp欺骗教程

文章目录 前言一、查看网络接口配置第 1 步:从受害者处获取 IP 配置第 2 步:在 Linux 中打开数据包转发第 3 步:使用 arpspoof 将包重定向到您的计算机步骤4:拦截来自路由器的包裹步骤5:从目标的浏览器历史记录中嗅探图…

【C++】BSTree 模拟笔记

文章目录 概念插入和删除非递归实现中的问题递归中的引用简化相关OJ复习直达 概念 由下面二叉搜索树的性质可以知道,中序遍历它便可以得到一个升序序列,查找效率高,小于往左找,大于往右走。最多查找高度次,走到到空&am…