数据库系统概论—安全、完整性

数据库系统概论—基础篇(3)

三.数据库安全性

1.数据库安全性概述

数据库的安全性指保护数据库以防不合法使用所造成的数据泄露、更改或破坏

2.数据库安全性控制

2.1用户身份鉴别

  • 静态口令鉴别
  • 动态口令鉴别
  • 生物鉴别特征
  • 智能卡鉴别

2.2存取控制

  • 自主存取控制:给用户限权(DAC,C1级)
  • 强制存取控制:给数据库对象一定的密级(MAC,B1级)

2.3自主存取控制方法(授权:授予与收回)

  • 授权
%ign%ignore_a_1%re_pre_1%
  • 收回
Revoke 权限
on (类型,表/视图...) 对象名1,(类型,表/视图...) 对象名2...
from 用户1,用户2...
CASADE/RESTRICT;(是否级联)
  • 创建用户
CREATE USER 用户名 
with DBA/RESOURCE/CONNECT;

DBA:超级用户,有所有数据库对象的限权

RESOURCE:能创建表和视图

CONNECT:只能在限权内操作

2.4数据库角色

数据库角色是一组数据库操作相关的权限的集合(权限的集合)

#授予
Grant 权限
on (类型,表/视图...) 对象名
to 角色1,角色2...;
#收回
Grant 权限
on (类型,表/视图...) 对象名
to 用户1,用户2...;

2.5强制存取控制方法(数据加密)

主体:用户;客体:数据

  • 主体的许可证 >= 客体的密级时,该主体才能读取相应的客体
  • 主体的许可证 <= 客体的密级时,该主体才能相应的客体

3.视图机制

视图可以隐藏部分数据,控制要查询的数据是否对用户是可见的

4.审计

审计功能把用户对数据库的所有操作记录下来放入审计日志

四.数据库完整性

数据库完整性是数据库的正确性和相容性,是为例防止数据库中存在不符合语义的数据。

1.实体、参照完整性

  • 实体:非空唯一,在CREATE TABLE中使用PRIMART KEY定义。(主码)
  • 参照:外码,参照表的主码是被参照表的主码

2用户自定义完整性

针对某一具体应用的数据必须满足的语义要求。

  • 属性上的约束(列级)

NOT BULL:列值非空

UNIQUE:列值唯一

CHECK:是否满足条件(类型 属性 CHECK(Ssex in('男','女'))性别在男女中选)

  • 元组上的约束(表级)

eg:当性别是男,名字不以”Ms.“开头

建表...
CHECK(Sex = '女' or Sname not like'Ms.%');

3.完整性约束字句

给约束起名字,CONSTRAINT 约束名一起使用

CONSTRAINT 约束名 约束条件;

4.断言

更一般的约束

#创建
CREATE ASSERTION 断言名
CHECK字句;

#删除
DROP ASSERTION 断言名;

5.触发器

由事件触发的特殊过程(事件条件功能)

#创建
CREATE TRIGGER 触发器名
BEFORE/ALTER 触发事件 on 表名
REFRTENCING NEW/OLD ROW AS 变量#NEW/OLD ROW是两个表(新/旧)
FOR EACH ROW/STATEMENT#行级/列级
WHEN 触发事件 触发动作;

#删除
DROP TRIGGER 触发器名 on 表名;

原文链接:https://www.cnblogs.com/wht-de-bk/p/17379724.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:数据库系统概论—安全、完整性 - Python技术站

(0)
上一篇 2023年5月6日
下一篇 2023年5月8日

相关文章

  • Mysql表连接的误区与原理详析

    Mysql表连接的误区与原理详析 1. 介绍 在Mysql中,表连接是非常常见和重要的操作,但是许多人在进行表连接时会经常犯一些常见的错误。本文主要分析了常见的表连接误区,并介绍了Mysql表连接的原理和使用方法。 2. Mysql表连接的误区 2.1 忘记设置连接条件 在进行表连接时,我们必须指定连接条件,否则无法正确地进行连接。但是,有些人在进行表连接时…

    MySQL 2023年5月19日
    00
  • MySQL中SQL语句的大小写规则详解

    在MySQL中,SQL语句的大小写规则主要有以下三个方面: 关键字的大小写 MySQL中的关键字大小写不敏感,也就是说,可以将关键字用大写或小写字母书写,MySQL都能正确解析,例如SELECT和select是等效的,这个规则同样适用于所有的SQL标准关键字,包括WHERE、FROM、ORDER BY等。 数据库和表名的大小写 在MySQL中,数据库和表名的…

    MySQL 2023年3月9日
    00
  • MySQL常用慢查询分析工具详解

    MySQL常用慢查询分析工具详解 慢查询是指需要较长时间才能完成的查询,这种查询可能会导致系统负载过高,甚至在高并发场景下会引起系统宕机。因此,我们需要使用一些工具来优化慢查询,以提高系统的性能。在MySQL中,常用的慢查询分析工具有以下几种。 1. 慢查询日志 MySQL内置了慢查询日志,可以记录所有执行时间超过指定时限的SQL语句,并将其保存在日志文件中…

    MySQL 2023年5月19日
    00
  • MySQL日志的详细分析实例

    MySQL是常用的关系型数据库管理系统,它的日志对于数据库的运行、维护和问题排查都非常关键。本文将分享MySQL日志的详细分析实例,希望对学习MySQL的同学有所帮助。 一、MySQL日志类型及作用 MySQL共有以下6种日志类型: 错误日志(Error Log):记录MySQL服务在启动、运行以及停止过程中的错误信息。 查询日志(General Query…

    MySQL 2023年5月18日
    00
  • 解决win7系统MySQL服务无法启动报错1067的四种方法

    下面我来详细讲解“解决win7系统MySQL服务无法启动报错1067的四种方法”的完整攻略。 1. 检查日志文件 首先,我们需要确认MySQL日志文件是否有错误信息。若有错误信息,则可以更快地排查问题。 示例一:打开MySQL日志文件 在MySQL的配置文件中找到log-error字段,查看日志文件的路径,然后打开日志文件。例如,在my.ini中可以找到以下…

    MySQL 2023年5月18日
    00
  • 解决pymysql cursor.fetchall() 获取不到数据的问题

    下面我将详细讲解如何解决使用pymysql时,cursor.fetchall()获取不到数据的问题。 问题描述 在使用pymysql访问MySQL数据库时,我们通常需要使用cursor对象进行操作,例如执行SQL查询等。在执行查询并调用 cursor.fetchall() 方法获取所有结果时,有时会出现返回空结果的情况,即使数据库中确实存在符合条件的数据。出…

    MySQL 2023年5月18日
    00
  • mysql优化 慢查询(一)

    1.显示慢查询的一些参数的命令:show variables like ‘%slow%’;结果如图 2.上面四个参数的意思是:   log_slow_queries  off    表示“慢查询”是“关闭的状态”   slow_launch_time  2     表示“查询时间超过2秒就记录到慢查询日志中”;   slow_queries_log  off…

    MySQL 2023年4月13日
    00
  • 可以改善mysql性能的InnoDB配置参数

    当我们面对大量的访问和数据量时,InnoDB引擎的默认配置可能无法提供足够的效率和性能。因此,调整InnoDB配置参数可以极大地提高MySQL的性能。本文将提供一些常见的InnoDB配置参数,以及如何调整它们来改善MySQL的性能。 1. 关键配置参数 以下配置参数是常见的调整InnoDB性能的关键参数: innodb_buffer_pool_size: I…

    MySQL 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部