MySQL用户及权限管理

时间:2022-09-22 08:27:59

查看用户

mysql>SELECT user, host FROM mysql.user;  # 检索mysql数据库中的user表  % 表示所有主机的IP

MySQL用户及权限管理

查看当前用户

mysql> select user();

新建用户

新建的用户没有任何权限。用户名和IP是在一起的,登录的时候不仅要检查用户名,也要检查该用户名的IP,只有用户名和IP都符合才会登录成功

mysql>CREATE user 'leon'@'localhost' IDENTIFIED BY 'password';  #本地机器上的leon可以登录
mysql>CREATE user 'leon'@'192.168.100.134' IDENTIFIED BY 'password';  #来自192.168.100.134机器上的leon可以登录
mysql>CREATE user 'leon'@'%' IDENTIFIED BY 'password';  # 来自所有机器上的leon用户都可以登录

删除用户

mysql> drop user 'username'@'host';  # 省略host,默认为'%' 即所有主机

修改用户名

mysql> RENAME USER '用户名'@'IP地址'  TO '新用户名'@'IP地址';

修改用户密码

mysql> ALTER USER '用户名'@'IP地址' IDENTIFIED BY '新密码';
/* 用户权限相关数据保存在 mysql 数据库的 user 表中,但最好不要对齐直接进行操作 */

查看用户权限

mysql> show grants;  # 查看当前用户的权限 
mysql> show grants for 'username'@'host';  # 查看特定用户的权限
# USAGE等同于"no privileges"

MySQL用户及权限管理

给用户赋权限

mysql> grant 权限 on 数据库名.表名 to 'username'@'host';
mysql> grant ALL on dbname.* to 'leon'@'%';   # 'leon'@'%'对数据库dbname中的所有表有所有的权限

收回用户的权限

mysql> revoke 权限 on 数据库名.表名 from 'username'@'host';
mysql> revoke INSERT on dbname.* from 'leon'@'%';