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;