6-1 MySQL用户管理 - 用户介绍

  • 用户的作用
1
2
- 登录MySQL
- 管理mysql
  • 用户的定义(用户长啥样)
1
2
3
4
5
6
7
8
MySQL中的用户: 用户名@'白名单'
白名单:允许白名单的IP登录MySQL和管理MySQL

eg:
test@'localhost':test用户只能通过本地登录MySQL
test@'10.0.0.10':test用户能够通过ip-10.0.0.10远程登录MySQL服务器
test@'10.0.0.%':test用户能够通过某个网段登录到MySQL服务器
test@'%':test用户可以通过所有IP登录MySQL服务器

6-2 MySQL用户管理 - 用户的增删改查操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 查
-- 查看当前MySQL中所有的用户
select * from mysql.user \G;

-- 查看MySQL中用户和对应的白名单
select concat(user,'@',host) from mysql.user;

-- 增
create user test@'10.0.0.%'; -- 创建test用户可以通过10.0.0.%网段登录MySQL,并且不需要密码
create user zxw@'10.0.0.%' identified by '123'; -- 创建zxw@'10.0.0.%'用户,密码是123

-- 改
alter user test@'10.0.0.%' identified by '456'; -- test@'10.0.0.%'用户修改密码
update user set host='10.0.0.8' where user='test'; -- 修改test用户的白名单

-- 删
drop user test@'10.0.0.%'; -- 删除test@'10.0.0.%'用户

-- 刷新
flush priv

6-3 MySQL权限管理 - 权限介绍

1
2
3
4
5
6
7
8
9
10
-- 权限的作用
用户对数据库中的数据有哪些管理能力
-- 如何查看权限

可以通过show privileges;查看都有哪些权限
总体权限分为四种就是增删改查

-- 查看某个用户的权限
show grants for 用户;
show grants for test@'localhost';

6-4 MySQL权限管理 - 授权/回收权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-- 授权
grant 权限 on 对象 to 用户 identified by '密码'; -- (8.0版本前,创建用户并赋予权限)

-- 8.0+版本授权操作,如果用户不存在需要先创建用户再授权
create user 用户 identified by '密码';
grant 权限1, 权限2..., all privileges(所有权限) on 对象(库表) to 用户 (with grant option);

-- 权限
all -- 所有的权限
with grant option -- 可以给其他的用户授予自己有的权限
权限1, 权限2... -- 指定一个或者几个权限

-- 权限的作用范围
*.* -- 所有的库
库名.* -- 指定库名的所有表
库名.表名 -- 某个库下的某张表

-- 授权举例 grant
- 创建并授权管理员用户zhang,能够通过10.0.0.%网段登录并管理数据库
create user zhang@'10.0.0.%' identified by '123';
grant all(所有的权限) on *.*(所有库下的所有表) to zhang@'10.0.0.%'(用户) with grant option; (超级管理员)
- 查看用户的权限
show grants for 用户;
show grants for zhang@'10.0.0.%';
- 创建并授权一个app@'10.0.0.%'用户,能够对app库下的所有表进行select, update, insert, delete操作
grant select ,update,insert,delete, create on app.* to app@'10.0.0.%' identified by '123';

-- 回收权限 revoke
revoke create(权限) on app.*(对象) from app@'10.0.0.%'(用户); # ✔️,用户的权限修改成功,回收了用户的create权限

6-5 MySQL配置文件介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 服务端
[mysqld]
port=3306 # 端口设置
basedir=D:\mysql-8.0.27-winx64 # 设置mysql的安装目录
datadir=D:\mysql-8.0.27-winx64\Data # 设置mysql数据库的数据的存放目录
max_connections=200 # 允许最大连接数
max_connect_errors=10 # 最大允许连接错误的次数
character-set-server=utf8 # 服务端使用的字符集默认为UTF8
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
default_authentication_plugin=mysql_native_password # 默认使用“mysql_native_password”插件认证

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8