mysql8用户管理

查看当前登录用户:

创建用户:

create user '用户名'@'主机地址' identified with mysql_native_password by '密码';

修改密码:

alter user '用户名'@'主机地址' identified with mysql_native_password by '新密码';

原因是:在mysql 5.7.9版本以后废弃了password字段和password()函数,并加密方式默认不是使用mysql_native_password再mysql8以上版本中caching_sha2_password和sha256_password认证插件比mysql_native_password插件提供的密码加密更加安全,并且caching_sha2_password加密比sha256_password的加密性能更好。由于caching_sha2_password这样优秀的安全和性能特性,让他作为MySQL8.0的默认首选认证插件,这也是默认的认证插件插件而不是mysql_native_password。

所以mysql8默认是caching_sha2_password加密,5.7.9版本后的版本默认是mysql_native_password

可以在创建和修改时使用identified with mysql_native_password来指定加密方式

mysql8使用alter user来修改用户密码:

兼容8版本下的修改密码方式只需要将加密方式写成mysql_native_password即可:

官方手册 alert user的手册

官方解释文档手册地址 新密码认证方式,官方解释

检查用户信息:

命令: select user,host,plugin,authentication_string from mysql.user;

mysql的用户信息都存储在mysql数据中的user表中,其实这就是查询这些对应字段而已

以上掌握了基本的用户创建,密码修改,和查看用户信息,但怎么修改一个账号的权限呢?

答:

授权所有权限

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机地址';

授权基本的查询修改权限,指定指定权限授权给账号

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO '用户名'@'主机名';

select是查询 insert是插入 update是更新 delete是删除 create是创建 drop是删除 alter是修改等权限

查看用户权限

show grants for '主机名'@'主机地址';

mysql5.7版本的用户管理文章

原文地址:https://www.cnblogs.com/xiaolantian/p/10754569.html