用户管理
1. 查看系统用户(查询mysql系统数据库中的user表)
select * from mysql.user;
2. 创建用户 CREATE USER '用户名'@'主机名' identified by '密码'
-- 创建用户zhonghua,只能在当前主句localhost访问,密码为123456
create user 'zhonghua'@'localhost' identified by 'Zh010204';
如果要任意主机都能访问数据库,将主机名写成‘%’即可;
create user 'zhonghua'@'%' identified by '123456';
3. 修改用户密码 ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'
-- 修改huazi的密码为1234
alter user 'huazi'@'%' identified with mysql_native_password by '1234';
4. 删除用户 DROP USER '用户名'@'主机名'
-- 删除用户 DROP USER '用户名'@'主机名'
drop user 'zhonghua'@'localhost';
补充:设置密码的时候可能出现密码设置失败的问题,那是由于Mysql自带的一套密码策略。
代码如下所示
-- 查看Mysql密码策略
SHOW VARIABLES LIKE 'validate_password%';-- 修改密码验证强度等级
set global validate_password_policy=LOW;-- 修改密码长度最小值
set global validate_password_length=4;-- 设置密码中至少含有的数字个数
set global validate_password_number_count = 1;-- 设置密码中英文字符大小写的个数(等级为MEDIUM或以上时生效)
set global validate_password_mixed_case_count =1;-- 设置密码包含的特殊字符的最小值(等级为MEDIUM或以上时生效)
SET GLOBAL validate_password_special_char_count=0;
用户权限管理
查看权限 SHOW GRANTS FOR '用户名'@'主机名';
授予权限GRANT 权限列表 ON 数据库名.表名 to '用户名'@'主机名'
撤销权限 REVOKE ALL ON 数据库名.表名 FROM '用户名'@'主机名'
-- 查看用户权限 SHOW GRANTS FOR '用户名'@'主机名'
show grants FOR 'huazi'@'%';-- 授予权限 GRANT 权限列表 ON 数据库名.表名 to '用户名'@'主机名'
grant all on itcast.* to 'huazi'@'%';-- 撤销权限 REVOKE ALL ON 数据库名.表名 FROM '用户名'@'主机名'
revoke all on itcast.* from 'huazi'@'%';