创建用户
create user 'test1'@'localhost' identified by '密码';
Mysql8.0 默认采用 caching-sha2-password 加密,目前好多客户端不支持,可改为 mysql_native_password;
create user 'test'@'%' identified with mysql_native_password BY '密码';
其中 localhost 指本地才可连接
可以将其换成 % 指任意 ip 都能连接
也可以指定 ip 连接
修改密码
Alter user 'test1'@'localhost' identified by '新密码';
flush privileges;
授权
grant all privileges on *.* to 'test1'@'localhost' with grant option;
with gran option 表示该用户可给其它用户赋予权限,但不可能超过该用户已有的权限
比如 a 用户有 select,insert 权限,也可给其它用户赋权,但它不可能给其它用户赋 delete 权限,除了 select,insert 以外的都不能
这句话可加可不加,视情况而定。
all privileges 可换成 select,update,insert,delete,drop,create 等操作 如:grant select,insert,update,delete on . to ‘test1’@’localhost’;
第一个 * 表示通配数据库,可指定新建用户只可操作的数据库
如:grant all privileges on 数据库.* to ‘test1’@’localhost’;
第二个 * 表示通配表,可指定新建用户只可操作的数据库下的某个表
如:grant all privileges on 数据库. 指定表名 to ‘test1’@’localhost’;
刷新权限
flush privileges;
查看用户授权信息
show grants for 'test1'@'localhost;
撤销权限
revoke all privileges on *.* from 'test1'@'localhost';
用户有什么权限就撤什么权限
删除用户
drop user 'test1'@'localhost';