MySQL-权限常用命令

MySQL-权限常用命令

起男 1,065 2020-12-25

MySQL-权限常用命令

查看MySQL中所有用户

 select * from mysql.user;
  • Host字段:主机名,%代表所有主机
  • User字段:用户名
  • authentication_string(password):加密后的密码

创建用户

create user '用户名'[@主机名] [identified by '密码'];
  • 注解名默认为%,表示这个用户可以从任何主机连接MySQL服务器
  • 密码可以省略

修改密码

通过管理员修改密码

set password for '用户名'@'主机名' = password('新密码');

修改自己的密码

set password = password('新密码');

通过mysql.user修改

use mysql;
update user set authentication_string = password('新密码') where user = '用户名' and host = '主机名';

这种方式需要执行flush privileges;才能对用户生效

用户授权

grant privileges on database.table to '用户名'[@'主机名'][with grant option];
  • priveleges:权限列表,可以是all,标识所有权限,也可以是 select、update等权限,多个权限间用,号分隔
  • on:用来指定权限针对哪些库和表,格式为数据库.表名.前面指定数据库名,后面是表名,*.*表示所有数据库所有表
  • to:表示将权限赋予某个用户,格式为用户名@主机名
  • with grant option:这个选项表示该用户可以将自己拥有的权限授权给别人

查看权限

查看指定用户权限

show grants for '用户名'[@'主机名'];

查看当前用户权限

show grants;

撤销授权

revoke privileges on database.table from '用户名'[@'主机名']

删除用户

方式一

drop user '用户名'[@'主机名'];

drop的方式删除用户之后,用户下次登录就会起效

方式二

delete from mysql.user where user='用户名' and host='主机名';
flush privileges;