数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】

2024-03-03 01:20

本文主要是介绍数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。


文章目录

  • 前言
  • 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语句相对来说并不是很重要

这篇关于数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768012

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库