当前位置:网站首页>数据库学习——数据库安全性
数据库学习——数据库安全性
2022-07-05 14:49:00 【Hulake_】
目录
3.2 用户标识与鉴别 (Identification & Authentication)
一. 数据库安全性问题
1.1 安全性问题提出背景
- 数据库的一大特点是数据可以共享;
- 但数据共享必然带来数据库的安全性问题;
- 数据库系统中的数据共享不能是无条件的共享;
例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、 客户档案、医疗档案、银行储蓄数据
1.2 什么是数据库的安全性
数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
1.3 什么是数据的保密
- 数据保密是指用户合法地访问到机密数据后能否对这些数据保密。
- 通过制订法律道德准则和政策法规来保证。
二. 计算机安全性概论
2.1 计算机系统的三类安全性问题
2.1.1 什么是计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
2.1.2 计算机安全涉及问题
- 计算机系统本身的技术问题:
- 计算机安全理论与策略;
- 计算机安全技术;
- 管理问题:
- 安全管理;
- 安全评价;
- 安全产品;
- 政策法规;
2.2 可信计算机系统评测标准
为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准:
- TCSEC (桔皮书);
- TDI (紫皮书);
2.2.1 TCSEC/TDI安全级别划分
- 四组(division)七个等级 :
- D ;
- C(C1,C2);
- B(B1,B2,B3);
- A(A1);
- 按系统可靠或可信程度逐渐增高;
- 各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。
三. 数据库安全性控制
3.1 数据库安全性控制概述
3.1.1 非法使用数据库的情况
- 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;
- 直接或编写应用程序执行非授权操作;
- 通过多次合法查询数据库从中推导出一些保密数据;
- 破坏安全性的行为可能是无意的,故意的,恶意的。
3.1.2 计算机系统中的安全模型
3.1.3 数据库安全性控制的常用方法
- 用户标识和鉴定;
- 存取控制;
- 视图;
- 审计;
- 密码存储;
3.2 用户标识与鉴别 (Identification & Authentication)
系统提供的最外层安全保护措施;
3.2.1 基本方法
- 系统提供一定的方式让用户标识自己的名字或身份;
- 系统内部记录着所有合法用户的标识;
- 每次用户要求进入系统时,由系统核对用户提供的身份标识;
- 通过鉴定后才提供机器使用权;
- 用户标识和鉴定可以重复多次 ;
3.2.2 用户标识自己的名字或身份
- 用户名/口令:简单易行,容易被人窃取;
- 每个用户预先约定好一个计算过程或者函数:
- 系统提供一个随机数;
- 用户根据自己预先约定的计算过程或者函数进行计算;
- 系统根据用户计算结果是否正确鉴定用户身份;
3.3 存取控制
3.3.1 存取控制机制的功能
存取控制机制的组成:
- 定义存取权限;
- 检查存取权限;
用户权限定义和合法权检查机制一起组成了DBMS的安全子系统;
1)定义存取权限
在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。
2)检查存取权限
对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。
3.3.2 常用存取控制方法
- 自主存取控制(Discretionary Access Control ,简称DAC):C2级—— 灵活;
- 强制存取控制(Mandatory Access Control,简称 MAC):B1级——严格;
四. 自主存取控制方法
4.1 存取权限
存取权限由两个要素组成:
- 数据对象;
- 操作类型;
4.2 关系系统中的存取权限
4.3 授权
- GRANT语句的一般格式:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
- 谁定义?DBA和表的建立者(即表的属主);
- REVOKE功能:将对指定操作对象的指定操作权限授予指定的用户。
4.3.1 操作权限
4.3.2 用户的权限
- 建表(CREATETAB)的权限:属于DBA;
- DBA授予-->普通用户;
- 基本表或视图的属主拥有对该表或视图的一切操作权限;
- 接受权限的用户:
- 一个或多个具体用户;
- PUBLIC(全体用户);
4.3.3 WITH GRANT OPTION子句
- 指定了WITH GRANT OPTION子句: 获得某种权限的用户还可以把这种权限再授予别的用户。
- 没有指定WITH GRANT OPTION子句: 获得某种权限的用户只能使用该权限,不能传播该权限
4.4 收回权限
4.4.1 收回权限的功能
- REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]...
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]...;
- 功能:从指定用户那里收回对指定对象的指定权限
4.4.2 权限的级联回收
- 系统将收回直接或间接从U5处获得的对SC表的INSERT权限: -->U5--> U6--> U7
- 收回U5、U6、U7获得的对SC表的INSERT权限: <--U5<-- U6<-- U7
4.4.3 SQL灵活的授权机制
- DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。
- 用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。
- 被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。
- 所有授予出去的权力在必要时又都可以用REVOKE语句收回。
五. 强制存取控制方法
5.1 强制存取控制的定义
- 强制存取控制(MAC)是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。
- MAC不是用户能直接感知或进行控制的。
- MAC适用于对数据有严格而固定密级分类的部门:军事部门、政府部门;
5.2 主体与客体
- 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类 主体是系统中的活动实体;
- DBMS所管理的实际用户
- 代表用户的各进程 客体是系统中的被动实体,是受主体操纵的文件、基表、索引、视图;
5.3 敏感度标记
- 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label);
- 敏感度标记分成若干级别:
- 绝密(Top Secret);
- 机密(Secret);
- 可信(Confidential);
- 公开(Public);
- 主体的敏感度标记称为许可证级别(Clearance Level)
- 客体的敏感度标记称为密级(Classification Level)
- MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体
5.4 强制存取控制规则
当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:
- 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;
- 仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
六. 视图机制
- 视图机制把要保密的数据对无权存取这些数据的用户隐藏起来;
- 视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。
视图机制与授权机制配合使用:
- 首先用视图机制屏蔽掉一部分保密数据;
- 视图上面再进一步定义存取权限;
- 间接实现了支持存取谓词的用户权限定义;
七. 审计
7.1 审计的概念
- 启用一个专用的审计日志(Audit Log):将用户对数据库的所有操作记录在上面;
- DBA可以利用审计日志中的追踪信息:找出非法存取数据的人;
- C2以上安全级别的DBMS必须具有审计功能;
7.2 审计功能的可选性
- 审计很费时间和空间;
- DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。
7.3 审计功能相关
- 强制性机制:用户识别和鉴定、存取控制、视图;
- 预防监测手段:审计技术
八. 数据加密
8.1 数据加密
防止数据库中数据在存储和传输中失密的有效手段;
8.2 加密的基本思想
- 根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text);
- 不知道解密算法的人无法获知数据的内容;
8.3 加密方法
- 替换方法:使用密钥(Encryption Key)将明文中的每一个字符转换为密文中的一个字符;
- 置换方法:将明文的字符按不同的顺序重新排列;
- 混合方法:美国1977年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称DES)
九. 数据库安全性总结
- 随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。
- DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。
- 可信计算机系统评测标准》TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。
- CSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标。
- 实现数据库系统安全性的技术和方法有多种,最重要的是存取控制技术和审计技术。
- 目前许多大型DBMS 达到了C2级,其安全版本达到了B1;
- C2级的DBMS必须具有自主存取控制功能和初步的审计功能;
- B1级的DBMS必须具有强制存取控制和增强的审计功能;
- 自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的;
十. 数据库专栏
边栏推荐
猜你喜欢
浅谈Dataset和Dataloader在加载数据时如何调用到__getitem__()函数
FR练习题目---综合题
Run faster with go: use golang to serve machine learning
两个BI开发,3000多张报表?如何做的到?
NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读
安装配置Jenkins
Change multiple file names with one click
用 Go 跑的更快:使用 Golang 为机器学习服务
【数组和进阶指针经典笔试题12道】这些题,满足你对数组和指针的所有幻想,come on !
MySQL之CRUD
随机推荐
【NVMe2.0b 14-9】NVMe SR-IOV
百亿按摩仪蓝海,难出巨头
有一个强大又好看的,赛过Typora,阿里开发的语雀编辑器
Fr exercise topic - simple question
Ctfshow web entry information collection
Ecotone technology has passed ISO27001 and iso21434 safety management system certification
【招聘岗位】基础设施软件开发人员
GPS原始坐标转百度地图坐标(纯C代码)
启牛学堂班主任给的证券账户安全吗?能开户吗?
亿咖通科技通过ISO27001与ISO21434安全管理体系认证
一键更改多个文件名字
Live broadcast preview | how to implement Devops with automatic tools (welfare at the end of the article)
Coding devsecops helps financial enterprises run out of digital acceleration
Cartoon: what are the attributes of a good programmer?
[C question set] of Ⅷ
在Pytorch中使用Tensorboard可视化训练过程
CODING DevSecOps 助力金融企业跑出数字加速度
机器学习框架简述
CPU设计实战-第四章实践任务二用阻塞技术解决相关引发的冲突
社区团购撤城“后遗症”