mysql用户与权限操作

时间:2023-03-09 17:58:43
mysql用户与权限操作

本文所有操作均在mysql8.1下验证,mysql5.x部分语句不适用。

1、创建用户

create user 'test'@'%' identified by ''; # 创建用户test,密码123456,%表示允许在所有主机登陆

用户表为mysql库小的user表,Host+User为联合主键。User+Host唯一确认一个用户,本文中的用户均已 'User'@'Host' 格式表示。

mysql用户与权限操作

mysql用户与权限操作

2、修改密码

alter user 'test'@'%' identified by ''; # 修改密码为654321

3、删除用户

drop user 'test'@'%';

4、分配权限

grant语句会做并集处理,而且只能分配当前操作用户所拥有的权限。

1)对 test'@'%' 用户分配所有库的全部表的全部操作权限,*.*:第一个*表示全部库,第二个*表示库下的所有表

grant all on *.* to 'test'@'%';
grant all on *.* to 'test'@'%' with grant option; // with grant option,权限可继续分配

2)分配具体库的全部表权限:

grant all on db_test.* to 'test'@'%';

3)只分配具体表的权限:

grant all on db_test.t_test to 'test'@'%';

4)指定具体操作权限:

grant select,insert,update,delete on db_test.* to 'test'@'%'; // 分配db_test库的增删改查权限

操作权限可通过show privileges 查询:

show privileges;

mysql用户与权限操作

5、查询权限

show grants for 'test'@'%';

mysql用户与权限操作

6、收回权限。收回权限与分配权限语法一致,只是关键字变成了revoke。

revoke all on *.* from 'test'@'%';

7、刷新操作权限。在分配或收回权限后记得要执行该语句。

flush privileges;