『数据库』无聊到爆炸的数据库文章--数据库的安全性
『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了)
文章目录
- 计算机安全性概述
- 数据库安全性控制
- 视图机制
- 审计(Audit)
- 数据加密
- 统计数据库安全性
问题的提出
- 数据库的一大特点是数据可以共享
- 数据共享必然带来数据库的安全性问题
- 数据库系统中的数据共享不能是无条件的共享
计算机安全性概述
一、计算机安全性
计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
三类计算机系统安全性问题
- 技术安全类
- 管理安全类
- 政策法律类
二、安全标准简介
1. TCSEC/TDI标准的基本内容
从四个方面来描述安全性级别划分的指标
➢安全策略
➢责任
➢保证
➢文档
2.TCSEC/TDI安全级别划分
➢ 按系统可靠或可信程度逐渐增高
➢ 各安全级别之间:偏序向下兼容
B2以上的系统:还处于理论研究阶段
CC
➢ 提出国际公认的表述信息技术安全性的结构
➢ 把信息产品的安全要求分为:安全功能要求、安全保证要求
CC文本组成
➢ 简介和一般模型
➢ 安全功能要求
➢ 安全保证要求
数据库安全性控制
概述
1. 非法使用数据库的情况
➢ 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;
➢ 直接或编写应用程序执行非授权操作
➢ 通过多次合法查询数据库从中推导出一些保密数据
➢ 破坏安全性的行为可能是无意的,故意的,恶意的
2. 数据库安全性控制的常用方法
➢ 用户标识和鉴定
➢ 存取控制
➢ 视图
➢ 审计
➢ 密码存储
一、用户标识与鉴别
系统提供的最外层安全保护措施
基本方法
➢ 系统提供一定的方式让用户标识自己的名字或身份;
➢ 系统内部记录着所有合法用户的标识;
➢ 每次用户要求进入系统时,由系统核对用户提供的身份标识;
➢ 通过鉴定后才提供机器使用权。
➢ 用户标识和鉴定可以重复多次
用户标识自己的名字或身份
- 用户名/口令
➢ 简单易行,容易被人窃取 - 每个用户预先约定好一个计算过程或者函数
➢ 系统提供一个随机数
➢ 用户根据自己预先约定的计算过程或者函数进行计算
➢ 系统根据用户计算结果是否正确鉴定用户身份
二、 存取控制
1. 存取控制机制组成
➢ 定义用户权限
➢ 合法权限检查
2. 用户权限定义和合法权限检查机制一起组成了DBMS的安全子系统
3.常用存取控制方法
➢ 自主存取控制(Discretionary Access Control ,简称DAC): C2级;灵活
➢ 强制存取控制(Mandatory Access Control,简称 MAC):B1级;严格
4.自主存取控制方法
- 同一用户对于不同的数据对象有不同的存取权限
- 不同的用户对同一对象也有不同的权限
- 用户还可将其拥有的存取权限转授给其他用户
5.强制存取控制方法
- 每一个数据对象被标以一定的密级
- 每一个用户也被授予某一个级别的许可证
- 对于任意一个对象,只有具有合法许可证的用户才可以存取
三、自主存取控制方法
- 通过 SQL 的 GRANT 语句和 REVOKE 语句实现
- 用户权限组成
➢数据对象
➢操作类型 - 定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
- 定义存取权限称为授权
四、授权与回收
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灵活的授权机制
- DBA:拥有所有对象的所有权限
➢ 不同的权限授予不同的用户 - 用户:拥有自己建立的对象的全部的操作权限
➢ GRANT:授予其他用户 - 被授权的用户
➢ “继续授权”许可:再授予 - 所有授予出去的权力在必要时又都可用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. 强制存取控制(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安全检查示意图
视图机制
- 把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
➢ 主要功能是提供数据独立性,无法完全满足要求
➢ 间接实现了支持存取谓词的用户权限定义
审计(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同名“风骨散人”
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!『数据库』无聊到爆炸的数据库文章--数据库的安全性相关推荐
- 2018年『web』开发者不得不知的技术趋势
作为一个『web』开发者,无论是做前端还是后端,都应该时刻保持着对技术的敏感性.技术的流行需要一定时间的沉淀,有哪些web相关的技术会可能会在2018年成为web开发的新宠呢?下面列举业界经过实践并且 ...
- mysql 分页 去重_『备忘录』elasticsearch 去重分页查询
一开始数据结构设计的很复杂,又是父子关系又是嵌套关系,结果发现不能通过简单的查询得到想要的结果:比如一个商店只出现一件符合条件的商品,弄得查询语句就变成这样了 curl -XPOST http://l ...
- 『数据库』这篇数据库的文章真没人看--数据库完整性
『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 实体完整性 参照完整性 用户定义的完整性 完整性约束命名子句 域中的完整性限制 触发器 激活触发器 删除触发器 小结 ...
- 『数据库』朴实无华且枯燥的数据库文章--关系数据理论
『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 问题的提出 规范化 数据依赖的公理系统 模式的分解 小结 问题的提出 一.概念回顾 关系:描述实体.属性.实体间的联 ...
- 『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积
『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 一.交 二.并 三.差 四.笛卡尔积 五.连接查询 一.交 (会用到连接运算,固定写法,连接运算在下面不用着急看) ...
- 『数据库』朴实无华的数据库绪论
『数据库』 朴实无华且枯燥的数据库教程–入门必看!(不收藏,真的吃亏了) 文章目录 数据库系统概述 数据模型 概念模型 数据库系统结构 数据库系统的组成 数据库系统概述 一.四个基本概念 1.数据(D ...
- 『转』数据库的委托之类型分类处理
『转』数据库的委托之类型分类处理 很久没研究数据库了,因为 XEIM 飞鸽传书 这个软件需要用到数据库,于是研究一下. 转载的,上网搜原创,我也不知道哪里来的. 一般数据库里区分类别可以直接存放字符, ...
- 『重磅』免费无限量下载知网/万方/维普等数据库文献的正规渠道
本文链接("因果关系推断"微信公众号) 疫情期间迟迟不能返校,科研汪们都渴望可以像以前在学校那样,依旧自由地下载知网/万方/维普文献.今天就向大家推荐一种**『免费无限量』下载学术 ...
- 『数据库』数据库笔记
前言 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统. 结构化 ...
最新文章
- 比特币现金比BTC节能40%以上
- windows下解决pip安装出错问题
- 微软官方首度回应黑屏恐慌:不强制 不诉讼
- 马云、马化腾任职清华;微软将数据保存在玻璃中;Visual Studio Online 上线 | 极客头条...
- cisco 次优路由
- SVN源码泄露漏洞总结
- c语言设计通讯录设计报告,C语言通讯录课程设计报告--设计一个通讯录管理系统...
- 第三周作业-实现随机点名的签到程序
- 移动设备管理存在哪些威胁?
- python xlrd获取excel行数_Python 使用xlrd库读取excel,获取最大行和最大列等
- 接口和继承知识点总结
- python爬取网易云_利用python爬取网易云音乐,并把数据存入mysql
- 《机器学习》西瓜书课后题7.3
- 口碑最好的国产蓝牙耳机,2021国产最好用的蓝牙耳机
- 百度网盘取消自动续费(详细过程)
- Linux下载ncbi的SRA文件
- Texmaker+Miktex配置
- Git安装教程(超详细教程)
- 小数形式与科学计数法转换(简)
- 5个APP,4220个数据,回顾Yura的2018年
热门文章
- Qt中的枚举变量,Q_ENUM,Q_FLAG,Q_NAMESPACE,Q_ENUM_NS,Q_FLAG_NS以及其他
- eltree ref什么时候有_DBA:为什么你老写慢SQL
- 计算机设计文献参考,优秀计算机设计论文参考文献 计算机设计论文参考文献数量是多少...
- 4月11日 GCD 总结(一)
- linux卡在x windows,Linux下显卡配置错误 无法进入X Windows的解决
- 运维人员打字耍不要快_法考经验与教训 —— 打字
- javascript:history.go()和history.back()的区别
- 在VMware Workstation中批量创建上千台虚拟机(上)
- Windows 2003 Server 用户隔离
- Java关键字(53个关键字)