特别注意mysql8.0 默认的密码加密方式与其他版本不同
caching_sha2_password 是比较新的加密方式,平时很多应用都不支持
caching_sha2_password 是默认的加密方式
查看加密方法
select user,plugin from user;
1、创建用户
方式一:直接使用root用户在user表中插入记录。(不推荐)
方式二:使用SQL指令创建用户
create user '用户名'@'主机地址' identified by '明文密码';
eg create user 'onlyread'@'%' identified by '1234';
注意:主机地址可以使用'%'或者''代替,表示无限制。
mysql8.0创建用户
create user 'onlyread'@'%' identified with mysql_native_password by '1234';
2、删除用户
drop user '用户名'@'主机地址';
eg drop user 'onlyread'@'%'
drop user 用户名; //删除主机地址为'' 或者 '%' 的用户
3、修改用户密码
mysql中提供了多种修改密码的方式,基本上都必须使用对应提供的一个系统函数:password()。需要靠该函数对密码进行加密处理。
方式一:使用专门的SQL指令来修改密码
set password for 用户名 = password('新的明文密码');
方式二:使用更新语句update来修改表
update mysql.user set password = password('新的明文密码') where user = '用户名' and host='主机地址';
(mysql8.0的加密方式是caching_sha2_password 而之前的版本加密方式都是 mysql_native_password 所以这里修改和创建 mysql8.0 的用户的时候 需要修改加密方式)
mysql8.0修改密码
eg alter user 'onlyread'@'%' identified with mysql_native_password by '1234';
权限管理
1、权限分类
mysql中将权限分3类:数据权限、结构权限、管理权限
数据权限:增删改查(select/update/delete/insert)增删改查
结构权限:结构操作(create/drop/alter)创建 删除 修改表
管理权限:用户操作权限(create user/grant/revoke)创建 赋予权限 权限回收
2、grant:授予权限
将权限分配给指定用户
grant 权限列表/all privileges on 数据库.表名 to 用户;
注:1、权限列表:使用逗号分隔,但是可以使用 all privileges(表示全部权限)。
2、数据库.表名:可以是单表(数据库名.表名)、可以是某个数据库(数据库名.*)、可以是整库(*.*)
3、revoke:权限回收
revoke 权限列表/all privileges on 数据库.表名 from 用户;
4、flush:刷新权限
将当前对用户的权限操作,进行一个刷新,将操作的具体内容同步到对应的表中。
flush privileges;