当前课程知识点:MySQL数据库案例教程 > 第7章 用户与权限 > 7.1 用户管理 > 7-1用户管理 视频
同学们好
欢迎来到MySQL数据库案例教程
今天我们学习第7章用户与权限
本次课的学习内容是
用户管理
主要从用户管理概述
用户账号管理和用户密码管理
三个方面进行讲解
在开始本节内容之前
我们先来回忆一下常用的应用程序
或者是网络平台
如QQ、微信、中国大学MOOC等等
是不是都需要先注册
注册成功后会被分配账号
然后登陆个人账号密码进行使用
也就是说
几乎所有的应用程序都有这个步骤
我们注册的账号通常被称为普通用户
而负责审核和分配账号等管理操作的账号
被称为管理员用户
在MySQL8.0中
为了方便对用户信息和权限的管理
用户也分为root用户和普通用户
MySQL中的root用户也叫超级管理员
该用户可以对所有数据库进行所有权限的操作
并且可以创建普通用户
当然并不是超级用户必须命名为root
它只是在安装mysql时系统默认的名字
而我们一般也习惯用这个名字
普通用户相对来说权限就小了很多
它只具有创建该用户时赋予它的权限
学习用户管理
必须先来了解一下数据表user
在安装MySQL时
系统会自动安装一个名为mysql的数据库
该数据库的表都是权限表
其中user表是最重要的一个权限表
它记录了允许连接到服务器的账号信息
以及一些全局的权限信息
通过操作该表就可以实现用户管理
在mysql8.0中user表有51个字段
主要分为4大类
用户列
主要是由Host和User列决定的唯一用户名
权限列决定了查询
修改、关闭服务等权限
安全列用于管理用户的安全信息
资源控制列用于限制用户使用的资源
为了加深印象
我们进入命令窗口
查看一下user表的字段
登录mysql服务器
查看user中的所有字段
user中的所有字段都列出来了
一共有51个
前两个字段Host和User都是主键
表明用户名是由这两个字段共同决定的
下面很多以priv结尾的字段
都是用户的权限列
用来描述用户在全局范围内
允许对数据库和数据表进行的操作
这类字段的数据类型是枚举类型
Y表示有权限
N表示没有权限
接着从ssl开始的字段是安全列
本节课需要用到字段authentication_string
它取代了老版本中的password字段
用哈希码的形式存储密码
以max开头的几个字段是资源控制列
这里不再一一叙述
接下来
我们来学习用户账号管理
第一个是创建普通用户
先看语法
创建普通用户使用CREATE USER命令
单引号中的username
表示创建的普通用户名
hostname表示主机名
关键字IDENTIFIED BY
用于设置用户的密码
password表示用户的密码
在创建用户时也可以先不设置密码
关于主机名有3种写法
第一种是IP地址
表示这个IP可以访问数据库
第二种是localhost表示本地主机
最后一种是通配符%
表示任何情况都能访问
注意
用户名相同但主机名不同
表示的是不同的用户
例如'root'@'localhost'和'root'@'%'
是两个不同的用户
下面我们来演示一下案例1
创建三个普通用户
其中前两个有密码
最后一个密码为空
因为本节内容主要是用户管理
需要进行登录验证
所以我们的案例都在命令窗口中演示
打开命令窗口
创建新用户之前
先查看一下已有用户信息
这些都是mysql默认用户
其中root是管理员用户
现在开始用create user创建新用户
创建用户zhangs
密码111
创建用户lis
密码222
创建用户wangw
密码不设置
创建完成后再次查询用户信息
用户名中多了三个新用户
zhangs lis wangw
其中wangw的密码没有设置
所以对应的字段值为空
现在退出mysql
验证一下普通用户能否登录成功
先来测试zhangs
登录成功
然后测试lis
最后测试wangw
因为账户wangw没有密码
所以在提示输出密码行中直接敲回车
登录成功
接着来学习删除普通用户
有两种方法删除
第一种使用DROP USER删除
第二种是直接用DELETE语句删除
虽然这两种方法都能删除用户
但有着本质的区别
DROP 删除的是表结构
它删除掉的用户
不仅将user表中的数据删除
还会删除诸如db和其他权限表内的内容
而DELETE只删除表中的数据
也就是user表中的用户信息
其他表不会删除
后期如果命名一个和已删除用户名相同的名字
其权限就会被继承
现在我们通过案例2来测试这两种删除方法
注意在使用delete语句删除后
要执行重新加载用户权限的命令
打开命名窗口
退出普通用户
root用户登录
先用drop user删除lis
进入mysql数据库
再使用delete语句删除wangw
删除之后
用select语句查询一下用户名
发现user表中的lis和wangw都已删除
但是我们在删除wangw时
并没有执行FLUSH PRIVILEGES
现在退出root用户
用wangs登录一下
登录成功
而刚才查询时
user表中已经没有wangw用户了
出现这种状况的原因
就是没有重新加载用户权限
退出当前用户
登录root用户
执行FLUSH PRIVILEGES
再次使用wangw用户登录
登录不成功
因为wangw用户已被删除
关于用户账号管理就讲到这里
接下来学习用户密码修改问题
用户密码修改可以使用mysqladmin命令
也可以使用alter user语句
对于mysqladmin需要注意的是
执行该命令不需要登录MySQL服务器
语法中当主机名为localhost时可省略不写
-p后面紧跟的password是原始密码
第二个password是关键字
关键字password后面是新密码
而使用alter user语句修改密码
则需要先登录MySQL服务器
我们来看案例3的要求
使用两种修改方法
分别对root用户
和普通用户zhangs密码进行修改
切换到命令窗口
当前为未登录状态
先修改root用户密码为654321
使用新密码登录
输入alter user语句
将root的密码改回为123456
退出重新登录
验证修改成功
然后再次退出MySQL服务器
用mysqladmin命令修改用户zhangs的密码
登录验证后
用alter user语句改回原来的密码111
登录验证成功
通过刚才的实验
我们发现普通用户的密码如果忘记
可以登录root用户
通过alter user语句设置新的密码
如果是root用户忘记密码该怎么办呢?
请同学们根据提示命令语句
查询相关资料进行实践
最后我们来总结一下本次课的内容
本节课通过案例实践对创建普通用户
删除普通用户和修改用户密码
进行了详细讲解
课下请同学们多加练习
加深记忆
本次课就讲到这里
谢谢
再见
-1.1 数据库基础知识
-1.2 MySQL的安装与运行
-第1章 测试
-2.1 数据库的基本操作
-2.2 表的基本操作
-2.3 MySQL数据类型
-2.4 约束设置
-2.5 索引
--2-5索引视频
--2-5索引课件
--2-5索引实训
-第2章测试
-3.1 插入记录
-3.2 修改记录
-3.3 删除记录
--3.3删除记录
-第3章 测试
-4.1 select语句
-4.2 单表查询
-4.3 多表查询
-4.4 子查询
--4-4子查询课件
--4-4子查询实训
-4.5 外键
--4-5外键视频
--4-5外键课件
--4-5外键实训
-4.6 视图
--4-6视图视频1
--4-6视图视频2
--4-6视图课件
--4-6视图实训
-第4章测试
-5.1 函数
--5-1系统函数
--5-1函数课件
--5-1 函数实训
-5.2 流程控制语句
-5.3 事务与游标
-5.4 存储过程
-5.5 触发器
--5-5触发器视频
--5-5触发器课件
--5-5触发器实训
-第5章测试
-6.1 数据库备份与还原
-6.2 异构数据源导入导出
-第6章测试
-7.1 用户管理
-7.2 权限管理
-7.3 应用实例开发
-第7章测试