【数据库系统概论】第4章-数据库安全性

复习用,别看了

文章目录

    • [4.1 计算机安全性概述](#4.1 计算机安全性概述)
    • [4.2 数据库安全性控制](#4.2 数据库安全性控制)
      • [4.2.1 用户标识和鉴定](#4.2.1 用户标识和鉴定)
      • [4.2.2 存取控制](#4.2.2 存取控制)
      • [4.2.3 自主存取控制方法](#4.2.3 自主存取控制方法)
      • [4.2.4 数据库角色](#4.2.4 数据库角色)
      • [4.2.5 强制存取控制](#4.2.5 强制存取控制)
    • [4.3 视图机制](#4.3 视图机制)
    • [4.4 审计](#4.4 审计)
    • [4.5 数据加密](#4.5 数据加密)
    • [4.6 其他安全性保护](#4.6 其他安全性保护)

4.1 计算机安全性概述

  • 不安全因素


4.2 数据库安全性控制

4.2.1 用户标识和鉴定

最外层的安全保护措施,用户登录的时候

4.2.2 存取控制



4.2.3 自主存取控制方法

  1. 授权

  • 格式
  • 谁可以发出GRANT?
    DBA;
    数据库对象创建者:Owner;
    拥有该权限的用户
  • 谁接收权限?
    一个或多个具体用户
    全体用户public
  • with grant option
sql 复制代码
// 下面是王珊老师书上的代码,在SQL Server可能运行不了
grant select 
on table student 
to u1
// 授予所有权限
grant all priviliges
on table student, course
to u2,u3
// 授权给所有人
grant select
on table sc
to public
// 修改某列的权限
grant update(sno), select
on table student
to 
u4
// 允许传递权限
grant insert
on table sc
with grant option
  1. 回收

    是grant的逆操作,to -> from
sql 复制代码
revoke update(Sno)
on table student
from u4
// 收回所有
revoke select
on table sc
from public
// 级联收回,只收回u5为祖先的insert权限
revoke insert 
on table sc
from u5 cascade

4.2.4 数据库角色

  • 格式



    角色相当于一个类,用户获得角色相当于实例化
sql 复制代码
create role r1
grant select, update, insert
on table student
to r1
// 将角色设置给用户
grant t1
to u1,u2,u3
// 收回
revoke r1
from u1
// 收回权限
revoke insert 
on table student
from r1
  • 自主存取控制的缺点

4.2.5 强制存取控制



主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)

  • 强制存取控制规则
    (1)仅当主体的许可证级别 ≧ 客体的密级时,该主体才能读取相应的客体
    (2)仅当主体的许可证级别 ≤ 客体的密级时,该主体才能写相应的实体

解释:如果违反(2),高级别用户可以先把数据读出来,然后降低它的密级,使得密级从高流向低,造成数据的泄露。

4.3 视图机制

视图可以把保密的数据隐藏起来,提供一定程度的安全保护。

和对表权限的授予一样

4.4 审计

  1. 什么是审计
  2. 审计的可选择性
  3. 语法

4.5 数据加密

4.6 其他安全性保护

相关推荐
m0_6530313613 分钟前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE MySQL版)
运维·数据库·腾讯云
power 雀儿17 分钟前
集群聊天服务器---MySQL数据库的建立
服务器·数据库·mysql
骑着王八撵玉兔2 小时前
【性能优化与架构调优(二)】高性能数据库设计与优化
数据库·性能优化·架构
想要入门的程序猿3 小时前
Qt写入excel
数据库·qt·excel
Q_970956393 小时前
java+vue+SpringBoo校园失物招领网站(程序+数据库+报告+部署教程+答辩指导)
java·数据库·vue.js
Wyc724094 小时前
Maven
java·数据库·maven
程序猿小D4 小时前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的电影小说网站管理系统,推荐!
java·数据库·mysql·spring·毕业设计·ssm框架·电影小说网站
羊小猪~~4 小时前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
背太阳的牧羊人4 小时前
Neo4j 的向量搜索(Neo4jVector)和常见的向量数据库(比如 Milvus、Qdrant)之间的区别与联系
数据库·neo4j·milvus
liulun5 小时前
在浏览器中使用SQLite(官方sqlite3.wasm)
数据库·sqlite·wasm