疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
  1. 首页
  2. 服务器
  3. MYSQL
  4. 正文

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

2023年5月10日 360点热度 0人点赞 0条评论

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

三.数据库安全性

1.数据库安全性概述

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

2.数据库安全性控制

2.1用户身份鉴别

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

2.2存取控制

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

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

  • 授权
Grant 权限
on (类型,表/视图...) 对象名1,(类型,表/视图...) 对象名2...
to 用户1,用户2...
with grant option;(是否可以传播该权限)
  • 收回
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 表名;
标签: mysql
最后更新:2023年5月10日

大明

靠写代码养家的开发者。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1