数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】
前言
总结整理不易,希望大家点赞收藏。
给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。
文章目录
- 前言
- 4 第四章 数据库安全性
- 4.1 数据库安全性定义
- 4.2 数据库不安全因素
- 4.3 安全性控制
- 4.3.1 sql控制
- 4.4 数据库角色
- 5 第五章 数据库完整性
- 5.1 数据库完整性
- 5.2 完整性约束
- 5.2.1实体完整性(主键):
- 5.2.2 用户定义完整性:
- 5.2.3 例子
- 5.3 断言(更一般性的约束)
- 5.4 触发器
- 5.4.1 A. 创建触发器
- 5.4.2 B. 行级触发器
- 5.4.3 C. 删除触发器
- 6 练手题
4 第四章 数据库安全性
4.1 数据库安全性定义
数据库的安全性指的是保护数据库以防止不合法使用造成的数据泄露、更改、破坏。
4.2 数据库不安全因素
(1) 非授权用户对数据库的恶意存取和破坏
(2) 敏感数据泄露
(3) 环境脆弱
4.3 安全性控制
(1) 用户身份鉴别:静态口令(密码),动态口令(验证码),生物特征(指纹,人脸),智能卡。
(2) 存取控制:自主存取控制:grant,revoke语句。通过对存取权限的设定来进行安全性控制,对数据本身没有安全性标记。
强制存取控制:对数据本身进行密级标记,无论数据怎么复制,标记和数据总是一体的。只有符合密级标记要求的用户才能操纵数据。适用于安全性要求较高的场合。
(3) 视图
(4) 审计:一种事后检查的方式,审计把用户对数据库的所有操作自动记录放在审计日记里。用于安全性检查。
4.3.1 sql控制
Grant语句:
Grant select on table student To U1 With grant option //允许U1授权给其他用户
REVOKE语句:
Revoke insert On table sc From u1 (cascade/restrict) //cascade 级联收回U1授权出去的所有权限 Restrict 拒绝操作
创建数据库用户:
Create user u1 with DBA/RESOURCE/CONNECT //创建数据库模式的权限在创建数据库用户的时候才授权
DBA:所有权限 CONNECT只能登陆查询和操纵,不能创建别的东西 RESOURCE 可以创建表和查询、操纵。不能创建用户和模式 (默认connect)
4.4 数据库角色
角色使权限的合集,一般为具有相同权限的用户创建一个角色。
创建
Create role r1
授权 和给用户授权一样,可以给角色授权其他角色和用户:
Grant 角色1,角色2 To 角色3 With admin option
收回权限 和用户一样
5 第五章 数据库完整性
5.1 数据库完整性
定义:是指数据的正确性和相容性。是为了防止不符合语义的,不正确的数据。
为了为维护数据库的完整性,DBMS必须实现:
(1)完整性约束机制
(2)完整性检查方法
(3)进行违约处理
5.2 完整性约束
5.2.1实体完整性(主键):
列级约束,表级约束。主码唯一,且非空。
全表扫描 Primary key();
参照完整性(外键):Foreign key(sno) references student(sno);
参照正确,存在。非空(因为参照主码啊)
5.2.2 用户定义完整性:
A. 属性上的约束条件 Not null(非空) Unique(唯一) Check语句:sex char(2) check (sex in (‘男’,‘女‘)); 违约就拒绝执行
B. 元组上的约束条件,可以设置不同属性之间的相互制约 Check (sex=’女’ or name not like ‘Ms.%’)
5.2.3 例子
完整性约束命名子句
Constraint c1 check (sex in (‘男’,‘女‘)); //C1是约束名
Constraint c2 primary key (sno);
完整性约束都是在create table/alter table的时候写 Alter table student Add constraint c3 check(age<20)
5.3 断言(更一般性的约束)
//限制数据库最多60个人选
创建
Create assertion ass_st Check(60>=( Select count(*) From course,scWhere course.cno=sc.cno and cname=’数据库’))
删除
Drop assertion ass_st
5.4 触发器
定义:触发器是用户定义在关系表上的一类由事件驱动的特殊过程。事件——条件——动作,当事件发生时,检查条件,条件符合就执行。
触发器分为insert,update,delete三种触发器
5.4.1 A. 创建触发器
Create trigger t1 Before/after select/update/insert ( of sname 指定哪一列) on student
Referencing new/old row as R1 (给新的、旧的行取个名字,方便下面操作) For each row/statement When (条件) 触发体
例:
create trigger t1 After update of grade on sc Referencing Old row as oldtuple New row as newtuple
For each row When (newtuple.grade>=1.1* oldtuple.grade)
Insert into sc_u(sno,cno,oldgrade,newgrade) Values(oldtuple.sno,oldtuple.cno,oldtuple.grade,newtuple.grade)
5.4.2 B. 行级触发器
For each row 当触发器事件发生,表有多少行,就执行多少次触发器动作体
语句级触发器
For each statement 当触发器事件发生,只执行一次
5.4.3 C. 删除触发器
Drop trigger 触发器 on 表名
6 练手题
数据库不好找题,都是很零碎的知识点,还是要多记概念,SQL语句相对来说并不是很重要
相关文章:
数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】
前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言4 第四章 数据库安全性4.1 数据库安全性定义4.…...
网站维护页面404源码
网站维护页面404源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 下载地址 https://www.qqmu.com/2407.html...
CSS的文本样式属性值,web开发难点
什么是css块元素? 块级元素是独占一行显示的。它的兄弟元素必定不会与其在同一行中(除非脱离了文档流)。通俗点来说,就是块元素(block element)一般是其他元素的容器元素 戳这里领取完整开源项目:【一线大厂前端面试题…...
springboot+jsp汽车配件管理系统idea maven 项目lw
springbootweb汽车配件销售业绩管理系统服务于汽车配件公司业务,实现了客户管理,主要负责对客户相关数据的增删改查方面、渠道管理,主要对渠道信息也就是设备的供应商渠道信息进行管理、项目管理,主要是一些项目信息的记录与整理、销售数据管…...
计算机网络-网络安全(二)
1.应用层安全协议: S-HTTP或SHTTP(Sec HTTP),安全超文本传输协议,是HTTP扩展,使用TCP的80端口。HTTPS:HTTPSSL,使用TCP的443端口。和TLS(传输层安全标准)是双…...
Flutter App代码混淆
Flutter 应用混淆 Flutter 应用的混淆非常简单,只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。 flutter build apk –obfuscate --split-debug-info 命令需要指定输出调试文件的位置,该命令会生成一个符号映…...
pandas中apply函数的坑——错误信息Must provide ‘func‘ or tuples of ‘(column, aggfunc)的解决办法
近期需要获取某网站上的文章标题,并对文章来源以及不同来源的文章数量进行分析。已通过爬虫完成对文章标题、日期和文章链接的爬取,并存入pandas中的dataframe中,准备进行下一步的分析。 该网站一般情况下,文章标题前两个字是信息…...
《操作系统真相还原》读书笔记二:环境搭建 xshell连接virtualbox
修改 sshd_config 使用 vi /etc/ssh/sshd_config命令进入sshd服务配置,键盘输入i进行编辑,将监听端口、监听地址前的 # 号去除,开启允许远程登录,开启使用用户名密码来作为连接验证。修改完成,按一下Esc,输…...
CSS盒模型居中方法,大学生必备
96道前端面试题 下面给大家分享96道前端面试题 1,一些开放性题目 自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势。项目介绍如何看待前端开发?平时是如何学习前端开发的?未来三到五年的…...
【Golang星辰图】构建健壮应用的秘籍:探索Go语言中最强大的测试工具库
精进单元测试:探秘Go语言中流行的测试框架和工具 前言 提高软件质量和稳定性是每个开发人员的目标之一。而单元测试是保证代码质量的重要手段之一,可以帮助我们检查代码是否按预期工作,并提早发现潜在的bug。Go语言提供了丰富的测试框架和工…...
刷题笔记day27-回溯算法3
39. 组合总和 var path []int var tmp []int var result [][]int// 还是需要去重复,题目中要求的是至少一个数字备选的数量不同。 // 所以需要剪枝操作,右边的要比左边的> func combinationSum(candidates []int, target int) [][]int {// 组合问题pa…...
【项目】Boost 搜索引擎
文章目录 1.背景2.宏观原理3.相关技术与开发环境4. 实现原理1.下载2.加载与解析文件2.1获取指定目录下的所有网页文件2.2. 获取网页文件中的关键信息2.3. 对读取文件进行保存 3.索引3.1正排与倒排3.2获取正排和倒排索引3.3建立索引3.3.1正排索引3.3.2倒排索引 4.搜索4.1 初始化…...
vue3 (六)自定义指令
1.定义自定义指令: app.directive(pos,{mounted(el,bunding){el.style[bunding.arg] bunding.value px;}, updated(el,bunding){el.style[bunding.arg] bunding.value px;} }) app.directive(指令名,{ mounted(el,bunding){}, updated(el,bunding){} }) 如果只…...
vite、mode如果为production打包后 .env.production 中 VITE_API_DOMAIN变量作为API地址吗
Vite 是一个现代化的前端构建工具,它使用 .env 文件来管理不同环境下的环境变量。通过为不同的环境(如开发环境、生产环境等)设置不同的 .env 文件,你可以控制这些环境中的变量,这些变量在构建时会被注入到项目中 当你…...
静态时序分析:SDC约束命令set_fasle_path详解
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 目录 指定建立/保持时间检查 指定上升/下降沿 指定时序路径起点 删除虚假路径 添加注释 简单使用 写在最后 在之前的文章中,我们讨论了如何使…...
浅谈马尔科夫链蒙特卡罗方法(MCMC)算法的理解
1.解决的问题 计算机怎么在任意给定的概率分布P上采样?首先可以想到把它拆成两步: (1)首先等概率的从采样区间里取一个待定样本x,并得到它的概率为p(x) (2)然后在均匀分布U[0,1]上取一个值&a…...
2403C++,C++20协程库
原文 基于C20协程的http库--cinatra cinatra是基于C20无栈协程实现的跨平台,仅头,高性能,易用的http/https库(http1.1),包括httpserver和httpclient,功能完备,不仅支持最普通的getpost等请求,还支持restfulapi,websocket,chunked,ranges,multipart,静态文件服务和反向代理等功…...
mybatis动态加载mapper.xml
mybatis动态加载mapper.xml mybatis动态加载mapper.xml、springboot mybatis动态加载mapper.xml 教程连接:https://blog.csdn.net/weixin_44480167/article/details/136356398...
安卓类加载机制
目录 一、ClassLoader介绍二、双亲委托机制三、类的加载过程 一、ClassLoader介绍 任何一个 Java 程序都是由一个或多个 class 文件组成,在程序运行时,需要将 class 文件加载到 JVM 中才可以使用,负责加载这些 class 文件的就是 Java 的类加…...
FPGA高端项目:FPGA基于GS2971的SDI视频接收+HLS图像缩放+多路视频拼接,提供4套工程源码和技术支持
目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收转HDMI输出应用本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS动态字符叠加输出应用本方案的SDI接收HLS多路视频融合叠加应用本方案…...
在 MyBatis 的映射元素 <resultMap> 中,<id> 和 <result> 都用于将查询结果集的列映射到 Java 对象的属性
在 MyBatis 的 <resultMap> 中,<id> 和 <result> 都用于将查询结果集的列映射到 Java 对象的属性,但它们的语义和内部处理机制有本质区别。下面从多个维度详细讲解。 1. <resultMap> 简介 <resultMap> 是 MyBatis 中最重…...
手机也能跑Llama?聊聊移动端/边缘设备部署LLM的现状、挑战与未来展望
手机也能跑Llama?移动端大语言模型部署实战指南 当ChatGPT掀起生成式AI浪潮时,大多数人都认为这类技术只能依赖云端算力。但2023年Meta开源Llama系列模型后,一个令人兴奋的问题开始被频繁讨论:我们能否在手机这样的移动设备上本地…...
物理动力学系统的强化学习:一种替代方法
原文:towardsdatascience.com/rl-for-physical-dynamical-systems-an-alternative-approach-8e2269dc1e79?sourcecollection_archive---------1-----------------------#2024-07-28 重新引入遗传算法并与神经网络进行比较 https://medium.com/retter_42511?sourc…...
如何用PlugY实现暗黑破坏神2单机体验增强
如何用PlugY实现暗黑破坏神2单机体验增强 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 在暗黑破坏神2的单机冒险中,玩家常常面临储物空间不足、角色加点…...
璀璨星河效果展示:古典结构×现代张力的Z-Image原生艺术生成
璀璨星河效果展示:古典结构现代张力的Z-Image原生艺术生成 “我梦见了画,然后画下了梦。” —— 文森特 梵高 今天,我想带你走进一个特别的数字艺术馆。在这里,冰冷的代码逻辑与炽热的艺术灵魂相遇,古典的审美结构与现…...
百川2-13B-4bits开源大模型镜像免配置优势:内置check.sh脚本实现7维度健康检查
百川2-13B-4bits开源大模型镜像免配置优势:内置check.sh脚本实现7维度健康检查 1. 为什么说这个镜像"开箱即用"? 如果你之前部署过大语言模型,肯定经历过这些头疼事:环境配置报错、依赖包冲突、端口被占用、GPU显存不…...
RAGFlow源码部署避坑大全:从Poetry安装失败到NLTK资源缺失的完整修复指南
RAGFlow源码部署全攻略:从环境搭建到疑难解析的终极指南 1. 环境准备与系统要求 在开始RAGFlow的部署之前,确保您的系统满足以下最低配置要求:硬件配置: CPU:4核及以上内存:16GB及以上存储:50GB…...
OpenClaw飞书机器人进阶:Qwen3.5-9B图片问答自动回复
OpenClaw飞书机器人进阶:Qwen3.5-9B图片问答自动回复 1. 为什么选择OpenClaw飞书Qwen3.5-9B组合? 去年我们团队内部遇到一个典型问题:产品文档和功能说明分散在各个Confluence页面,新同事遇到界面不熟悉时,老员工需要…...
别再只建网站了!宝塔面板的‘Node项目’功能,让你的Express/Koa后端服务上线更简单
解锁宝塔面板的隐藏技能:Node.js后端服务一键部署实战指南 你是否还在为Node.js项目的繁琐部署流程而头疼?手动配置PM2、Nginx反向代理、环境变量设置...这些操作不仅耗时耗力,还容易出错。其实,你每天都在使用的宝塔面板早已内置…...
NVIDIA Profile Inspector终极指南:如何免费解锁显卡隐藏性能
NVIDIA Profile Inspector终极指南:如何免费解锁显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 想要让游戏运行更流畅、画面更清晰吗?NVIDIA显卡驱动中隐藏着大量可…...
