前言
MySQL中的用户,都存储在系统数据mysql中的user表中。
管理操作
创建用户
create user '用户名'@'主机名' identified by '密码';
删除用户
drop user '用户名'@'主机名';
修改自己密码
set password = password('密码');
修改别人的密码
set password for '用户名'@'主机名' = password('密码');
权限管理操作
赋予权限
单个或多个权限
grant 权限 ON 数据库.数据对象 TO '用户名'@'主机名'
[identified by '密码'];
所有权限
grant all ON 数据库.数据对象 TO '用户名'@'主机名'
[identified by '密码'];
注意:
如果带上后面的identified by,这个语句还有2层含义:
1)如果没有该用户,会创建;
2)如果有该用户,会改密码。
细节
1)可以将某个库的某个表给某个用户使用,比如 itbull.emp
2)希望将某个库的所有的表都给用户,则可以 数据库.*
3)希望将所有库的所有表都给用户,可以写成 .
权限列表
回收权限
revoke 权限列表 ON 数据库.表名 from '用户名'@'主机名 ';
查询权限
show grants for '用户名'@'主机名';
权限马上生效
FLUSH PRIVILEGES;
细节说明
在创建用户的时候,如果不指定Host, 则为% , %表示表示所 有IP都有连接权限;
这样创建用户很危险,该用户可以远程登录,一定不要这样做。还可以这样创建用户,
create user ‘xxx’@’192.168.0.%’
表示 xxx用户在 192.168.0.*的ip可以登录mysql。在删除用户的时候,如果 host 不是 %, 需要明确指定 ‘用户’@’host’,
如果host是 %, 则删除用户不需要指定host