ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】

2021-01-15 09:58:10  阅读:264  来源: 互联网

标签:GRANT 第一篇 数据库 重温 用户 Student SC 数据库系统 权限


本篇内容为中国人民大学教授王珊、萨师煊的《数据库系统概论》自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P28-P31,属教材“【第一篇 基础篇】”的“【第4章 数据库安全性】”内容。

文章目录


在这里插入图片描述


P28 数据库安全性概述

28.1 数据库的不安全因素

  • 非授权用户对数据库的恶意存取和破坏(非法用户假冒合法用户)
  • 数据库中重要或敏感的数据被泄露(非法用户直接破坏)
    秋后算账——审计
  • 安全环境的脆弱性(大背景即计算机系统的安全性)

28.2 安全标准

在这里插入图片描述

  • TCSEC标准
    在这里插入图片描述
  • CC标准
    在这里插入图片描述

P29 数据库安全性控制1

29.1 用户身份鉴别

  • 最外层安全保护措施
  • 方法:
    ① 静态口令鉴别(易被攻击)
    ② 动态口令鉴别(一次一密)
    ③ 智能卡鉴别
    ④ 生物特征鉴别
    在这里插入图片描述

29.2 存取控制

  • 定义用户权限
  • 合法权限检查
    在这里插入图片描述

29.3 自主存取控制

  • 用户对不同的数据对象有不同的存取权限
  • 不同的用户对同一对象也有不同的权限
  • 用户可以转授权限
    在这里插入图片描述

29.4 授权:授予与收回

  • 权限授予GRANT(不允许循环授权)
GRANT <权限> [,<权限>]……
ON <对象类型> <对象名> [,<对象类型> <对象名>]……
TO <用户> [,<用户>]……
[WITH GRANT OPTION];
// 【一种权限授予一个用户】把查询Student表权限授给用户U1

GRANT SELECT
ON TABLE Student
TO U1;


// 【多种权限授予多个用户】把对Student表和Course表的全部权限授给用户U2和U3

GRANT ALL PRIVILEGES
ON TABLE Student, Course
TO U2, U3;


// 【授予所有用户】把对SC表的查询权限授给所有用户

GRANT SELECT
ON TABLE SC
TO PUBLIC;


// 【对基本表和属性列不同对象的授权】把查询Student表和修改学生学号的权限授给用户U4

GRANT UPDATE(Sno), SELECT
ON TABLE Student
TO U4;


// 【授权】把对表SC的INSERT权限授给用户U5,并允许其再将此权限授予其他用户

GRANT INSERT	// 授给用户U5,并允许其再将此权限授予其他用户
ON TABLE SC
TO U5
WITH GRANT OPTION;

GRANT INSERT	// 授给用户U6,并允许其再将此权限授予其他用户
ON TABLE SC
TO U6
WITH GRANT OPTION;

GRANT INSERT	// 授给用户U7,不允许再授予其他用户
ON TABLE SC
TO U7;

在这里插入图片描述

  • 权限收回(REVOKE)
REVOKE <权限> [,<权限>]……
ON <对象类型> <对象名> [,<对象类型> <对象名>]……
FROM <用户> [,<用户>]……[CASCADE | RESTRICT];
// 把用户U4修改学生学号的权限收回

REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;


// 收回所有用户对表SC的查询权限

REVOKE SELECT
ON TABLE SC
FROM PUBLIC;


// 把用户U5对SC表的INSERT权限收回

REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;	// 级联收回U6和U7从U5这里获得的INSERT权限

在这里插入图片描述


P30 数据库安全性控制2

30.1 数据库角色

  • 角色是权限的集合:数据库角色是被命名的一组与数据库操作从相关的权限。避免了语句重复
    在这里插入图片描述
  • 创建角色
CREATE ROLE <角色名>
  • 给角色授权
GRANT <权限> [,<权限>]……
ON <对象类型>对象名
TO <角色>[,<角色>]……
  • 将一个角色授权其他的角色或用户
GRANT <角色1> [,<角色2>]……
TO <角色3>[,<用户1>]……
[WITH ADMIN OPTION]
  • 角色权限的收回
REVOKE <权限> [,<权限>]……
ON <对象类型>对象名
FROM <角色>[,<角色>]……
  • 示例
// (1)创建角色R1
CREATE ROLE R1;

// (2)给角色R1授权拥有Student表的SELECT、UPDATE、INSERT权限
GRANT SELECT, UPDATE, INSERT
ON TABLE Student
TO R1;

// (3)将角色R1授予三个用户:王平,张明,赵玲
GRANT R1
TO 王平, 张明, 赵玲;

// (4)一次性地通过R1来收回王平的这三个权限
REVOKE R1
FROM 王平

30.2 强制存取控制方法

  • 自主存取控制(MAC)能够通过授权机制有效地控制对敏感数据的存取,但会存在“无意泄露”。
  • 强制存储控制

P31 视图、审计、数据加密及其他安全性保护

31.1 视图机制

  • 视图机制间接地是吸纳支持存取为此的用户权限定义。
// 建立计算机系学生的视图

CREATE VIEW CS_Student
AS
SELECT *
FROM  Student
WHERE Sdept='CS';

// 授予王平老师查询权限

GRANT SELECT
ON CS_Student
TO 王平;

// 授予张明系主任查询以及增删改权限

GRANT ALL PRIVILEGES
ON CS_Student
TO 张明;

31.2 审计机制

  • 启用一个专用的审计日志(秋后算账:做了什么事情都已经被记录下来了)
  • 但是审计很费时间和空间,需要根据实际情况决定采用
// 对修改SC表结构或修改SC表数据的操作进行审计

AUDIT ALTER, UPDATE
ON SC;


// 取消对SC表的一切审计

NOAUDIT ALTER, UPDATE
ON SC;

31.3 数据加密

  • 防止数据库中数据在存储传输过程中的失密
  • 存储加密
    ① 透明存储加密
    ② 非透明存储加密
  • 传输加密
    ① 链路加密(报头+报文都加密)
    ② 端到端加密(只加密报文,不加密报头)
    在这里插入图片描述

31.4 其他安全性保护

  • 推理控制
  • 隐蔽信道

札记:

  • 关系R中能唯一标识一个元组的是它的(主码、候选码、全码)。
  • 关系模式是静态的、稳定的,关系是动态的、随时间变化的。
  • 关系数据模型的基本数据结构是(关系)。

标签:GRANT,第一篇,数据库,重温,用户,Student,SC,数据库系统,权限
来源: https://blog.csdn.net/weixin_44421798/article/details/112599524

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有