数据库原理与应用笔记(四):数据库安全性

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 数据库安全性

4.1数据库安全性概述

4.1.1数据库不安全因素

4.1.2安全标准简介

4.2数据库安全性控制

4.2.1用户身份鉴别

4.2.2存取控制

4.2.3自主存取控制方法

4.2.4授权:授予与收回

4.2.5数据库角色

4.2.6强制存取控制方法

4.3视图机制

4.4 审计

4.5数据加密

4.6其他安全性保护


4.1数据库安全性概述

数据库的安全性是指保护数据库以防止不合法使用所造成的的数据泄漏、更改或破坏


4.1.1数据库不安全因素

1非授权用户对收据库的恶意存取和破坏,比如黑客盗取用户密码进行修改数据等

2数据库中重要或敏感的数据被泄露,比如黑客窃取某市机密文件

3安全环境的脆弱性


4.1.2安全标准简介

计算机以及信息安全技术最有影响的两个标准是什么?

TCSEC(桔皮书)和CC


从哪几个方面来描述安全性级别划分指标?

从安全策略、责任、保证和文档4个方面


根据计算机系统对各项指标的支持情况,TCSEC/TDI(紫皮书)将系统划分为4组7个等级,如下表格所示:


安全级别 定义
A1 验证设计
B3 安全域
B2 结构化保护
B1 标记安全保护
C2 受控的存取保护
C1 自主安全保护
D 最小保护


其中,C1级能够进行自主存取控制(DAC)B1级能够实施强制存取控制(MAC)

CC评估保证级(EAL)的划分如下表格所示:

评估保证级 定义 TCSEC安全级别(近似相当)
EAL1 功能测试
EAL2 结构测试 C1
EAL3 系统地规划和检查 C2
EAL4 系统地设计、测试和复查 B1
EAL5 半形式化设计和测试 B2
EAL6 半形式化验证的设计和测试 B3
EAL7 形式化验证的设计和测试 A1


4.2数据库安全性控制

4.2.1用户身份鉴别

用户身份鉴别是数据库管理系统提供的最外层安全保护措施。每个用户在系统中都有一个用户标识。每个用户标识由用户名user name和用户标识号UID两部分组成,UID在系统的整个生命周期内是唯一的。


常用的用户鉴别方式有以下几种:

1静态口令鉴别

简单的说就是输入QQ号和QQ密码,为什么是静态?QQ号和QQ密码是不会变化的

2动态口令鉴别

就是现在你要登陆CSDN,你可以通过短信验证码来登陆,这个短信验证码是不断变化的,所以是动态的

3生物特征鉴别

参考扫脸支付

4智能卡鉴别

某集团总裁刷黑卡验证自己的身份,吓坏服务员


4.2.2存取控制

目的:确保访问数据库的用户都是有资格的

存取控制机制主要包括定义用户权限合法权限检查两部分

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

4.2.3自主存取控制方法

用户权限是由两个要素组成的:数据库对象和操作类型

在数据库系统中定义存取权限称为授权authoriaztion

在关系数据库系统中,存取控制的对象不仅有数据本身(基本表中的数据、属性列上的数据),还有数据库有模式(包括模式、基本表、视图和索引的创建等)如下表所示存取权限


对象类型 对象 操作类型
数据库模式 模式 CREATE SCHEMA
- 基本表 CREATE TABLE,ALTER TABLE
- 索引 CREATE INDEX
数据 基本表和视图 SELECT,INSERT,UPDATE,DELETE,REFERENCE,ALL PRIVILEGES
- 属性列 SELECT,INSERT,UPDATE,REFERENCE,ALL PRIVILEGES



4.2.4授权:授予与收回

1授权GRANT

一般语句格式为

GRANT<权限>,[<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
TO<用户>[,<用户>]
[WITH GRANT OPTION]

带有with grant option则某获得此权限的用户可以把权限再赋予其他人,但是其他人不能赋回给授权人


2收回REVOKE

REVOKE<权限>,[<权限>]…

ON<对象类型><对象名>[,<对象类型><对象名>]…

FROM<用户>[,<用户>]…

[CASCADE|RESTRICT]


CASCADE为级联,即如果把x把权限授予给y,在收回x的权限的同时也会把y的收回


3创建数据库模式的权限

CREATE USER语句一般格式如下:

CREATE USER[WITH][DBA|RESOURCE|CONNECT]


4.2.5数据库角色

1角色的创建

CREATE ROLE<角色名>


2给角色授权

GRANT<权限>[,<权限>]…
ON<对象类型>对象名
TO<角色>[,<角色>]…


3将一个角色授予给其他的角色或用户

GRANT<角色1>[,<角色2>]…
TO<角色3>[,<用户1>]…
[WITH ADMIN OPTION]


4角色权限的收回

REVOKE<权限>[,<权限>]…
ON<对象类型><对象名>…
FROM<角色>[,<角色>]…

4.2.6强制存取控制方法

在强制存取控制中,数据库管理系统所管理的全部实体被分为主体客体两大类

主体是活动的实体,包括用户,用户的进程。客体是被动实体,受主体操控的,即文件,基本表等。数据库管理系统为每个实例分配了一个敏感度标记

敏感度标记分为若干级别,例如绝密TS,机密S,可信C,公开P

密级的次序是TS>=S>=C>=P

强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性


4.3视图机制

视图机制简单来说就是为每一个不同的用户都有不同的视图,把要保密的数据隐藏起来,比如大学计算机老师只能查看到计算机学生的视图,系主任可以查看计算机学生,软件工程学生等学生的视图


4.4 审计

审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员可以利用审计日志监控数据中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。

AUDITNOAUDIT语句用来设置审计功能和取消审计功能


4.5数据加密

加密就是把明文变为密文

1存储加密
2传输加密


4.6其他安全性保护

1推理控制机制inference control是用来避免用户利用其能够访问的数据推知更高密级的数据

例如有A和B相同等级的职员,A的工资是3千块,因为A的等级比较低,不知道其他用户的工资,但通过和B接触,得知B的工资是3千块,所以A得出了同等级的职员的工资都是3千块,这就获取了更高级的机密


2隐蔽通道covert channal处理内容也是强制存取控制未解决的问题

例如A和B,A的等级较高,B的等级较低,两个人通过一条信道进行交流,当A发生信息后,信道塞满,则B发送不了信息,B发送的时候显示出错,这时候B就知道了A发送了信息(相当于逆推),这就导致了高等级的信息向低等级的信息泄露了


3数据隐私data privacy,控制不愿被他人知道或他人不便知道的个人数据的能力

一般通过数据库的安全技术实现


笔记使用教材:《数据库系统概论》 王珊 萨师煊 编著
视频课:中国大学MOOC 中国人民大学 数据库系统概论














相关文章
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
174 64
|
19天前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
27天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
41 3
|
27天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
51 2
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
39 2
|
2月前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
2月前
|
存储 数据库 数据库管理
什么是数据库事务安全性控制
【10月更文挑战第15天】什么是数据库事务安全性控制
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
|
17天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
30 1
|
19天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
32 4