前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『数据库』无聊到爆炸的数据库文章--数据库的安全性

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

作者头像
风骨散人Chiam
发布2020-10-28 14:38:09
1.7K2
发布2020-10-28 14:38:09
举报
文章被收录于专栏:CSDN旧文CSDN旧文

文章目录

    • 计算机安全性概述
    • 数据库安全性控制
    • 视图机制
    • 审计(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)一般格式:

代码语言:javascript
复制
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];

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

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

在这里插入图片描述
在这里插入图片描述

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

代码语言:javascript
复制
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;

SQL灵活的授权机制

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

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

代码语言:javascript
复制
CREATE USER <username> 
[WITH][DBA | RESOURCE | CONNECT]

五、数据库角色

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

1. 角色的创建

代码语言:javascript
复制
CREATE ROLE <角色名> 

2. 给角色授权

代码语言:javascript
复制
GRANT <权限>[,<权限>]… 
ON <对象类型>对象名
TO <角色>[,<角色>]

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

代码语言:javascript
复制
GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]… 
[WITH ADMIN OPTION]

4.角色权限的收回

代码语言:javascript
复制
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:风骨散人,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的含义:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。偏偏这碎银几两,能解世间惆怅,可让父母安康,可护幼子成长 …”

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 计算机安全性概述
  • 数据库安全性控制
  • 视图机制
  • 审计(Audit)
  • 数据加密
  • 统计数据库安全性
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档