内容正文:
11. 数据库安全
数据库原理与应用技术--MySQL
同步精品课堂
河北科学技术出版社
教学目标
一
教学目标
了解数据库安全的概念
01
掌握角色的创建与管理
06
了解用户和权限等相关概念
03
了解数据库安全性级别
02
掌握创建用户、修改用户和删除用户的方法
04
掌握用户权限的授予、查看与回收
05
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、掌握创建用户、修改用户和删除用户的方法
2、掌握角色的创建与管理
教学重点
角色的管理
教学难点
导入新课
三
讨论:
数据库的安全性是指只允许合法用户在权限范围对数据库进行操作,保护数据库,以防止任何不合法的使用所造成的数据泄露、更改或破坏。那么同学们知道数据库安全性措施有哪些吗?
任务一
1
数据库安全概述
新知讲授
四
⊙数据库安全概述
数据库安全,是为了保护数据库以防止对数据库的不安全使用和因偶然或恶意的原因,使数据库中数据遭到非法更改、破坏或泄露等所采取的各种技术、管理、立法及其他安全性措施的总称。数据库的安全性是评价数据库系统性能的一个重要指标。
数据库安全不是孤立的。它与计算机系统的安全紧密相连,是计算机系统安全的一部分。
系统安全保护措施的有效性是数据库系统的主要技术指标之一。
新知讲授
四
⊙数据库的不安全因素
数据库中重要或敏感的数据被泄露
非授权用户对数据库的恶意存取和破坏
安全措施有:
1)用户身份鉴别;
2)存取控制;
3)视图;
1)强制存取控制;
2)数据加密存储;
3)加密传输
安全环境的脆弱性
操作系统安全环境的脆弱性、网络协议安全保障的不足等都会造成数据库安全性被破坏
03
01
02
新知讲授
四
⊙数据库安全性级别
计算机系统的机房和设备应加以保护,防止有人进行物理破坏
正确授予用户访问数据库的权限
检查用户的身份是否合法及使用数据库的权限是否正确
允许用户通过网络进行远程访问
防止未授权的用户从操作系统处着手访问数据库
操作系统级
网络级
数据库系统级
环境级
用户级
高
低
任务二
1
用户管理
新知讲授
四
⊙创建用户
基本语法形式如下:
CREATE ‘用户名1’ @’主机名1‘ [IDENTIFIED BY [PASSWORD] ‘密码1’] [,‘用户名2’@‘主机名2’ [IDENTIFIED BY [PASSWORD] ‘密码2’]] [,....];
➽ 使用CREATE USER语句创建新用户
说明:
1、使用CREATE USER语句创建新用户时,必须拥有CREATE USER权限;
2、主机名可以省略,若省略,则默认为”%”,表示对所有主机开放权限;
3、IDENTIFIED BY:用来设置用户密码,可以省略;
新知讲授
四
⊙创建用户
基本语法形式如下:
GRANT 权限类型 ON 数据库名.表名 TO 用户1 [IDENTIFIED BY [PASSWORD] ‘密码1’] [,‘用户名2 [IDENTIFIED BY [PASSWORD] ‘密码2’]];
➽ 使用GRANT 语句创建新用户
说明:
1、使用GRANT语句创建新用户,同时还可以为用户授权;
2、GRANT语句也支持同时创建多个用户。
新知讲授
四
⊙创建用户
基本语法形式如下:
INSERT INTO mysql.user(host,user,authentication_string,ssl_type,ssl_cipher,x509_issuer,x509_subject) VALUES(‘hostname’,’username’,’ ’,’ ’,’ ’,’ ’) ;
➽ 使用INSERT 语句创建新用户
说明:
1、ssl_type,ssl_cipher,x509_issuer,x509_subject这4个字段不允许为空,并且没有默认值,因此使用INSERT语句创建用户时,需要给这几个字段设置初值,一般为空字符串即可。
新知讲授
四
⊙修改用户
基本语法形式如下:
RENAME USER ‘旧用户名’ TO ’新用户名‘ @‘新主机名’ ;
➽ 使用RENAME USER语句修改用户名称
创建用户后,可以对用户信息进行修改,包括账户名、密码、验证方式等
代码如下:
RENAME USER ‘user1’ @‘localhost’ TO ‘liming’@ ‘%’,
‘user2’ @‘localhost’ TO ‘wangwei’@ ‘localhost’;
★实例:修改用户user1和user2的名称,分别为“liming”和”wangwei”,且”liming”可以从任意主机登录。
新知讲授
四
⊙修改用户密码
基本语法形式如下:
mysqladmin -u 用户名 [-h 主机名] -p password 新密码;
1、使用mysqladmin命令修改用户密码
使用mysqladmin命令、SET语句和UPDATE语句都可以修改用户密码;
说明:
1、-u :指定待修改的用户名,通常为“root”;
2、-h : 指定待修改的登录主机名,默认为“localhost”
3、-p : 指定要修改的密码,其后的password为关键字;
新知讲授
四
⊙修改用户密码
基本语法形式如下:
SET PASSWORD [FOR ‘用户名’@‘主机名’] = PASSWORD( ‘密码’);
2、使用SET语句修改用户密码
3、使用UPDATE 语句修改mysql.user表中指定用户的密码
在MySQL中,由于用户名和密码都存储在mysql.user表中,因此用户密码的修改也可以直接使用UPDATE语句对该表进行操作。
新知讲授
四
⊙修改用户密码
实例:修改用户”user3”的密码为”user333”
代码如下:
UPDATE mysql.user
SET authentication_string =PASSWORD(‘user333’)
WHERE user=’user3’ and host=‘%’ ;
新知讲授
四
⊙删除用户
基本语法形式如下:
DROP USER ‘用户名1’ @ 主机名1 [, ‘用户名2‘ @ ’主机名2‘ ] [,....];
1、使用DROP USER命令删除用户
当不需要某个用户时,就可以删除该用户。
2、使用DELETE命令删除用户
★实例:删除用户”user3”
新知讲授
四
⊙删除用户
代码如下:
DELETE FROM mysql.user WHERE user =’user3’ and host =’%’ ;
任务三
1
权限管理
新知讲授
四
⊙权限管理
在MySQL数据库中,为了保证数据的安全性,数据库管理员需要为每个用户赋予不同的权限,以满足不同用户的需求。分配权限就是给特定的用户授予对象的访问权限。
(1)全局层级
使用ON*.*授予权限
(5)存储过程、函数级
使用EXECUTE ON PROCEDURE 或 EXECUTE ON FUNCTION授予权限
(4)列层级
使用SELECT、INSERT、UPDATE授予权限
(3)表层级
使用ON数据库.表名授予权限
(2)数据库层级
使用ON数据库名.*授予权限
新知讲授
四
基本语法形式如下:
GRANT 权限类型 ON 数据库名.表名 TO ‘用户名’ @‘主机名’ ;
➽ 使用GRANT语句分配权限
基本语法形式如下:
REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’ @‘主机名’ ;
➽ 使用REVOKE语句收回权限
任务四
1
角色管理
新知讲授
四
⊙角色概述
角色是一组具有相同权限的用户。为避免单独为每个用户账户授予权限,可以创建一组角色,并为每个用户账户授予相应的角色。
角色就是命名的特权集合,如果要向多个用户授予相同的权限集,则应按以下步骤实施:1、创建新的角色;2、授予角色权限;3、为用户分配角色。
➽ 创建角色
基本语法形式如下:
CREATE ROLE ‘角色名1’, ‘角色名2’ ,‘角色名n’ ;
新知讲授
四
基本语法形式如下:
GRANT 权限列表 ON 关系 TO 角色
➽ 授予角色权限
基本语法形式如下:
SHOW FRANTS FOR 角色
➽ 查看角色权限
基本语法形式如下:
REVOKE 权限列表 ON 关系 FROM 角色
➽ 回收角色权限
新知讲授
四
基本语法形式如下:
GRANT 角色名 TO 用户名
➽ 为用户分配角色
师生互动
五
根据本节课所学习的内容,大家分组讨论以下几个问题:
1、在我们日常生活中有哪些因素是数据库不安全因素;
2、数据库安全性级别有哪些,我们日常生活中能涉及到哪些级别;
3、用自己的语言描述在数据库用户管理中root用户和普通用户如何区分;
讨论
随堂练习
六
1、 数据库安全性级别从低到高,共分为( )个级别。
A. 三
B. 四
C. 五
D. 六
【答案】C
【解析】数据库安全性级别从低到高,共分为5个级别。
随堂练习
六
2、下列选项中,属于数据库的不安全因素有( )
A.安全环境的脆弱性
B.数据泄露
C.非授权用户的访问
D.以上三项都正确
【答案】D
【解析】数据库的不安全因素有:1、非授权用户对数据库的恶意存取和破坏;2、数据泄露;3、安全环境的脆弱性。
随堂练习
六
3、在MySQL用户管理中,root用户是指( )
A. 普通用户
B. 超级管理者
C. 受限用户
D. 审计用户
【答案】B
【解析】在MySQL用户管理中,用户分为root用户和普通用户,root用户为超级管理员。
随堂练习
六
4、MySQL中的权限是用来定义( )
A.用户的登录凭证
B. 用户的密码强度
C.用户对数据库对象的操作
D. 数据库的存储容量
【答案】 C
【解析】MySQL中的权限是用来定义用户对数据库对象的操作
随堂练习
六
5、创建用户后,可以对用户信息进行修改,若要对用户进行重命名,使用的命令是_________。
【答案】RENAME USER
6、在用户管理中,删除用户的命令是___________。
【答案】DROP USER 或 DELETE
课堂小结
七
谢谢
$$