一、用户创建
1.创建本地用户
方法一:
创建一个用户名为localuser,密码设置为localuser123的本地用户。
create user 'localuser'@'localhost' identified by 'localuser123';
方法二:
使用grant来可以给用户赋予指定的权限,当这个用户和host的组合不存在时,则会新建。
grant [权限1,权限2...] on 库名.表名 to 用户名@'主机名/IP地址' identified by '密码';
#例子:增加一个用户为localuser,密码为localuser123,本地用户可访问。
#使localuser用户获得所有数据库中所有表的(*.*)select、insert、update、delete权限
grant select,insert,update,delete on *.* to 'localuser'@'localhost' identified by 'localuser123';
#使localuser用户获得所有权限。
grant all privileges on *.* to 'localuser'@'localhost' identified by 'localuser123';
#如果只想让该用户访问某一个库,只需要将上面的*.*改成 数据库名.*。
grant all privileges on csdn.* to 'localuser'@'localhost' identified by 'localuser123';
2.创建外网访问用户
方法一:
创建一个用户名为networkuser,密码设置为networkuser123的本地用户。
create user 'networkuser'@'%' identified by 'networkuser123';
方法二:
#例子:增加一个用户为networkuser,密码为networkuser123,让所有外网IP都能访问。
#使networkuser用户获得所有数据库中所有表的(*.*)select、insert、update、delete权限
grant select,insert,update,delete on *.* to 'networkuser'@'%' identified by 'networkuser123';
#使networkuser用户获得所有权限。
grant all privileges on *.* to 'networkuser'@'%' identified by 'networkuser123';
#如果只想让该用户访问某一个库,只需要将上面的*.*改成 数据库名.*。
grant all privileges on csdn.* to 'networkuser'@'%' identified by 'networkuser123';
3.刷新权限
创建用户后需要进行刷新
flush privileges;
二、用户修改密码
1.修改本地用户密码
set password for 'localuser'@'localhost'=password('localuser456');
#或者
UPDATE mysql.user SET Password=PASSWORD('localuser456') WHERE User='localuser' and host='localhost';
#或者
use mysql;
update user set password=password('localuser456') where user='localuser' and host='%';
2.修改外网用户密码
set password for 'networkuser'@'%'=password('networkuser456');
#或者
UPDATE mysql.user SET Password=PASSWORD('networkuser456') WHERE User='networkuser' and host='%';
#或者
use mysql;
update user set password=password('networkuser456') where user='networkuser' and host='%';
3.刷新权限
密码修改之后没有生效,需要刷新权限
flush privileges;
三、操作用户权限
1.查看用户权限
show grants for '用户'@'IP地址';
#查看本地用户权限
show grants for 'localuser'@'localhost';
#查看外网用户权限
show grants for 'networkuser'@'%';
2.修改用户权限
grant 权限 on 数据库名.表名 to '用户'@'IP地址';
#例子1
#授予用户通过外网IP操作testdata数据库中所有表的全部权限
grant all privileges on testdata.* to 'localuser'@'%' identified by 'localuser456';
#例子2
#授予用户在本地操作testdata数据库中所有表的全部权限
grant all privileges on testdata.* to 'networkuser'@'localhost' identified by 'networkuser456';
3.删除权限
revoke 权限 on 数据库名.表名 from '用户'@'IP地址';
#删除localuser用户在本地访问mysql时的insert和update权限
revoke insert, update on testdata.* from 'localuser'@'localhost';
#删除localuser用户在外网访问mysql时的insert和update权限
revoke insert, update on testdata.* from 'networkuser'@'%';
4.刷新权限
修改用户权限和删除用户权限都需要进行刷新
flush privileges;
四、修改用户
1.修改用户名
rename user '原始用户名'@'localhost' to '新用户名'@'%';
rename user 'networkuser'@'localhost' to 'networkuser_new'@'%';
2.刷新权限
修改用户名后需要刷新
flush privileges;
五、删除用户
1.用户删除
#删除本地用户
mysql> drop user 'localuser'@'localhost';
#删除外网用户
mysql> drop user 'networkuser'@'%';
#或者
# 删除本地用户
mysql> delete from user Where User='localuser' and Host='localhost';
# 删除外网用户
mysql> delete from user Where User='networkuser' and Host='%';
2.刷新权限
删除用户后需要刷新
flush privileges;