1、简单介绍
MySQL的用户可以分为两大类:
(1)超级管理员用户(root),拥有全部权限
(2)普通用户,由root创建,普通用户只拥有root所分配的权限
2、使用场景
- 不同的数据库由不同的用户管理。比如小李负责公司项目a,对应管理的是数据库a;而小张负责公司项目b,对应管理的则是数据库b
- 同一数据库,需要细分到数据表的权限控制
3、创建用户
举例:创建新用户
CREATE USER 'testUser'@'%' IDENTIFIED BY '123';
(创建用户名为 testUser,密码为 123 的 远程用户)
语句格式说明:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username - 创建用户的用户名
- host - 指定该用户可以在哪个主机上登录,如果是本地用户可以用 localhost ,如果想让该用户可以从任意远程主机登录,则可以使用通配符 %
- password - 该用户的登录密码,密码可以为空,如果为空则该用户登录不需要密码
4、授权用户权限
举例:授予新用户权限
GRANT SELECT,INSERT ON pro1.workers TO 'testUser'@'%';
(授予用户 testUser 对数据库 pro1 中 workers 表 远程查看和插入数据 的权限)
语句格式说明:
GRANT privileges ON databasename.tablename TO 'username'@'host';
- privileges - 用户的操作权限,如 SELECT,INSERT,UPDATE 等,如果要授予所有权限则使用 ALL
- databasename - 数据库名
- tablename - 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*
- username - 授予权限的用户名
- host - 指定用户可以在哪个主机上操作,如果是本地用户可以用 localhost ,如果想让该用户可以从任意远程主机操作,则可以使用通配符 %
5、查看用户状态
举例:
(1)查看用户列表
use mysql;
select user,host from user;
+---------+-----------+
| user | host |
+---------+-----------+
| testUser | % |(查看所有用户的用户名和操作主机)
(2)查看用户拥有的权限
show grants for testUser@'%';
6、撤销用户权限
举例:撤销用户插入数据的权限
REVOKE INSERT ON pro1.workers FROM 'testUser'@'%';
7、删除用户
举例:删除远程用户testUser
DROP USER 'testUser'@'%';