【数据库系统原理】数据库安全性与完整性

在这里插入图片描述

数据库安全性

计算机安全性

在这里插入图片描述

数据库安全性控制

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

用户标识与鉴别
  • 系统提供的最外层安全保护措施
  • 系统核对口令以鉴别用户身份
  • 常用方法:静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别
  • 用户名和口令易被窃取
    每个用户预先约定好一个计算过程或函数
存取控制

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

自动存取控制
  • 通过SQL的GRANT语句和REVOKE语句实现
  • 用户权限有两个要素组成:数据库对象和操作类型——定义用户存取权限:定义用户可以在哪些数据库对象上执行哪些操作——定义存取权限称为授权(authorization)
  • 存取控制的对象不仅有数据本身,还有数据库模式
    在这里插入图片描述
授权与回收

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

数据库角色

在这里插入图片描述

  • 角色的创建 CREATE ROLE <角色名>
  • 给角色授权
  • 将一个角色授予其他的角色或用户
  • 角色权限的收回
强制存取控制方法

自主存取的缺点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关于规则2的解释:本质上是为了保证数据只能从低级流向高级

  • 强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分割的整体,只有符合密级标记要求的用户才可以操纵数据,从而提高了更高级别的安全性
  • 用户不能直接感知或控制
MAC与DAC的关系

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

视图机制

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

审计(Audit)

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

  • AUDIT语句:设置审计功能
  • NOAUDIT语句:取消审计功能
    在这里插入图片描述
数据加密
统计数据库安全性
  • 推理控制、隐蔽信道、数据隐私
  • 数据库安全机制的设计目标:试图破坏安全的人所花费的代加>>得到的利益

数据库完整性

在这里插入图片描述

  • 提供定义完整性约束条件机制
  • 提供完整性检查的方法
  • 违约处理

完整性机制的实施会影响系统性能。

实体完整性
实体完整性定义
  • PRIMARY KEY的表级定义和列级定义
实体完整性检查和违约处理

在这里插入图片描述
检查主码值的方法:全表扫描;建立索引

参照完整性
参照完整性定义

在这里插入图片描述

参照完整性检查和违约处理

在这里插入图片描述

  • 拒绝(NO ACTION)执行——默认策略
  • 级联(CASCADE)操作
  • 设置为空值(SET-NULL)——对于参照完整性,除了定义外码,还应该定义外码列是否允许空值

在这里插入图片描述

用户定义的完整性
属性上的约束条件的定义
  • 列值非空(NOT NULL)
  • 列值唯一(UNIQUE)
  • 检查列值是否满足一个布尔表达式(CHECK)
    在这里插入图片描述
属性上的约束条件检查和违约处理

拒绝执行

元组上的约束条件的定义

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

元组上的约束条件检查和违约处理

拒绝执行

完整性约束命名子句

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

断言
  • 创建断言CREATE ASSERTION <断言名> <CHECK 子句>
    每个断言被赋予一个名字,<CHECK 子句>中的约束条件与WHERE子句的条件表达式类似
  • 任何使断言不为真值的操作都会被拒绝
  • 删除断言DROP ASSERTION <断言名>
触发器

在这里插入图片描述

定义触发器

在这里插入图片描述

  • 只有表的拥有者,即创建表的用户才可以在表上创建触发器
  • 触发器只能定义在表上,不能定义在视图上
  • AFTER/BEFORE是触发的时机
  • 行级触发器(FOR EACH ROW)和语句级触发器(FOR EACH STATEMENT);前者执行行次数,后者执行一次
  • 触发动作体:NEW和OLD
激活触发器

在这里插入图片描述
同一个表上的多个BEFORE(AFTER)触发器,遵循“谁先创建谁先执行”的原则,或者按触发器名称的字母排序顺序执行。

最坏情况导致一个触发链

删除触发器

在这里插入图片描述


复习所用,侵删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值