MySQL用户管理和访问权限

时间:2021-10-11 08:53:51

一 用户管理

1.1 创建新用户

CREATE USER username@'主机' IDENTIFIED BY 'password';

username@'localhost' 用户只能从本地主机进行连接
username@'192.168.199.101' 用户可以从主机192.168.199.101进行连接
username@'192.168.199.%' 用户可以从任何属于192.168.199.x主机进行连接
username@'%' 用户可以从任何主机进行连接

比如创建用户hive,密码为hive,允许从任意主机连接数据库

CREATE USER hive@'%' IDENTIFIED BY 'hive';


1.2 删除用户

drop user username@hostname; 

或者

delete from user where user='username' and host='hostname';


二 访问权限

2.1 针对特定用户授予特定权限

GRANT SELECT on database.table to username@hostname给特定用户授予对特定数据库中特定表的SELECT权限
GRANT SELECT on database.* to username@hostname 给特定用户授予对特定数据库中所有表的选择权
GRANT SELECT on *.* to username@hostname 给特定用户授予对所有数据库中所有表的选择特权
GRANT CREATE,ALTER,DROP on database.* to username@hostname向特定用户授予特定数据库中,创建,更改,和删除表的特权
GRANT all privileges on *.* to username@hostname 给特定的用户授予对所有数据库的所有可用特权,事实上相当于创建了一个超级用户(类似root)


2.2 回收权限

REVOKE option 特权并且具有要撤销的特权,才能撤销特权
REVOKE SELECT,UPDATE,DELETE,INSERT on database.table FROM username@hostname;


2.3 查看权限

SHOW GRANTS FOR username@hostname;


2.4 刷新权限表

在授予和撤销权限之后,需要刷新权限表

flush privileges;