『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了)

文章目录

  • 计算机安全性概述
  • 数据库安全性控制
  • 视图机制
  • 审计(Audit)
  • 数据加密
  • 统计数据库安全性

问题的提出

  • 数据库的一大特点是数据可以共享
  • 数据共享必然带来数据库的安全性问题
  • 数据库系统中的数据共享不能是无条件的共享

计算机安全性概述

一、计算机安全性

计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

三类计算机系统安全性问题

  • 技术安全类
  • 管理安全类
  • 政策法律类

二、安全标准简介
1. TCSEC/TDI标准的基本内容
从四个方面来描述安全性级别划分的指标
➢安全策略
➢责任
➢保证
➢文档

2.TCSEC/TDI安全级别划分

➢ 按系统可靠或可信程度逐渐增高
➢ 各安全级别之间:偏序向下兼容

B2以上的系统:还处于理论研究阶段

CC
➢ 提出国际公认的表述信息技术安全性的结构
➢ 把信息产品的安全要求分为:安全功能要求、安全保证要求

CC文本组成
➢ 简介和一般模型
➢ 安全功能要求
➢ 安全保证要求

数据库安全性控制

概述

1. 非法使用数据库的情况
➢ 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;
➢ 直接或编写应用程序执行非授权操作
➢ 通过多次合法查询数据库从中推导出一些保密数据
➢ 破坏安全性的行为可能是无意的,故意的,恶意的

2. 数据库安全性控制的常用方法
➢ 用户标识和鉴定
➢ 存取控制
➢ 视图
➢ 审计
➢ 密码存储

一、用户标识与鉴别
系统提供的最外层安全保护措施

基本方法
➢ 系统提供一定的方式让用户标识自己的名字或身份;
➢ 系统内部记录着所有合法用户的标识;
➢ 每次用户要求进入系统时,由系统核对用户提供的身份标识;
➢ 通过鉴定后才提供机器使用权。
➢ 用户标识和鉴定可以重复多次

用户标识自己的名字或身份

  1. 用户名/口令
    ➢ 简单易行,容易被人窃取
  2. 每个用户预先约定好一个计算过程或者函数
    ➢ 系统提供一个随机数
    ➢ 用户根据自己预先约定的计算过程或者函数进行计算
    ➢ 系统根据用户计算结果是否正确鉴定用户身份

二、 存取控制

1. 存取控制机制组成
➢ 定义用户权限
➢ 合法权限检查

2. 用户权限定义和合法权限检查机制一起组成了DBMS的安全子系统

3.常用存取控制方法
➢ 自主存取控制(Discretionary Access Control ,简称DAC): C2级;灵活
➢ 强制存取控制(Mandatory Access Control,简称 MAC):B1级;严格

4.自主存取控制方法

  1. 同一用户对于不同的数据对象有不同的存取权限
  2. 不同的用户对同一对象也有不同的权限
  3. 用户还可将其拥有的存取权限转授给其他用户

5.强制存取控制方法

  1. 每一个数据对象被标以一定的密级
  2. 每一个用户也被授予某一个级别的许可证
  3. 对于任意一个对象,只有具有合法许可证的用户才可以存取

三、自主存取控制方法

  1. 通过 SQL 的 GRANT 语句和 REVOKE 语句实现
  2. 用户权限组成
    ➢数据对象
    ➢操作类型
  3. 定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
  4. 定义存取权限称为授权


四、授权与回收
1.GRANT
1)一般格式:

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

2)语义:
将对指定操作对象的指定操作权限授予指定的用户

发出GRANT:
➢DBA
➢数据库对象创建者(即属主Owner)
➢拥有该权限的用户
按受权限的用户
➢一个或多个具体用户
➢PUBLIC(全体用户)
WITH GRANT OPTION子句:
➢ 指定:可以再授予
➢ 没有指定:不能传播
不允许循环授权

2.REVOKE
1)授予的权限可以由DBA或其他授权者用REVOKE语句收回
2)REVOKE语句的一般格式为:

REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;

SQL灵活的授权机制

  1. DBA:拥有所有对象的所有权限
    ➢ 不同的权限授予不同的用户
  2. 用户:拥有自己建立的对象的全部的操作权限
    ➢ GRANT:授予其他用户
  3. 被授权的用户
    ➢ “继续授权”许可:再授予
  4. 所有授予出去的权力在必要时又都可用REVOKE语句收回

3.创建数据库模式的权限
1)DBA在创建用户时实现
2)CREATE USER语句格式

CREATE USER <username>
[WITH][DBA | RESOURCE | CONNECT]

五、数据库角色

被命名的一组与数据库操作相关的权限
➢ 角色是权限的集合
➢ 可以为一组具有相同权限的用户创建一个角色
➢ 简化授权的过程

1. 角色的创建

CREATE ROLE <角色名>

2. 给角色授权

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

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

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

4.角色权限的收回

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

六、强制存取控制方法
自主存取控制缺点

  1. 可能存在数据的“无意泄露”
  2. 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
  3. 解决:对系统控制下的所有主客体实施强制存取控制策略

1. 强制存取控制(MAC)
➢ 保证更高程度的安全性
➢ 用户不能直接感知或进行控制
➢ 适用于对数据有严格而固定密级分类的部门:军事部门;政府部门

2. 主体是系统中的活动实体
➢ DBMS所管理的实际用户
➢ 代表用户的各进程

3. 客体是系统中的被动实体,是受主体操纵的
➢ 文件
➢ 基表
➢ 索引
➢ 视图

4. 敏感度标记(Label)
➢ 绝密(Top Secret)
➢ 机密(Secret)
➢ 可信(Confidential)
➢ 公开(Public)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)

5.强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,
该主体才能读取相应的客体
(2)仅当主体的许可证级别等于客体的密级时,该主体
才能写相应的客体
修正规则
主体的许可证级别 <=客体的密级 → 主体能写客体

规则的共同点
禁止了拥有高许可证级别的主体更新低密级的数据对象

6.MAC与DAC
1)DAC与MAC共同构成DBMS的安全机制
2)实现MAC时要首先实现DAC
➢ 原因:较高安全性级别提供的安全保护要包含较低级别的所有保护

DAC + MAC安全检查示意图

视图机制

  1. 把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
    ➢ 主要功能是提供数据独立性,无法完全满足要求
    ➢ 间接实现了支持存取谓词的用户权限定义

审计(Audit)

一、什么是审计
➢ 审计日志(Audit Log)
将用户对数据库的所有操作记录在上面
➢ DBA利用审计日志
找出非法存取数据的人、时间和内容
➢ C2以上安全级别的DBMS必须具有

二、审计分类
1.用户级审计
➢针对自己创建的数据库表或视图进行审计
➢记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
2.系统级审计
➢DBA设置
➢监测成功或失败的登录要求
➢监测GRANT和REVOKE操作以及其他数据库级权限下的操作

三、审计功能的可选性
➢ 审计很费时间和空间
➢ DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。

AUDIT语句:设置审计功能
NOAUDIT语句:取消审计功能

数据加密

防止数据库中数据在存储和传输中失密的
有效手段
一、加密的基本思想
➢ 根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text)
➢ 不知道解密算法的人无法获知数据的内容

二、加密方法
1.替换方法
•使用密钥(Encryption Key)将明文中的每一个字符转换为密文中的一个字符
2.置换方法
将明文的字符按不同的顺序重新排列
3.混合方法
美国1977年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称DES)

三、DBMS中的数据加密
➢ 有些数据库产品提供了数据加密例行程序
➢ 有些数据库产品本身未提供加密程序,但提供了
接口

数据加密功能通常也作为可选特征,允许用户自由选择
➢ 数据加密与解密是比较费时的操作
➢ 数据加密与解密程序会占用大量系统资源
➢ 应该只对高度机密的数据加密

统计数据库安全性

一、统计数据库的特点
➢ 允许用户查询聚集类型的信息(例如合计、平均
值等)
➢ 不允许查询单个记录信息

二、 统计数据库中特殊的安全性问题
➢ 隐蔽的信息通道
➢ 从合法的查询中推导出不合法的信息

规则1:任何查询至少要涉及N(N足够大)个以上的记录
规则2:任意两个查询的相交数据项不能超过M个
规则3:任一用户的查询次数不能超过1+(N-2)/M

数据库安全机制的设计目标:
试图破坏安全的人所花费的代价 >> 得到的利益

写在最后:
本数据库专栏是由爱吃老谈酸菜的DV一同完成的,博客链接在主页友链,是我的好哥们✈
Name:风骨散人,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的含义:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。偏偏这碎银几两,能解世间惆怅,可让父母安康,可护幼子成长 …”
文章主要内容:
Python,C++,C语言,JAVA,C#等语言的教程
ACM题解、模板、算法等,主要是数据结构,数学和图论
设计模式,数据库,计算机网络,操作系统,计算机组成原理
Python爬虫、深度学习、机器学习
计算机系408考研的所有专业课内容
目前还在更新中,先关注不迷路。微信公众号,cnblogs(博客园),CSDN同名“风骨散人”

如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!

『数据库』无聊到爆炸的数据库文章--数据库的安全性相关推荐

  1. 2018年『web』开发者不得不知的技术趋势

    作为一个『web』开发者,无论是做前端还是后端,都应该时刻保持着对技术的敏感性.技术的流行需要一定时间的沉淀,有哪些web相关的技术会可能会在2018年成为web开发的新宠呢?下面列举业界经过实践并且 ...

  2. mysql 分页 去重_『备忘录』elasticsearch 去重分页查询

    一开始数据结构设计的很复杂,又是父子关系又是嵌套关系,结果发现不能通过简单的查询得到想要的结果:比如一个商店只出现一件符合条件的商品,弄得查询语句就变成这样了 curl -XPOST http://l ...

  3. 『数据库』这篇数据库的文章真没人看--数据库完整性

    『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 实体完整性 参照完整性 用户定义的完整性 完整性约束命名子句 域中的完整性限制 触发器 激活触发器 删除触发器 小结 ...

  4. 『数据库』朴实无华且枯燥的数据库文章--关系数据理论

    『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 问题的提出 规范化 数据依赖的公理系统 模式的分解 小结 问题的提出 一.概念回顾 关系:描述实体.属性.实体间的联 ...

  5. 『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积

    『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 一.交 二.并 三.差 四.笛卡尔积 五.连接查询 一.交 (会用到连接运算,固定写法,连接运算在下面不用着急看) ...

  6. 『数据库』朴实无华的数据库绪论

    『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 数据库系统概述 数据模型 概念模型 数据库系统结构 数据库系统的组成 数据库系统概述 一.四个基本概念 1.数据(D ...

  7. 『转』数据库的委托之类型分类处理

    『转』数据库的委托之类型分类处理 很久没研究数据库了,因为 XEIM 飞鸽传书 这个软件需要用到数据库,于是研究一下. 转载的,上网搜原创,我也不知道哪里来的. 一般数据库里区分类别可以直接存放字符, ...

  8. 『重磅』免费无限量下载知网/万方/维普等数据库文献的正规渠道

    本文链接("因果关系推断"微信公众号) 疫情期间迟迟不能返校,科研汪们都渴望可以像以前在学校那样,依旧自由地下载知网/万方/维普文献.今天就向大家推荐一种**『免费无限量』下载学术 ...

  9. 『数据库』数据库笔记

    前言 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统. 结构化 ...

最新文章

  1. 比特币现金比BTC节能40%以上
  2. windows下解决pip安装出错问题
  3. 微软官方首度回应黑屏恐慌:不强制 不诉讼
  4. 马云、马化腾任职清华;微软将数据保存在玻璃中;Visual Studio Online 上线 | 极客头条...
  5. cisco 次优路由
  6. SVN源码泄露漏洞总结
  7. c语言设计通讯录设计报告,C语言通讯录课程设计报告--设计一个通讯录管理系统...
  8. 第三周作业-实现随机点名的签到程序
  9. 移动设备管理存在哪些威胁?
  10. python xlrd获取excel行数_Python 使用xlrd库读取excel,获取最大行和最大列等
  11. 接口和继承知识点总结
  12. python爬取网易云_利用python爬取网易云音乐,并把数据存入mysql
  13. 《机器学习》西瓜书课后题7.3
  14. 口碑最好的国产蓝牙耳机,2021国产最好用的蓝牙耳机
  15. 百度网盘取消自动续费(详细过程)
  16. Linux下载ncbi的SRA文件
  17. Texmaker+Miktex配置
  18. Git安装教程(超详细教程)
  19. 小数形式与科学计数法转换(简)
  20. 5个APP,4220个数据,回顾Yura的2018年

热门文章

  1. Qt中的枚举变量,Q_ENUM,Q_FLAG,Q_NAMESPACE,Q_ENUM_NS,Q_FLAG_NS以及其他
  2. eltree ref什么时候有_DBA:为什么你老写慢SQL
  3. 计算机设计文献参考,优秀计算机设计论文参考文献 计算机设计论文参考文献数量是多少...
  4. 4月11日 GCD 总结(一)
  5. linux卡在x windows,Linux下显卡配置错误 无法进入X Windows的解决
  6. 运维人员打字耍不要快_法考经验与教训 —— 打字
  7. javascript:history.go()和history.back()的区别
  8. 在VMware Workstation中批量创建上千台虚拟机(上)
  9. Windows 2003 Server 用户隔离
  10. Java关键字(53个关键字)