创建用户

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'@'%';

神秘的白衣少年
1 声望0 粉丝