【数据库系统】数据库完整性和安全性

第六章 数据库完整性和安全性

  • 基本内容
  • 安全性;完整性;数据库恢复技术;SQL Server的数据恢复机制;

    • 完整性
      • 实体完整性、参照完整性、用户自定义完整性
    • 安全性
      • 身份验证
      • 权限控制
      • 事务日志,审计
      • 数据加密
    • 数据库恢复
      • 冗余技术恢复,数据转储和登记日志
      • 检查点恢复,检查点和重启动文件
      • 数据库镜像
  • 完整性,
  • 数据库完整性就是保证数据库中的数据的正确性和一致性,防止数据库中出现不符合要求的数据

    • 实现完整性
    • 约束、默认、规则、触发器、存储过程

    • 违反完整性
      • 当操作违反实体和用户自定义完整性时,一般DBMS都拒绝执行操作
      • 当操作违反参照完整性时
        • 拒绝执行
        • 级联执行,将所有表一起更新
        • 置空值
    • 约束
      • 表级约束
      • 若干元组间以及关系之间联系的数据约束。例如:选课表中,每个人最多能选 10 门课;学生表中,学生的学号必须唯一;选课表中的学号和课程号必须在学生表和课程表中存在。

      • 元组级约束
      • 同一个元组属性之间必须满足的约束条件。如学生表中年龄属性的值应该等于当前日期减去出生日期。

      • 属性级约束
      • 针对列的类型、取值范围、精度、排序等而制定的约束条件。例如:性别只能是‘男’或‘女’。

      • 常用约束
        • primary key主码,
        • foreign key外码,
        • (not) null非空
        • unique唯一性
        • check检查
          • 使用时,例如check (sex in (''男,‘女’))
          • CHECK(SNO LIKE '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
          • 确保学号是八位有效数字,还可以根据特定学院缩小范围

        • default默认,例如创建表时设置属性 sex default '男'
    • 规则
    • 数据库对存储在表的列或用户自定义数据类型中的值的规定和限制 自定义数据类型 sp_addtype int

      • 规则只有绑定到列或者用户定义数据类型时才起作用。
      • 规则是作为一个独立的数据库对象存在,表中每列或者每个用户定义数据类型只能和一个规则绑定。
      • 创建规则
        • CREATE **RULE** rule_name AS condition_expression
      • 绑定规则可以通过 sp_bindrule 存储过程实现
        • exec sp_bindrule 'rule_name','属性列'
        • sp_addtype增加用户自定义变量

      • 解除规则
        • exec sp_unbindrule '属性列'
        • drop **rule** rule_name
  • 安全性, @面试
  • 安全性是指保护数据库以防不合法的使用造成数据的泄露、更改或破坏,确保只有授权的用户使用数据库中数据和执行操作

    • 措施: 数据加密,权限控制,审计日志,身份鉴别

    • @面试

    • 安全级别

      • A1,B3,B2,B1,C2,C1,D
    • 角色

    • 每次单独设置用户的权限麻烦,SQL提供了角色的用户分组,将具有相同权限的角色分配到一个组中

      • 服务器角色

        • 由服务器账户组成的组,根据对服务器的管理任务以及这些任务的相对的重要性等级把具有sql server管理职能的用户划分到服务器角色组
        • 固定服务器角色:sysadmin,serveradmin,diskadmin,processadmin,securityadmin,setupadmin,dbcreator和 bulkadmin
      • 数据库角色

      • 由数据库成员组成的组

        • 固定的数据库角色
        • 在这里插入图片描述
      • 一个用户可以属于同一个数据库中的多个角色

      • 创建角色

      • create role role_name

      • 为角色添加成员,使用系统存储过程,

      • sp_addrolemember 'role_name'

    • 授权粒度

    • 可以定义的数据对象的范围,如果粒度越细,可以定义的数据对象范围越小,授权系统就越灵活

      • 关系数据库中的粒度:数据库、表、列、行
    • 授权操作

    • grant 权限名称/角色名称 on 对象 对象名称 to user_name 【with grant option权限可以传递】

    • 回收权限

    • revoke 权限名称 on 对象 对象名称 from user_name【cascade | restrict】

    • 权限类别

      • 对象权限
        • 对特定的安全对象(表、视图、列、存储过程、函数)的操作权限
        • 如select,update,insert,delete,execute,references。
      • 语句权限
        • 对数据库的操作权限,通常是一些具有管理性的操作
        • 在这里插入图片描述
    • 数据加密

    • 审计

    • 将用户对数据库的所有操作 记录在审计日志上 ,DBA利用审计日志找出非法存储数据的人、时间、内容

      • 系统级审计
      • DBA设置,检测grant和revoke等操作

      • 用户级审计
      • 检测所有用户对表和视图的访问和操作

      • 设置审计功能
      • audit alter,update on table_name;

      • 取消审计功能
      • noaudit alter,update on table_name;

    • SQL Server安全功能

      • 登录
      • Windows身份登录;混合身份登录

    • 安全性控制

      • MAC,强制存取控制,对不同用户授予不同级别的许可证
      • DAC,自主存取控制,不同用户对不同数据对象有不同的存取权限
  • 数据库恢复技术
  • 冗余技术、检查点恢复技术、镜像恢复技术

    • 事务, @面试
    • 用户自定义的数据库操作序列,是恢复和并发的基本单位

      • 特性,ACID
        • 原子性Atomicity
        • 要么全做要么全不做

        • 一致性Consistency
        • 事务执行结果是从一个一致性状态到另一个一致性状态

        • 隔离性Isolation
        • 事务的执行不受其他事务的干扰

        • 持续性Duration
        • 一个事务一旦执行成功,那么对数据库的影响是持久性的

      • 事务状态
        • 活动
        • 事务处于执行状态

        • 部分提交
        • 事务的所有语句都执行完成,但是结果数据还在内存中

        • 提交
        • 事务执行完成且对数据的修改已经完全写入数据库中,日志信息也保存了执行记录

        • 失败
        • 事务不能成功执行,必须进行回滚

        • 终止
        • 事务回滚,数据库恢复到事务执行之前的状态

    • 数据库故障
      • 系统故障
      • DBMS代码错误;硬件故障;操作员失误;特定类型故障;停电

        • Undo未完成的事务,Redo已完成的事务,用队列进行记录
      • 事务内部故障
      • 事务进入失败状态,即将回滚,往往是非预期的

      • 存储设备故障
      • 发生概率低但是破坏性极大

        • 重装数据库,重做已完成的事务
      • 其他原因
    • 数据库恢复原理, @面试
    • 利用存储在系统特定部分的冗余数据来重建数据库中被破坏的数据 ​冗余恢复技术、检查点恢复技术、数据库镜像恢复技术

      • 冗余恢复技术
      • 数据转储和登记日志,通常二者结合使用

        • 数据转储
          • 静态转储和动态转储
              1. 静态转储
            • 在无事务执行时对数据进行转储

              • 转储开始时数据库必须处于一致的状态
              • 转储期间不允许对数据库进行任何的修改
              1. 动态转储
            • 转储操作和用户事务同时进行,不能保护副本数据有效性,需要配合日志文件进行恢复

          • 增量转储和海量转储
          • 每次转储的数据量是全部数据量还是变化的数据量,一般长间隔海量,短间隔增量

        • 登记日志
          • 登记的日志必须严格按照时间顺序
          • 必须先写日志文件再写数据文件
          • Redo技术
          • 发生故障重做事务

          • Undo技术
          • 撤销失败的事务对数据的一切option

      • 检查点恢复技术
      • 使用Redo和Undo消耗大量时间和资源,日志文件中增加了 检查点记录和重启动文件

        • 检查点
        • 记录在日志文件中表示数据库是否正常运行的一个标志,记录 所有 当前活动的事务

        • 重启动文件
        • 记录各个检查点记录在日志文件中的地址

        • 恢复步骤
          • 从重启动文件中找到最后一个检查点记录
          • 得到检查点中所有事务清单,并加入Undo队列中
          • 从检查点开始正向扫描事务,遇到完成的事务就加入Redo队列
          • 对Undo事务进行Undo处理,对Redo事务进行Redo处理
      • 数据库镜像恢复技术
      • 建立两个数据库,DBMS自动将数据库变化复制过去,保证两个数据库一致性

        • 实际使用中纸赋值关键数据和日志文件
        • 镜像数据库也可用于并发访问
  • SQL Server数据恢复机制
    • 备份方法
      • 完全备份
      • 海量转储形成备份

      • 差异备份
      • 事务日志备份
      • 必须和完全备份结合使用,来保存每次完全备份之间执行的事务,用于回滚恢复

      • 数据库文件或文件组备份
    • 恢复方法
      • 简单恢复
      • 完全恢复
      • 大容量日志记录恢复
  • 数据库维护所做工作, @面试
    • 数据库转储与恢复,
    • 数据库安全性和完整性, ,
    • 数据库性能监督、分析、改进
    • 数据库重组织和重构造

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/477963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 v-for绑定的dom获取ref为undefined

这是代码结构 <div class"playerInfo" v-for"(item, index) in data.playersInfo" :key"index" :ref"el > {if(el)playersRef[index] el}":style"left:${item.position[0]};top:${item.position[1]}"click"pla…

【ZooKeeper】2、安装

本文基于 Apache ZooKeeper Release 3.7.0 版本书写 作于 2022年3月6日 14:22:11 转载请声明 下载zookeeper安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz解压 tar -zxvf apache-zookeeper-3.7.0-b…

Transformer的前世今生 day06(Self-Attention和RNN、LSTM的区别

Self-Attention和RNN、LSTM的区别 RNN的缺点&#xff1a;无法做长序列&#xff0c;当输入很长时&#xff0c;最后面的输出很难参考前面的输入&#xff0c;即长序列会缺失上文信息&#xff0c;如下&#xff1a; 可能一段话超过50个字&#xff0c;输出效果就会很差了 LSTM通过忘…

什么是行业垂直类媒体?有哪些?怎么邀约

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体胡老师。 行业垂直类媒体是聚焦于特定行业或领域的媒体平台。 行业垂直类媒体不同于主流媒体&#xff0c;它们专注于提供与某个特定领域相关的深入内容和服务&#xff0c;例如商业新闻、旅游、数字…

什么快递可以寄摩托车?看你要啥样的了

一辆49cc的二冲程摩托车仅需561元。 购买125的组装车不会超过1元&#xff0c;购买250品牌发动机的组装车不会超过4000元。 购买一辆名牌摩托车大约需要4000到10000元。 花一万到两百万多就能买到一辆像样、动力强劲、能玩的炫酷摩托车。 哈哈&#xff0c;就看你想要什么了&…

力扣---随机链表的复制

给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

关于5.x版本的Neo4j与py2neo的访问技巧

先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里&#xff0c;首推的http连接方法可能并不是最好的&#xff0c;应该用 bolt 方法可能更好。 对于大多数使用 py2neo 与 Neo4j 数据库进行交互的应用程序来说&#xff0c;建议使用 Bolt 协议&#xff08;即…

操作系统实践之路——五、初始化(2.Linux初始化)

文章目录 一、全局流程二、从BIOS到GRUB三、GRUB是如何启动的四、详解vmlinuz文件结构五、流程梳理-1六、内核初始化从_start开始七、流程梳理-2参考资料 前言 ​ 本章节将讨论一下Linux如何去做初始化。 一、全局流程 ​ 在机器加电后&#xff0c;BIOS 会进行自检&#xff…

Wi-Fi 7:下一代无线网络的革命性技术与特点解析

更多精彩内容在 随着无线通信的不断发展&#xff0c;Wi-Fi技术作为无线网络连接的重要组成部分&#xff0c;也在不断演进。Wi-Fi 7作为下一代无线网络标准&#xff0c;被认为将带来革命性的变化&#xff0c;提供更快速、更可靠的网络连接。本文将深入解析Wi-Fi 7的技术和特点&a…

广交会参展,一起来看看展会二维如何制作吧

展会&#xff0c;一直都是企业开发客户、寻找合作伙伴、拓展渠道、展示产品和技术、提升品牌知名度、行业交流的重要宣传活动。 据相关资料显示&#xff0c;2024年新能源行业和电子电力行业依旧是展会青睐的重点行业&#xff0c;分别占到统计数据的35%和38%。从举办展会的国家…

GPT-4 VS Claude3、Gemini、Sora:五大模型的技术特点与用户体验

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚…

如何在个人Windows电脑搭建Cloudreve云盘并实现无公网IP远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

九、C#桶排序算法

简介 桶排序是一种线性时间复杂度的排序算法&#xff0c;它将待排序的数据分到有限数量的桶中&#xff0c;每个桶再进行单独排序&#xff0c;最后将所有桶中的数据按顺序依次取出&#xff0c;即可得到排序结果。 实现原理 首先根据待排序数据&#xff0c;确定需要的桶的数量。…

27 OpenCV 凸包

文章目录 概念Graham扫描算法convexHull 凸包函数示例 概念 什么是凸包(Convex Hull)&#xff0c;在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。 正式定义&#xff1a; 包含点集合S中所有点的最小凸多边形称为凸包 Graham扫描算法 首先选择Y方向最低…

Spring MVC(三)- 处理器与注解

Spring MVC 用Controller及RestController 注解来标志&#xff08;自动扫描并注册成bean&#xff09;该类是一个控制器容器类,在该类下&#xff0c;使用RequestMapping及其扩展注解来定义处理器。使用注解&#xff0c;可以定义请求的映射、请求的输入、异常处理等。 1 映射请求…

MAC 帧(数据链路层)

目录 一、MAC帧的格式 二、无效的帧 三、帧间最小间隔 四、帧的发送与接收 五、小结 一、MAC帧的格式 • 常用的以太网 MAC 帧格式有两种标准 &#xff1a; DIX Ethernet V2 标准&#xff1b; IEEE 的 802.3 标准。 • 最常用的 MAC 帧是以太网 V2 的格式。 二、…

python网络爬虫实战教学——requests的使用(1)

文章目录 专栏导读1、前言2、get请求3、抓取网页4、抓取二进制数据5、请求头 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对…

git push出错: src refspec dev/xxx does not match any

使用如下命令gitp push出错: git push origin 远端分支名 git push origin dev/xxxx error: src refspec dev/xxxx does not match any error: failed to push some refs to https://git.woa.com/..... 解决方案 1: git push origin 本地分支名:远端分支名 解决方案2&#…

SV-6005TP 双键网络对讲求助模块 sip对讲终端音频模块 支持POE供电 带功放输出

SV-6005TP 双键网络对讲求助模块 sip对讲终端音频模块 支持POE供电 带功放输出 一、描述 SV-6005TP模块是我司的一款壁挂式SIP双按键求助对讲模块&#xff0c;具有10/100M以太网接口&#xff0c;其接收网络的音频数据&#xff0c;实时解码播放&#xff0c;还配置了麦克风输入…

python-学习-Linux系统使用

设置变量并输出 [rootldpbzhaonan py]$ cat var01.py str1hello str2worldprintf "${str1} ${str2} \n" printf ${str1} ${str2} \n\n就是代表换行&#xff0c;使用printf输出的话&#xff0c;没有自动换行。 不使用换行如下图显示 [rootldpbzhaonan py]$ cat var0…