当前位置: 首页 > news >正文

数据库原理及应用_数据库管理和保护_第5章数据库的安全性_理论部分

前言

        "<数据库原理及应用>(MySQL版)".以下称为"本书"中第5章前6节内容

引入

        数据库的安全性是非常重要的,表现在两个方面:一数据的访问权限,二数据的物理安全.本书在这一章前6节基本上都是理论性的内容,选择其中重要部分进行解读.

5.1数据库安全性概述

大体在讲解数据库安全的重要性.其中提到了"自主"和"强制"存取的概念

自主存取控制

 读SELECT插入INSERT修改UPDATE删除DELETE
用户1YYYY
用户2YNNN
用户nYYNN
表A的自主存取控制表

如上表,对于每个表都可以设置一个自主存取权限表,列出每个用户的操作权限

 索引Index资源Resource修改Alteration撤销Drop
用户1YYYY
用户2YNNN
用户nYYNN
数据库B的自主存取权限表

同理对于每个数据库,也可设置一个权限表.

自主存取控制的优点是"精细",也是常见的方法.

强制存取控制

可以用两个表来说明含义

 用户等级 数据等级
用户11数据12
用户22数据24
  
用户n6数据n5
用户等级表数据等级表

 用户和数据(表或者数据库)的关系是:当用户等级数字小于数据等级数字,即拥有存取权限.例如用户1的等级为1等(假设为最高等),则对所有表(或所有数据库)的数据拥有权限.再例如用户n的等级为3等,有个表的数据等级为2等.则用户n被禁止访问这个表(或者可访问但禁止修改删除).

5.2数据库安全控制

        本节从4个方面来说明数据库安全性,图5-1计算机系统的安全模型

1.用户标识与鉴别能力

        例如用户名密码输入,搜索数据库中的user表,查找用户名,如果不能匹配,则显示"该用户不存在";匹配到之后用SELECT语句搜索其密码,再用输入密码与表中密码匹配,匹配成功允许登陆,否则显示"密码输入不正确"---以上也是登陆的需求描述,可以根据需求写出算法.

        本书P137提到了"用户的特有东西识别",例如先行用电子狗验证,再识别用户和密码.

        其余略

2.数据库用户存取权限控制

        和5.1节中内容相关,此处的授权与取消等内容,在后面有详细讲述.

3.操作系统安全保护

        数据库管理软件DBMS始终是安装在操作系统上的.他与数据的交互依赖于操作系统.如果操作系统有漏洞可能导致数据泄露或被破坏.但对于非操作系统的数据库程序员来说,要懂操作系统,本书并没有相关讲解.

4.数据加密存储

        即使数据被非法取得,数据的安全性也可以由加密来保护.在后面有所讲述.

5.3视图机制

        前面提到过视图的意思是:查询语句文件化.通过一个表的查询产生视图,相当于生成表的副本.

        视图机制是在视图(表副本)的基础上,给不同用户授予权限.

        ---笔者个人感觉用处不大,因为要建立视图需要多占空间.直接在数据库上定义权限更好.

5.4安全级别和审计追踪

        安全级别就是安全的等级.

        本书P141倒数第二段提到了审计追踪的概念:审计功能把用户对数据库的所有操作自动记录下来放入"审计日志"(audit log)中,称为审计追踪.关于日志的建立,上一帖中的触发器有讲解.利用触发器机制,建立日志,可查询数据的变化.

5.5 数据加密

        本书提到了两种加密法:替换加密法和转换加密法

替换加密法

        原文的字符用其他某个域的符号代替.假设有一段原文:"我从山中来,带着兰花草."包括标点在内共12个字符,选取域符号为所有英文小写字母{a,b,c,d,e,f,g,h,i,j,k,l,m,n.....z},表达为{abcdefghijkl},那么每个汉字分别有对应的字母.

        假设有n个字符的原文,去除重复后有m个字符,选取域符号有k个,那么有k*(k-1)*...*(k-m-1)种组合.例如这里就有26*25*....*13种可能.

转换加密法

        原文字符重新排序.假设有n个字符,那么排序可能有n!种

图示

        如果要解密的话,可能有k*(k-1)*...*(k-m-1)*(n!)种组合.如果字数很多,理论上解密时间是很长很长的.

        但这只是简单描述数据加密情况,还有一些要考虑:

        1>本书提到了替换加密法的问题:用多了可能被猜到.如果每次都用同一选取域,再根据写作的行文风格,是有这种可能的.站在加密方,准备很多个选取域.

        2>替换算法中间还可以增加,例如前一半的字符采用选取域A,后一半的字符采用选取域B

声明

        像以前的一些电影上一样,解密靠一本书或者字典.就是说密码破解可能很难,但设置容易.数据加密和解密是专门一门学科,某度可以搜"密码学",涵盖了概率论,数字逻辑,数论等许多和数学相关的学科.笔者只是一时兴起,仅根据本书内容做一点发散思考.

5.6统计数据库的安全性

        本书讲了不少,最后结论统计数据库基本上都不安全.但防范起来很简单,给很少的搜索权限即可

小结

        数据库安全性理论部分的解读

       

        

http://www.xdnf.cn/news/1474795.html

相关文章:

  • [光学原理与应用-436]:晶体光学 - 各向同性与各向异性是描述材料物理性质随方向变化特性
  • STAR-CCM+|雷诺数回顾
  • windows11 安装charm成功
  • U-Boot 多 CPU 执行状态引导
  • 【LeetCode热题100道笔记】验证二叉搜索树
  • 深入浅出迁移学习:从理论到实践
  • 基于YOLO8的汽车碰撞事故检测系统【数据集+源码+文章】
  • 10.LED+TIR透镜优化——lighttools入门笔记
  • SpringBootWeb 篇-深入了解 ThreadLocal 存在内存泄漏问题
  • 记一次uniapp微信小程序开发scss变量失效的问题
  • 5-10数组元素添加和删除(数组基础操作)
  • 【Python自动化】 21.1 Pandas 读取 Excel 文件的完整指南
  • 从挑西瓜到树回归:用生活智慧理解机器学习算法
  • 【Python】数据可视化之分布图
  • 51单片机---硬件学习(电子琴、主从应答模式、modbus模型、DS18B20传感器显示温度)
  • AI驱动的软件测试:革命性的自动化、缺陷检测与实验优化
  • Java并发机制的底层实现原理
  • 程序化广告快速上手:零基础入门第一课
  • 洛谷 P1591 阶乘数码-普及-
  • PyTorch生成式人工智能——深度分层变分自编码器(NVAE)详解与实现
  • 贪心算法应用:基因编辑靶点选择问题详解
  • 【C++】类和对象(三)
  • Git reset 回退版本
  • stunnel实现TCP双向认证加密
  • Custom SRP - Complex Maps
  • 顺丰,途虎养车,优博讯,得物,作业帮,途游游戏,三七互娱,汤臣倍健,游卡,快手26届秋招内推
  • JVM如何排查OOM
  • 01.单例模式基类模块
  • 微信小程序携带token跳转h5, h5再返回微信小程序
  • Knative Serving:ABP 应用的 scale-to-zero 与并发模型