2022-06-30 18:04:28 10阅读
数据库安全性
4.1 数据库安全性概述
4.1.1 数据库的不安全因素
4.2 数据库安全性控制
4.2.1 用户身份鉴别
用户身份鉴别的方法
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
权限授予:`GRANT`
权限回收:`REVOKE`
创建数据库模式的权限
4.2.5 数据库角色
什么是数据库角色
使用角色管理数据库权限
4.2.6 强制存取控制方法
强制存取控制(MAC)
DAC + MAC安全检查
小结
4.3 视图机制
4.4 审计(Audit)
小结
问题的提出
例: 军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
系统安全保护措施是否有效是数据库系统主要的性能指标之一。
4.1 数据库安全性概述
4.1.1 数据库的不安全因素
4.2 数据库安全性控制
数据库安全性控制的常用方法:
DBMS对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。
在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。
对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。
4.2.1 用户身份鉴别
用户身份鉴别(Identification & Authentication)
(用户标识号在系统整个生命周期内唯一)
用户身份鉴别的方法
(1) 静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的
(2) 动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
(3) 智能卡鉴别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
(4) 生物特征鉴别
通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
4.2.2 存取控制
存取控制机制组成:
用户权限定义和合法权检查机制一起组成了DBMS的存取控制子系统。
4.2.3 自主存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC)
通过 SQL 的 GRANT语句和REVOKE语句实现
4.2.4 授权:授予与回收
权限授予:GRANT
语义:将对指定操作对象的指定操作权限授予指定的用户
发出GRANT
按受权限的用户
[例4.1]:把查询Student表权限授给用户U1
(将一种权限授予一个用户)
[例4.2]:把对Student表和Course表的全部权限授予用户U2和U3
(一次向多个用户传播多种同类对象的权限。)
[例4.3]:把对表SC的查询权限授予所有用户
[例4.4]:把查询Student表和修改学生学号的权限授给用户U4
(一次完成了对基本表和属性列这些不同对象的授权)
对属性列的授权时必须明确指出相应属性列名
[例4.5]:把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
方法一:
执行该语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:
[例4.6]
同样U6还可以将此权限授予U7。
[例4.7]
但U7不能再传播此权限。
权限回收:REVOKE
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回。
[例4.8] 把用户U4修改学生学号的权限收回
[例4.9] 收回所有用户对表SC的查询权限
[例4.10] 把用户U5对SC表的INSERT权限收回
如果系统缺省值为RESTRICT,回收U5的INSERT权限时应该使用CASCADE,否则拒绝执行该语句
如果U6或U7还从其他用户处获得对SC表的INSERT权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限
执行例4.8~4.10语句后学生-课程数据库中的用户权限定义表:
创建数据库模式的权限
模式、基本表、视图、索引是由数据库管理员在创建用户时实现。
基本表和视图、属性列是由GRANT/REVOKE决定的。
CREATE USER语句格式:
注:CREATE USER不是SQL标准,各个系统的实现相差甚远。
4.2.5 数据库角色
如果要对多个用户赋予相同的权限,下面操作会很麻烦;
什么是数据库角色
数据库角色:被命名的一组与数据库操作相关的权限
权限
使用角色来管理数据库权限,可以简化授权和回收的过程。
使用角色管理数据库权限
创建角色:
给角色授权:
将一个角色授予其他的角色或用户:
一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限指定WITH ADMIN OPTION,则获得权限的角色或用户还可以把这种权限授予其他角色
授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION
角色权限的收回:
用户可以回收角色的权限,从而修改角色拥有的权限
[例4.11] 通过角色来实现权限管理。
步骤如下:
(1)首先创建一个角色 R1
(2)然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限
(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
(4)可以一次性通过R1来回收王平的这3个权限
[例4.12] 增加角色的权限
使角色R1在原来的基础上增加了Student表的DELETE 权限。
[例4.13] 减少角色的权限
使R1减少了SELECT权限。
4.2.6 强制存取控制方法
自主存取控制缺点:
强制存取控制(MAC)
在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是系统中的活动实体
客体是系统中的被动实体,受主体操纵
敏感度标记(Label)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则:
1.仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
2.仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
DAC + MAC安全检查
实现强制存取控制MAC时要首先实现自主存取控制DAC
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
自主存取控制DAC与强制存取控制MAC共同构成数据库管理系统的安全机制。
小结
数据库角色
强制存取控制
4.3 视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。
授予用户查询整个表的权限:
授予用户查询某些列的权限:
授予用户查询某些行的权限?
[例4.14] 授权王平老师能查询计算机系学生的情况,授权系主任张明能对计算机系学生的信息进行所有操作。
(1)先建立计算机系学生的视图CS_Student
(2)在视图上进一步定义存取权限
4.4 审计(Audit)
什么是审计
将用户对数据库的所有操作记录在上面
监控数据库中的各种行为
发现非法存取,发现潜在威胁
小结
实现数据库系统安全性的技术和方法
————————————————
版权声明:本文为CSDN博主「萌宅鹿同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43734095/article/details/105190622
2022-06-30 18:04:28 10阅读
数据库安全性
4.1 数据库安全性概述
4.1.1 数据库的不安全因素
4.2 数据库安全性控制
4.2.1 用户身份鉴别
用户身份鉴别的方法
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
权限授予:`GRANT`
权限回收:`REVOKE`
创建数据库模式的权限
4.2.5 数据库角色
什么是数据库角色
使用角色管理数据库权限
4.2.6 强制存取控制方法
强制存取控制(MAC)
DAC + MAC安全检查
小结
4.3 视图机制
4.4 审计(Audit)
小结
问题的提出
例: 军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
系统安全保护措施是否有效是数据库系统主要的性能指标之一。
4.1 数据库安全性概述
4.1.1 数据库的不安全因素
4.2 数据库安全性控制
数据库安全性控制的常用方法:
DBMS对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。
在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。
对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。
4.2.1 用户身份鉴别
用户身份鉴别(Identification & Authentication)
(用户标识号在系统整个生命周期内唯一)
用户身份鉴别的方法
(1) 静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的
(2) 动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
(3) 智能卡鉴别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
(4) 生物特征鉴别
通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
4.2.2 存取控制
存取控制机制组成:
用户权限定义和合法权检查机制一起组成了DBMS的存取控制子系统。
4.2.3 自主存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC)
通过 SQL 的 GRANT语句和REVOKE语句实现
4.2.4 授权:授予与回收
权限授予:GRANT
语义:将对指定操作对象的指定操作权限授予指定的用户
发出GRANT
按受权限的用户
[例4.1]:把查询Student表权限授给用户U1
(将一种权限授予一个用户)
[例4.2]:把对Student表和Course表的全部权限授予用户U2和U3
(一次向多个用户传播多种同类对象的权限。)
[例4.3]:把对表SC的查询权限授予所有用户
[例4.4]:把查询Student表和修改学生学号的权限授给用户U4
(一次完成了对基本表和属性列这些不同对象的授权)
对属性列的授权时必须明确指出相应属性列名
[例4.5]:把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
方法一:
执行该语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:
[例4.6]
同样U6还可以将此权限授予U7。
[例4.7]
但U7不能再传播此权限。
权限回收:REVOKE
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回。
[例4.8] 把用户U4修改学生学号的权限收回
[例4.9] 收回所有用户对表SC的查询权限
[例4.10] 把用户U5对SC表的INSERT权限收回
如果系统缺省值为RESTRICT,回收U5的INSERT权限时应该使用CASCADE,否则拒绝执行该语句
如果U6或U7还从其他用户处获得对SC表的INSERT权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限
执行例4.8~4.10语句后学生-课程数据库中的用户权限定义表:
创建数据库模式的权限
模式、基本表、视图、索引是由数据库管理员在创建用户时实现。
基本表和视图、属性列是由GRANT/REVOKE决定的。
CREATE USER语句格式:
注:CREATE USER不是SQL标准,各个系统的实现相差甚远。
4.2.5 数据库角色
如果要对多个用户赋予相同的权限,下面操作会很麻烦;
什么是数据库角色
数据库角色:被命名的一组与数据库操作相关的权限
权限
使用角色来管理数据库权限,可以简化授权和回收的过程。
使用角色管理数据库权限
创建角色:
给角色授权:
将一个角色授予其他的角色或用户:
一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限指定WITH ADMIN OPTION,则获得权限的角色或用户还可以把这种权限授予其他角色
授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION
角色权限的收回:
用户可以回收角色的权限,从而修改角色拥有的权限
[例4.11] 通过角色来实现权限管理。
步骤如下:
(1)首先创建一个角色 R1
(2)然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限
(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限
(4)可以一次性通过R1来回收王平的这3个权限
[例4.12] 增加角色的权限
使角色R1在原来的基础上增加了Student表的DELETE 权限。
[例4.13] 减少角色的权限
使R1减少了SELECT权限。
4.2.6 强制存取控制方法
自主存取控制缺点:
强制存取控制(MAC)
在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是系统中的活动实体
客体是系统中的被动实体,受主体操纵
敏感度标记(Label)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
强制存取控制规则:
1.仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
2.仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
DAC + MAC安全检查
实现强制存取控制MAC时要首先实现自主存取控制DAC
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
自主存取控制DAC与强制存取控制MAC共同构成数据库管理系统的安全机制。
小结
数据库角色
强制存取控制
4.3 视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。
授予用户查询整个表的权限:
授予用户查询某些列的权限:
授予用户查询某些行的权限?
[例4.14] 授权王平老师能查询计算机系学生的情况,授权系主任张明能对计算机系学生的信息进行所有操作。
(1)先建立计算机系学生的视图CS_Student
(2)在视图上进一步定义存取权限
4.4 审计(Audit)
什么是审计
将用户对数据库的所有操作记录在上面
监控数据库中的各种行为
发现非法存取,发现潜在威胁
小结
实现数据库系统安全性的技术和方法
————————————————
版权声明:本文为CSDN博主「萌宅鹿同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43734095/article/details/105190622