第 8 章 · 第一节 · 课件第 1、2 页
第 8 章 数据库安全性管理
本章讲数据库的安全性,以及在 MySQL 中怎样管理用户、权限和角色。

知道更多本章内容
本章分五部分:数据库安全性定义、MySQL 权限系统、用户管理、权限管理、角色管理。
本章讲数据库的安全性,以及在 MySQL 中怎样管理用户、权限和角色。

本章分五部分:数据库安全性定义、MySQL 权限系统、用户管理、权限管理、角色管理。
安全性涉及法律、物理、政策等多个方面,本章只讲数据库系统本身。

机房、操作系统、管理制度出了问题,数据库的权限设置得再好也保护不了数据。
从连接、权限、操作系统、数据和日志几个层次进行控制。
| 方法 | 层次 | 做法 |
|---|---|---|
| 用户标识与鉴定 | 连接 | 用户名加口令证明身份,还可以加手机短信、IP 地址、口令卡等 |
| 存取权限控制 | 权限 | 规定每个用户对库、表、视图等对象能执行哪些操作 |
| 定义视图 | 权限 | 为不同的用户定义不同的视图,限制各自能看到的数据 |
| 文件权限 | 操作系统 | 由操作系统限制哪些用户能读写数据文件 |
| 数据加密 | 数据 | 对存放在磁盘上的数据文件加密,防止绕过数据库直接读取 |
| 安全审计 | 日志 | 用日志记录对数据的操作,事后检查、分析安全漏洞 |
前两种都在数据库之内起作用。数据文件加密后,直接读取文件也得不到数据。
第 7 章的视图在这里也有用:只把需要的字段放进视图,再让用户使用视图。
先验证用户身份,再对每一项操作检查权限。

登录成功只说明身份正确,执行每一条语句时还要检查有没有相应的权限。
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;
| 权限表 | 变化 |
|---|