注意:复制不是代码段语句可能空格会出现异常。
查询user表信息格式化输出
select * from user\G;
查询user表主要信息
select Host,User,plugin from user;
一 管理用户
创建一个用户,注意:新创建的用户是没有任何权限的,只有登录权限。
create user '用户名'@'主机' identified by '密码';
create user 'zs'@'%' identified by '1234567';
删除一个用户
drop user '用户名'@'主机';
drop user 'zs'@'%';
修改密码
alter user '用户名'@'主机' identified by '新密码';
alter user 'zs'@'%' identified by '123456';
二 用户授权
all privileges是超级权限
一般替换为:select,insert,update,delete
授权
grant all privileges on databaseName.tableName to '用户名'@'主机';
赋予对数据库CRUD权限:grant select,insert,update,delete on test.* to 'zs'@'%';
赋予对数据库的超级权限:grant all privileges on test.* to 'zs'@'%';
撤销授权
revoke all privileges on databaseName.tableName from '用户名'@'主机';
revoke all privileges on test.* from 'zs'@'%';
刷新权限
flush privileges;
查看权限
show grant for '用户名'@'主机';
show grants for 'zs'@'%';
三 修改认证插件
mysql默认认证插件是:caching_sha2_password
这个认证插件是不允许navicat软件进行登录,想要使用navicat进行登录必须修改认证插件模式为:mysql_native_password
修改为navicat认证连接(注意用户、主机、密码):
alter user 'root'@'%' identified with mysql_native_password by '1234567';
修改为mysql默认认证连接(注意用户、主机、密码):
alter user 'root'@'%' identified with caching_sha2_password by '1234567';
四 禁止root用户远程登录
原因:root用户是mysql数据库的超级营理员,几平拥有所有权限,一旦泄露后果非常严重。默认状态下用户登录数据库用户是root,可以采用穷举暴力破解。正常情况下,数据库不会对用户登录次数做限制。
update user set Host='localhost' where User='root';