4.0 《数据库系统概论》数据库安全性详解 | 您所在的位置:网站首页 › 数据审计定义是什么 › 4.0 《数据库系统概论》数据库安全性详解 |
文章目录
0.思维导图1.数据库安全性概述(1)为什么要研究数据库的安全性?(2)安全标准简介① TCSEC/TDI标准的基本内容② TCSEC/TDI安全级别划分
2.数据库安全性控制概述3.数据库安全性控制(1)用户标识与鉴别(Identification & Authentication)① 静态口令鉴别② 动态口令鉴别③ 生物特征鉴别④ 智能卡鉴别
(2)存取控制① 存取控制机制组成:
(3)自动存取控制方法---DAC: Discretionary Access Control① 授权与回收---针对用户1️⃣ 授权---GRANT2️⃣ 回收---REVOKE3️⃣ 小结:SQL灵活的授权机制4️⃣ 创建数据库模式的权限
② 数据库角色---针对角色1️⃣ 角色的创建2️⃣ 给角色授权3️⃣ 将一个角色授予其他的角色或用户4️⃣ 角色权限的收回
(4)强制存取控制方法---MAC: Mandatory Access Control(5)DAC与MAC共同构成DBMS的安全机制
4.视图机制5.审计(Audit) ---日志6.数据加密(1)存储加密(2)传输加密① 链路加密② 端到端加密
7.统计数据库安全性
0.思维导图
问题的提出: 数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例: 军事秘密、国家机密、新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、医疗档案、银行储蓄数据非法使用数据库的情况: 编写合法程序绕过DBMS及其授权机制(黑客等)直接或编写应用程序执行非授权操作(黑客等)通过多次合法查询数据库从中推导出一些保密数据(黑客等) (2)安全标准简介按系统可靠或可信程度逐渐增高 各安全级别之间:偏序向下兼容 B2以上的系统: 还处于理论研究阶段应用多限于一些特殊的部门,如军队等美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准 2.数据库安全性控制概述数据库安全性控制的常用方法: 用户标识和鉴定存取控制视图审计密码存储 3.数据库安全性控制 (1)用户标识与鉴别(Identification & Authentication) 是系统提供的最外层安全保护措施用户标识 每个用户标识由用户名(user name)和用户标识号(UID)两部分组成。 UID在系统的整个生命周期内是唯–的。系统内部记录着所有合法用户的标识口令 系统核对口令以鉴别用户身份 (口令可理解为密码)用户标识和口令易被窃取 每个用户预先约定好一个计算过程或者函数常用的用户身份鉴别方法有以下几种: ① 静态口令鉴别 这种方式是当前常用的鉴别方法。静态口令一般由用户自己设定,鉴别时只要按要求输入正确的口令,系统将允许用户使用数据库管理系统。这些口令是静态不变的,在实际应用中,用户常常用自己的生日、电话、简单易记的数字等内容作为口令,很容易被破解。而一旦被破解,非法用户就可以冒充该用户使用数据库。这种方式虽然简单,但容易被攻击,安全性较低。 ② 动态口令鉴别 它是目前较为安全的鉴别方式。这种方式的口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法。常用的方式如短信密码和动态令牌方式,每次鉴别时要求用户使用通过短信或令牌等途径获取的新口令登录数据库管理系统。与静态口令鉴别相比,这种认证方式增加了口令被窃取或破解的难度,安全性相对高一些。 ③ 生物特征鉴别 它是一种通过生物特征进行认证的技术,其中,生物特征是指生物体唯一具有的,可测量、识别和验证的稳定生物特征,如指纹、虹膜和掌纹等。这种方式通过采用图像处理和模式识别等技术实现了基于生物特征的认证,- 与传统的口令鉴别相比,无疑产生了质的飞跃,安全性较高。 ④ 智能卡鉴别 智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能。智能卡由用户随身携带,登录数据库管理系统时用户将智能卡插入专用的读卡器进行身份验证。由于每次从智能卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是可能截取到用户的身份验证信息,存在安全隐患。因此,实际应用中一般采用个人身份识别码(PIN)和智能卡相结合的方式。这样,即使PIN或智能卡中有一种被窃取,用户身份仍不会被冒充。 (2)存取控制 数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。 ① 存取控制机制组成:定义用户权限,并将用户权限登记到数据字典中; 用户对某一数据对象的操作权力称为权限。 合法权限检查,每当用户发出存取数据库的操作请求后(请求一般应包括操作类型、操作对象和操作用户等信息),数据库管理系统查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统。 C2级的数据库管理系统支持自主存取控制( Discretionary Access Control, DAC),B1级的数据库管理系统支持强制存取控制( Mandatory Access Control, MAC)。这两类方法的简单定义是: (1)在自主存取控制方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。(2)在强制存取控制方法中,每一个 数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象, 只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。 (3)自动存取控制方法—DAC: Discretionary Access Control 通过 SQL 的 GRANT语句和 REVOKE语句实现用户权限组成 数据对象 操作类型定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作定义存取权限称为授权发出GRANT: DBA数据库对象创建者(即属主Owner)拥有该权限的用户按受权限的用户: 一个或多个具体用户PUBLIC(全体用户)WITH GRANT OPTION子句: 指定:可以再授予没有指定:不能传播不允许循环授权: [例1] 把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1;举个例子而已,不同数据库请参考相关文档,先打基础。有个印象,知道有这么个东西,其实很多数据库管理系统已经将这些封装好了,简洁漂亮的UI,灵活的操作,基本不会用到语句来写。话不多说,直接上图: [例2] 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;[例3] 把对表SC的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC;[例4] 把查询Student表和修改学生学号的权限授给用户U4 对属性列的授权时必须明确指出相应属性列名 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;[例5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;执行例5后,U5不仅拥有了对表SC的INSERT权限, 还可以传播此权限: [例6] GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;同样,U6还可以将此权限授予U7: [例7] GRANT INSERT ON TABLE SC TO U7; 但U7不能再传播此权限,因为没有写这条语句WITH GRANT OPTION。 授予的权限可以由DBA或其他授权者用REVOKE语句收回 REVOKE语句的一般格式为: REVOKE [,]... [ON ] FROM [,]...;[例8] 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM U4;[例9] 收回所有用户对表SC的查询权限 REVOKE SELECT ON TABLE SC FROM PUBLIC;[例10] 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回 系统只收回直接或间接从U5处获得的权限 DBA在创建用户时实现 CREATE USER语句格式 CREATE USER [WITH][DBA | RESOURCE | CONNECT]数据库角色:被命名的一组与数据库操作相关的权限 角色是权限的集合 ,结合我刚刚上面截得黑色背景图片了解可以为一组具有相同权限的用户创建一个角色简化授权的过程 1️⃣ 角色的创建CREATE ROLE 2️⃣ 给角色授权 GRANT [,]… ON 对象名 TO [,]… 3️⃣ 将一个角色授予其他的角色或用户 GRANT [,]… TO [,]… [WITH ADMIN OPTION] 4️⃣ 角色权限的收回 REVOKE [,]… ON FROM [,]…[例11] 通过角色来实现将一组权限授予一个用户。 步骤如下: 首先创建一个角色 R1 CREATE ROLE R1;然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1; 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平,张明,赵玲; 可以一次性通过R1来回收王平的这3个权限 REVOKE R1 FROM 王平;[例12] 角色的权限修改 GRANT DELETE ON TABLE Student TO R1[例13] 角色权限的收回 REVOKE SELECT ON TABLE Student FROM R1; (4)强制存取控制方法—MAC: Mandatory Access Control自主存取控制缺点: 可能存在数据的“无意泄露”原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记解决:对系统控制下的所有主客体实施强制存取控制策略强制存取控制(MAC): 保证更高程度的安全性用户能不能直接感知或进行控制,因为对数据进行了加密适用于对数据有严格而固定密级分类的部门 *军事部门 *政府部门在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类。 主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的各进程 客体是系统中的被动实体,是受主体操纵的 文件 基表 索引 视图 对于主体和客体,数据库管理系统为它们每个实例(值)指派一个敏感度标记(label)。 敏感度标记(Label)分为若干个级别: 绝密(Top Secret)机密(Secret)可信(Confidential)公开(Public)主体的敏感度标记称为许可证级别(Clearance Level)客体的敏感度标记称为密级(Classification Level)密级:T>=S>=C>=P强制存取控制规则: (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体修正规则 主体的许可证级别 > 得到的利益 |
CopyRight 2018-2019 实验室设备网 版权所有 |