数据库原理与应用 第 8 章 · 第一节
课程 › 第 8 章 › 第一节 章首涉及的方面控制方法权限检查权限表 版式
第 8 章 数据库安全性管理 · 第一节

安全性与权限系统

数据库安全性涉及的方面和控制方法,MySQL 怎样检查权限,权限记录在哪几张表中
本 节 知 识 点
  1. 01第 8 章 数据库安全性管理
  2. 02安全性涉及的方面
  3. 03安全性控制的一般方法
  4. 04MySQL 的权限管理机制
  5. 05权限管理的相关表
01
第 8 章 · 第一节 · 课件第 1、2 页

第 8 章 数据库安全性管理

本章讲数据库的安全性,以及在 MySQL 中怎样管理用户、权限和角色。

课件第 1 页

知道更多本章内容

本章分五部分:数据库安全性定义、MySQL 权限系统、用户管理、权限管理、角色管理。

02
第 8 章 · 第一节 · 课件第 3 页

安全性涉及的方面

安全性涉及法律、物理、政策等多个方面,本章只讲数据库系统本身。

课件第 3 页

重 点

机房、操作系统、管理制度出了问题,数据库的权限设置得再好也保护不了数据。

03
第 8 章 · 第一节 · 课件第 4、5、6、7 页合并重做

安全性控制的一般方法

从连接、权限、操作系统、数据和日志几个层次进行控制。

8.1 数据库安全性定义课件第 4、5、6、7 页合并

安全性控制的一般方法

数据库的安全性,是指保护数据库,防止不合法的使用造成数据泄露、更改或破坏。数据库系统从下面几个层次进行控制。
方法层次做法
用户标识与鉴定连接用户名加口令证明身份,还可以加手机短信、IP 地址、口令卡等
存取权限控制权限规定每个用户对库、表、视图等对象能执行哪些操作
定义视图权限为不同的用户定义不同的视图,限制各自能看到的数据
文件权限操作系统由操作系统限制哪些用户能读写数据文件
数据加密数据对存放在磁盘上的数据文件加密,防止绕过数据库直接读取
安全审计日志用日志记录对数据的操作,事后检查、分析安全漏洞
  • 本章讲前三种在 MySQL 中怎样实现:用户管理、权限管理和角色管理

练一练

下面哪一种方法主要防止有人绕过数据库、直接读取磁盘上的数据文件?
  1. A用户标识与鉴定
  2. B存取权限控制
  3. C数据加密
答案 C

前两种都在数据库之内起作用。数据文件加密后,直接读取文件也得不到数据。

知道更多

第 7 章的视图在这里也有用:只把需要的字段放进视图,再让用户使用视图。

04
第 8 章 · 第一节 · 课件第 9 页

MySQL 的权限管理机制

先验证用户身份,再对每一项操作检查权限。

课件第 9 页

试一试权限检查的顺序

用户拥有
执行 SELECT tn, sal FROM teaching.t

重 点

登录成功只说明身份正确,执行每一条语句时还要检查有没有相应的权限。

05
第 8 章 · 第一节 · 课件第 10、11、12、13、14、15 页合并重做

权限管理的相关表

mysql 库中的五张表分别记录不同级别的权限。

8.2 MySQL 权限系统课件第 10、11、12、13、14、15 页合并

权限管理的相关表

MySQL 把用户和权限存放在系统库 mysql 的五张表中。授予哪一级的权限,就记在哪一张表里。
表记录的内容主要字段
mysql.user用户和全局权限User、Host、authentication_string、各项全局权限
mysql.db数据库级权限User、Host、Db、各项权限
mysql.tables_priv表级权限User、Host、Db、Table_name、Table_priv、Column_priv
mysql.columns_priv字段级权限User、Host、Db、Table_name、Column_name、Column_priv
mysql.procs_priv存储过程和函数的权限User、Host、Db、Routine_name、Routine_type
例 查看服务器上的用户
SELECT User, Host
FROM mysql.user;
  • User 和 Host 合起来是 mysql.user 的主码,同名不同主机是两个用户
  • authentication_string 中存的是口令加密后的值,不是口令本身

试一试授予哪一级的权限,记在哪张表中

ON 后面写
权限表变化
保山学院·人工智能教研室·曹鼎鼎