MySQL创建、删除、授权用户等相关操作

89 阅读2分钟

创建用户

 CREATE USER 'username'@'host' IDENTIFIED BY 'password';
 -- username是你将创建的用户名;
 -- host是指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%;
 -- password是该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

例子:

 -- 选择mysql数据库
 use mysql;
 CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
 CREATE USER 'pig'@'192.168.1.101' IDENDIFIED BY '123456';
 CREATE USER 'cat'@'%' IDENTIFIED BY '123456';
 CREATE USER 'tiger'@'%' IDENTIFIED BY '';
 CREATE USER 'zebra'@'%';
 -- 刷新MySQL的系统权限相关表,使添加用户操作生效,以免会出现拒绝访问
 flush privileges;

修改用户密码

 -- 使用update指令,注意这里的password需要进行加密
 use mysql;
 update user set password = password('iamsuperman') where user = 'superboy';  -- 这种方法是直接修改user表
 flush privileges;
 ----------------或者------------------
 set password for superboy@'localhost'= password('iamsuperman'); -- 最新版本已经不支持这种方法了
 flush privileges;
 ----------------或者------------------
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

查看用户信息

 use mysql;
 select host, user, password from user;

常用的权限类型

all privileges:所有权限。
select:读取权限。
create:创建权限。
delete:删除权限。
update:更新权限。
drop:删除数据库、数据表权限。

授权命令

 grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' identified by '用户密码' with grant option;
 -- 如果带了with grant option,那么用户可以将权限传递给其他用户
 -- 如果没带with grant option,那么用户不能给授权
 -- 简单的说就是with grant option可以将权限传递给第三方

查看用户权限

 -- 查看本地root的权限,没有指定后面的localhost则默认为'%'
 show grants for root@'localhost';
 -- 查看指定host的root的权限
 show grants for root@'192.168.122.12';

撤销用户授权

 REVOKE privilege ON databasename.tablename FROM 'username'@'host';
 -- 例子:撤销zebra的所有权限
 revoke all privileges on *.* from 'zebra'@'%';

删除用户

如果需要删除用户,可以这样:

 use mysql;
 delete from user where user='zebra' and host='%';  -- 这种方法是直接修改user表
 flush privileges;
 ----------------或者------------------
 drop user 'zebra'@'%';