1.创建账号
#本地账号 create user '用户名'@'localhost' identified by '密码';
#远程账号(只能在一台客户端192.168.31.10上登录的账号) create user '用户名'@'客户端IP地址(192.168.31.10)' identified by '密码'; #远程账号(可以在一个网段上的所有客户端上面登录的账号) create user '用户名'@'客户端IP地址(192.168.31.%)' identified by '密码'; #远程账号(所有能ping通的客户端都可以连接) create user '用户名'@'客户端IP地址(%)' identified by '密码'; # 登录: mysql -u用户名 -p密码 -h 服务端IP
2.授权
user:*.* 控制所有库下面的所有表 db:db1.* 控制具体库下的所有表 tables_priv:db1.t1. 控制具体库下面的具体一张表 columns_priv:db1.t1.id,name 控制具体库中具体表上面的字段
设置权限:
给本地用户授予控制所有库所有表的权限。 grant all in *.* to '用户名'@'localhost'; 给本地用户授予查询所有库所有表的权限。 grant select in *.* to '用户名'@'localhost';
给本地用户授予查询db1库中所有表的权限。
grant select in db1.* to '用户名'@'localhost';
给本地用户授予查询db1库中t1表的权限。 grant select in db1.t1 to '用户名'@'localhost';
给本地用户授予查询db1库中t1表中id和那么字段以及更新age字段的权限。 grant select(id,name),update(age) in db1.t1 to '用户名'@'localhost';
回收权限:
# 回收本地用户名查询所有库所有表的权限。 revoke select on *.* from '用户名'@'localhost';
# 回收本地用户名查询db1库中所有表的权限。
revoke select on db1.* from '用户名'@'localhost';
# 回收本地用户名查询db1库中t1表的权限。 revoke select on db1.t1 from '用户名'@'localhost';
# 回收本地用户名查询db1库中t1表中id和name字段的权限。 revoke select(id,name) on db1.t1 from '用户名'@'localhost';