1、登录mysql
mysql -uroot -p
2、先查询都有哪些用户
select host,user from mysql.user;
红色箭头是主管理员,黄色箭头是mysql系统自带的,不要动它。蓝色箭头是子用户,这个是我以前匹配的,现在删掉,我们重新来。
3、删掉用户:
drop user '用户名'@'主机名';
drop user 'wyy'@'192.168.0.105';
4、创建用户
create user '用户名'@'允许那个主机链接' identified by '密码';
create user 'wyy'@'192.168.0.105' identified by 'wyy18222';
只允许192.168.0.105的主机链接
备注:
Mysql8.0 默认采用 caching-sha2-password 加密,有可能旧的客户端不支持,可改为 mysql_native_password;
create user 'test'@'%' identified with mysql_native_password BY '密码';
百分号%;表示任何ip地址都可以链接 create user ‘wyy’@‘192.168.0.105’ identified by ‘wyy18222’;这个是只能192.168.0.105的链接。
5、修改密码
Alter user '用户名'@'主机名' identified by '新密码';
alter user 'wyy'@'192.168.0.105' identified by '123';
6、授权
给用户授权所有权限
grant all privileges on *.* to '用户名'@'主机名' with grant option;
grant all privileges on *.* to 'wyy'@'192.168.0.105' with grant option;
grant:授权、授予 privileges:权限,特权 第一个星号:表示所有数据库 第二个星号:表示所有表 with grant option:表示该用户可以给其他用户赋予权限,但不能超过该用户的权限。这个不加也行。
例如:如果wyy只有select、update权限,没有insert、delete权限,给另一个用户授权时,只能授予它select、update权限,不能授予insert、delete权限。
给用户授权个别权限
all privileges 可换成 select,update,insert,delete,drop,create 等操作
grant select,insert,update,delete on *.* to '用户名'@'主机名';
给用户授权指定权限
给用户授予指定的数据库权限
grant all privileges on 数据库 . * to 'wyy'@'192.168.0.105';
grant all privileges on xrs . * to 'wyy'@'192.168.0.105';
将数据库名为xrs的所有权限赋予wyy
给用户授予指定的表权限
grant all privileges on 数据库 . 指定表名 to 'wyy'@'192.168.0.105';
将某个数据库下的某个表的权限赋予wyy
注意:
网上有的直接创建并赋权:
grant all privileges * . * to ‘要创建的用户’@‘localhost’ identified by ‘自定义密码’;
我在mysql8试了不行(8版本以下还没试过),要先创建用户再进行赋权,不能同时进行
7、刷新权限
flush privileges;
新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,
否则会出现拒绝访问
还有一种方法,就是重新启动mysql服务器,来使新设置生效。-
8、查看用户授权
show grants for 'wyy'@'192.168.0.105';
9、撤销用户授权(销权)
revoke all privileges on *.* from 'wyy'@'192.168.0.105';
用户有什么权限就撤什么权限
|