数据库原理之数据库安全性(详细知识点)
数据库的安全性
- 数据库的安全性
- 1.1 安全性概述
- 1.1.1 数据库的不安全因素
- 1.1.2 安全标准
- 1.2 数据库安全性控制
- 1.2.1 存取控制流程
- 1.2.2 用户身份鉴别
- 1.2.3 存取控制
- 1.2.4 自主存取控制方法(DAC)
- 1.2.5 强制存取控制方法(MAC)
- 1.2.6 授权:授权与回收
- 1.2.61 授权
- 1.2.62 回收权限
- 1.2.7 创建数据库模式的权限
- 1.2.71 connect
- 1.2.72 resource
- 1.2.73 DBA
- 1.2.74 总结
- 1.2.8 数据库角色
- 1.2.81 数据库角色的概念
- 1.2.82 创建数据库角色
- 1.2.83 给角色授权
- 1.2.84 将一个角色授权给其他角色或者所有用户
- 1.2.85 角色权限的收回
- 1.2.86 角色权限的修改
- 1.2.9 强制存取控制方法(MAC)
- 1.2.91 自主存取控制方法的缺点
- 1.2.92 强制存取控制的特点
- 1.2.93 强制存取控制的主体与客体
- 1.2.94 敏感度标记
- 1.2.95 强制存取控制的规则
- 1.2.96 强制存取控制方法与自主存取控制方法的关系
- 1.2.97 MAC+DAC的安全检查
- 1.3.0 视图机制
- 1.3.1 审计(audit)
- 1.3.11 什么是审计
- 1.3.12 审计事件
- 1.3.13 审计功能
- 1.3.14 开启与关闭审计的语句
- 1.3.15 审计的分类
- 1.3.2 数据加密
- 1.3.21 什么是数据加密
- 1.3.22 加密的基本思想
- 1.3.23 加密方法 - - 存储加密
- 1.3.24 加密方法 - - 传输加密
- 1.3.25 基于安全套接层协议SSL传输方案的实现思路
- 1.3.3 其他安全性保护![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507224001515.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9jYXN0bGU=,size_16,color_FFFFFF,t_70)
- 1.3.3 小结
数据库的安全性
1.1 安全性概述
1.1.1 数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- DBMS提供的安全措施:用户身份鉴别、存取控制和视图等
- 数据库中重要或敏感的数据被泄露
- DBMS提供的安全措施:强制存取控制、 数据加密存储、 加密传输等
- 审计日志
1.1.2 安全标准
- TCSEC标准/TDI标准
- 安全级别划分:A1,B3,B2,B1,C2,C1,D
- 总结:四组七个等级
- D
- 将一切不符合更高标准的系统均归于D组
- DOS是安全标准为D的操作系统(DOS在安全性方面几乎没有专门的机制来进行保障)
- C(C1,C2)
- C1
- 非常初级的自主安全保护
- 能够实现对用户和数据的分离,进行 自主存取控制(DAC), 保护或限制用户权限的传播
- C2
- 安全产品的最低档次
- C1
- B(B1,B2,B3)
- B1
- 标记安全保护。安全或者可信的产品
- 对系统的数据加以标记、对标记的主题和客体实施强制存取控制(MAC)、审计等安全机制
- B2
- 结构化保护
- 建立形式化的安全策略模型并且对模型内的所有主题和客体实施DAC和MAC
- B3
- 安全域
- B1
- A(A1)
- A1
- 验证设计
- A1
- D
- 按照系统可靠或可信程度逐渐增高
- 各安全级别之间都具有一种偏序向下兼容的关系:也就是较高安全性级别提供的安全保护要包含较低级别的所有保护要求
- CC标准
- 提出国际公认的表述信息技术安全性结构
1.2 数据库安全性控制
1.2.1 存取控制流程
- 对提出sql访问请求的数据库用户进行身份鉴别
- 在 sql处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制
- 对用户访问行为和关键操作进行审计,对异常用户行为进行简单入侵检测
1.2.2 用户身份鉴别
- 系统提供的最外层安全保护措施
- 用户标识:由用户名和用户标识号组成,其中 用户标识号在系统整个生命周期内唯一
- 鉴别的方法
- 静态口令鉴别
- 动态口令鉴别:一次一密
- 生物特征鉴别:指纹、虹膜等
- 智能卡鉴别:硬件加密
1.2.3 存取控制
- 存取控制的 机制组成:
- 定义用户权限(也称为 授权),并且将用户权限登记到数据字典中
- 定义用户在那些数据库对象上进行哪些类型的操作
- 合法权限检查
- 定义用户权限(也称为 授权),并且将用户权限登记到数据字典中
- 存取控制子系统:用户权限定义和合法权限检查共同构成
1.2.4 自主存取控制方法(DAC)
- C2级
- 用户对不同的数据对象有不同的存取权限
- 不同的用户对同一对象也有不同的权限
- 用户还可以将拥有的存取权限进行转授给其他用户
- 通过GRANT语句和REMOVE语句实现授权和回收权限
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlcLehqE-1588862081163)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200503174206483.png)]
1.2.5 强制存取控制方法(MAC)
- B1级
- 每个数据对象都被标以一定的密级
- 每个用户也被授予某一个级别的许可证
- 对于任意一个对象,只有拥有合法许可证的用户才可以进行存取
1.2.6 授权:授权与回收
1.2.61 授权
GRANT 进行授权
一般格式:(将对指定操作对象的指定操作权限授予指定的用户)
grant 权限1,权限2...
on 对象类型 对象名
to 用户1,用户2
[with grant option]
with grant option: 作用是该权限是否可以进行传播
需要注意with grant option 不允许循环授权
u1 -> u2 -> u3 此时u3不允许授权给u1
例如:将查询Student表权限授予用户u1
grant select on table Student to u1
例如:将对Student表和Course表的全部权限授予用户u2和u3
grant all priviliges on table Student,Course to u2,u3
例如:对表sc的查询权授予所有用户
grant select on table sc to public
例如:把查询Student表和修改学生学号的权限给用户u4
grant update(Sno),select on table Student to u4
对属性列的授权的时候必须要明确指定相应的属性列名
1.2.62 回收权限
remove 进行回收权限
一般格式:
remove 权限1,权限2..
on 对象类型 对象名
from 用户1,用户2...
例如:将用户u4修改学生学号的权限收回
remove updata(Sno) on table Student from u4
例如:将所有用户对表sc的查询权限收回
remove select on table sc from public
对于通过多次授权得到的权限,在收回的时候需要使用cascade关键字进行级联收回
例如:u3将对sc表的insert权限授权过给u4,u5,现在想要将u3的权限收回
remove insert on table sc from u3 cascade
1.2.7 创建数据库模式的权限
数据库管理员在创建用户时实现
create user 用户名WITH DBA|RESOURCE|CONNECT
1.2.71 connect
- 拥有connect权限的用户 不能创建新用户,不能创建模式,也不能创建基本表。但是 可以进行登录数据库
1.2.72 resource
- 拥有resource权限的用户:可以创建基本表和视图。 但是, 不能创建新的用户
1.2.73 DBA
- 拥有DBA权限的用户就是系统的 超级用户 可以创建新的用户、创建模式、创建基本表和视图等等。 并且还拥有对数据库对象的存取权限。还可以将这些权限全部授予一般的用户
1.2.74 总结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNtcLNys-1588862081168)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200503205715038.png)]
1.2.8 数据库角色
1.2.81 数据库角色的概念
- 数据库角色:被命名的一组与数据库操作相关权限
- 角色是权限的集合
- 作用: 简化授权的过程
1.2.82 创建数据库角色
create role 角色名
例如:创建一个角色r1
create role r1
1.2.83 给角色授权
grant 权限1,权限2...
on 对象类型
to 角色1,角色2...
例如:使用grant语句,让角色r1拥有Student表的select、update、insert 权限
grant select,update,insert on table Student to R1
1.2.84 将一个角色授权给其他角色或者所有用户
grant 角色1,角色2
to 角色3.../用户..
[with admin option]
例如:将R1角色授予王平、张明、赵玲,使他们具有r1所有包含的全部权限
grant R1 to 王平、张明、赵玲
在指定with admin option 语句之后,则获得某种权限的角色或用户还可以将这种权限授予其他角色
授权者是角色的创建者或者是拥有这个角色上的admin option
1.2.85 角色权限的收回
revoke 权限1,权限2
on 对象类型 对象名
from 角色1,角色2
例如:一次性通过收回R1来回收王平的3个权限
revoke R1 from 王平
revoke的执行者是角色的创建者或者是拥有这个角色上的admin option
1.2.86 角色权限的修改
使得角色R1在原来的基础上增加了Student表的delete权限
grant delete on table Student to R1
将R1减少select权限
renvoke select on table Student from R1
1.2.9 强制存取控制方法(MAC)
1.2.91 自主存取控制方法的缺点
- 因为这种机制仅仅通过对数据的 存取权限来进行安全控制,对数据本身并没有安全性标记
- 而强制存取控制方法就是通过控制所有主客体实施强制存取控制策略
1.2.92 强制存取控制的特点
- 保证更高的安全性
- 用户不能直接感知或者进行控制
- 适用于对数据有严格而固定密级分类的部门
- 军事部门
- 政府部门
1.2.93 强制存取控制的主体与客体
- 在强制存取控制中,数据库管理系统所管理的全部实体被分为 主体与客体
- 主体是系统中的活动实体
- 数据库管理系统所管理的用户
- 代表用户的各个进程
- 客体是系统中的被动实体,受主体操纵
- 文件、基本表、索引、视图
1.2.94 敏感度标记
- 对于每个主体和客体,DBMS都会为他们每个实例指派一个敏感度标记
- 分为:
- 绝密 TS
- 机密 S
- 可信 C
- 公开 P
- TS >= S >= C >=P
其中,主体的敏感度标记为许可证级别,客体的敏感度标记为密级
1.2.95 强制存取控制的规则
- 仅当主体的许可证级别 大于或等于 客体的密级时,该主体才能 读取 相应的客体
- 仅当主体的许可证级别 小于或等于 客体的密级的时候,该主体才能 写 相应的客体
1.2.96 强制存取控制方法与自主存取控制方法的关系
实现强制存取控制时要首先实现自主存取控制
- 因为较高安全级别提供的安全保护要包含较低级别的所有保护
自主存取控制与强制存取控制共同构成了数据库管理系统的安全机制
1.2.97 MAC+DAC的安全检查
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BHJvgbuw-1588862081171)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200507101211160.png)]
1.3.0 视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定的安全保护
间接地实现支持存取谓词的用户权限定义
例如:建立计算机视图,把该视图的select权限授予给王平,并且把该视图上的所有操作权限都授予张明
1. 应该创建视图 create view CS_Studnet as select * from Student where Sdept = 'CS'2. 将视图的权限授予王平 grant select on CS_select to 王平3. 将所有权限授予张明 grant all privileges on CS_Student to 张明
1.3.1 审计(audit)
1.3.11 什么是审计
- 审计就是启用一个专门的审计日志(auditlog)将用户对数据的所有操作记录在上面
- 审计员利用审计日志监控数据库中的各种行为,找出非法存取数据的人、时间和内容
- 审计很费时间和空间
- 是一种事后检查的安全性机制
1.3.12 审计事件
- 服务器事件
- 审计数据库服务器发生的事件
- 系统权限
- 对系统拥有的结构或模式对象进行操作的审计
- 要求该操作的权限是通过系统权限获得的
- 语句事件
- 对sql语句(DDL,DML,DQL以及DCL语句)
- 模式对象事件
- 对特定模式对象上进行的select或DML操作的审计
1.3.13 审计功能
- 基本功能
- 提供多种审计查阅方式提供多种审计查阅方式
- 多套审计规则
- 提供审计分析和报表功能
- 审计日志管理功能
- 防止审计员 误删审计记录,审计日志必须先转储后删除
- 对转储的审计记录文件提供完整性和保密性保护
- 只允许审计员查阅和转储审计记录,不允许任何用户新增或者修改审计记录等
- 提供查询审计设置及审计记录信息的专门视图
1.3.14 开启与关闭审计的语句
Audit 设置审计功能
·例如:对修改SC表结构或者修改SC表数据的操作进行审计
audit alter,update on SC
noAudit 取消审计功能
例如:取消对SC表的一切审计
noaudit alter,update on SC
1.3.15 审计的分类
用户级审计
- 任何人都可以设置的审计
- 主要是用户针对自己创建的数据库表和视图进行审计
系统级审计
- 只允许数据库管理员设置
- 检测成功或失败的登录要求、检测授权和收回操作以及其他数据库级权限下的操作
1.3.2 数据加密
1.3.21 什么是数据加密
- 数据加密是防止数据库中数据在存储和传输中失密的有效手段
1.3.22 加密的基本思想
- 根据一定的算法将原始数据(明文)变换为不可直接识别的格式(密文)
1.3.23 加密方法 - - 存储加密
存储加密是一种透明存储加密、是一种内核级加密,对用户完全透明
将数据在写入磁盘的时候对数据进行加密,在授权用户读取数据时再对他进行解密
存储加密 只需要在创建表语句中说明需要加密的字段即可,不需要再数据库的应用进行任何的修改
优点:性能较好,安全完备性较高
1.3.24 加密方法 - - 传输加密
- 链路加密
- 在链路层进行加密
- 传输信息由报头和报文两部分组成
- 报头和报文均进行加密
- 端到端加密
- 在发送端加密,接收端解密
- 只加密报文,不加密报头
- 因为所需要密码设备数量相对较少,容易被非法监听者发现并从中获取敏感信息
1.3.25 基于安全套接层协议SSL传输方案的实现思路
在这里插入图片描述
1.3.3 其他安全性保护
1.3.3 小结
- 实现数据库系统安全性的技术和方法
- 用户身份鉴别
- 存取控制技术:自主存取控制(DAC)和强制存取控制(MAC)
- 视图技术
- 审计技术
- 数据加密存储和加密传输
数据库原理之数据库安全性(详细知识点)相关推荐
- 数据库原理及应用(详细)
数据库原理及应用 Database Principles and Applications -JAING 第一章 绪论: 1.1术语 1.数据(Data) 数据是数据库中存储的基本对象.定义为描述事务 ...
- [数据库原理] 理清数据库范式(1NF、2NF、3NF、BCNF)
文章目录 数据库范式概念 第一范式(1NF) 第二范式(2NF) 不满足第2范式可能出现的问题 第三范式(3NF) NC范式(BCNF) 总结(考试要考) 数据库范式概念 数据库范式:Normal f ...
- dw连接mysql数据库原理_Dreamweaver数据库路径是什么
Dreamweaver数据库路径是什么 一个可视化的网页设计工具,一个HTML编辑器,支持最新的HTML标准,包括动态 HTML.在编辑上你可以选择可视化方式或者你喜欢的源码编辑方式.下面是小编为大家 ...
- 数据库原理mysql_数据库原理:MySql的安装
1.安装包的下载(MySQL-v5.7.25 )(NavicatforMySQL_11.2.15): 数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内 ...
- java中mysql数据库原理_MySql数据库索引原理
本文主要是阐述索引机制,主要是说明存储引擎Innodb 第一部分主要从及理论层面讨论MySQL索引的数理基础. 第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的实现讨论聚集索引.非聚集索 ...
- 【SQL语言】数据库原理与设计
目录 第五章 SQL语言 5.3 简单查询(对一个表) 5.4 连接查询 5.5 聚集函数 5.6 嵌套查询 5.7 集合运算 5.8 视图的创建和使用 5.9 更新操作 第六章 高级SQL语言 6. ...
- 数据库原理与应用课程知识点
数据库原理与应用课程知识点 文章目录 数据库原理与应用课程知识点 **第一章 绪论** 数据.数据库.数据库管理系统.数据库系统的概念 数据管理技术发展的三个阶段及各阶段的优缺点 概念模型中的基本术语 ...
- 软考数据库详细知识点整理(全)
目录 第一章 计算机系统基本知识 1.1 计算机系统 1.1.1 计算机硬件组成 1.1.2 中央处理单元 1.1.3 数据表示 1.1.4 校验码 1.2 计算机体系结构 1.2.1 体系结构分类 ...
- 数据库原理概论理论知识点总结
数据库概论 一.绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统的结构 二.关系数据库 2.1 关系数据结构及形式化定义 2.2 关系操作 2.3 关系的完整性 2.4 关系代数 三 ...
最新文章
- Python系统的下载与安装教程
- python - 多线程简单实现
- 分享PWM输入模式捕捉4路PWM波形的周期和占空比
- 本地运行flowable_在CockroachDB上运行Flowable
- Android 支付宝登录
- 大动作!这所“国字头”大学获批成立12个新学院
- 快速正确的修改变量的命名和如何正确规范的注释
- 嵌入式Linux系统编程学习之十五sigaction信号处理机制
- 华为鸿蒙os正在国外小规模测试,华为鸿蒙OS正小规模测试
- Visual C# 2008+SQL Server 2005 数据库与网络开发--9.2.1 XML文档
- python可以自学编程吗-编程学习第一步,让你20天搞定Python编程
- 计算机软件的前景,2020计算机软件专业就业前景如何?
- 有哪些好用的游戏加速器推荐?
- 经典CNN图像分类网络汇总
- mysql添加开机自启_【实操篇】如何设置MySQL开机自启动
- ubuntu搭建NAS服务器——序
- 名词用作动词举例_古语名词使动用法解析
- SD card boot and flashing tool for TI davinic DM368
- PS实例之制作晶莹剔透气泡
- java中级工程师所需的技能_Java 工程师要具备哪些技能或技术?