MySQL创建用户与授权

1. 创建用户

-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
-- Password: 密码
create user '[User]'@'[Host]' identified by '[Password]';

-- 例子
create user 'test'@'%' identified by '123456';

注意:MySQL5.7及以上版本会自动安装密码校验插件,若用户密码设置过于简单会导致无法通过密码校验策略,从而抛出如下异常:

1819 - Your password does not satisfy the current policy requirements

当抛出该异常时可采取如下方法进行处理:

  1. 增加密码复杂程度,如:增加长度,添加大小写字母以及特殊字符
  2. 修改密码校验策略规则
-- 设置(全局)密码校验策略
-- LOW: 只校验密码长度
-- MEDIUM: 需校验密码长度、密码中数字字符个数、密码中大小写字母字符个数、密码中特殊字符个数
-- STRONG: 需校验密码长度、密码中数字字符个数、密码中大小写字母字符个数、密码中特殊字符个数, 而且密码中任意连续4个及以上的字符不得是字典中的单词
set global validate_password_policy=LOW;

-- 设置(全局)密码最小长度限制
set global validate_password_length=6;
-- 设置(全局)密码数字字符最小个数限制
set global validate_password_number_count=1;
-- 设置(全局)密码大小写字母字符最小个数限制
set global validate_password_mixed_case_count=1;
-- 设置(全局)密码特殊字符最小个数限制
set global validate_password_special_char_count=1;
-- 设置(全局)密码字典
set global validate_password_dictionary_file=password;

-- 查询密码校验策略
show variables like 'validate_password%';

2. 删除用户

-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
drop user '[User]'@'[Host]';

-- 例子
drop user 'test'@'%';

3. 授予权限

-- Permission: 权限(all表示所有, 常见的权限如下表)
-- Database: 数据库(数据库层级权限,关于表层级和列层级这里不做说明)
-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
grant [Permission] on [Database].* to '[User]'@'[Host]';
-- 刷新
flush privileges;

-- 例子
grant all on test.* to 'test'@'%';
grant insert,delete,update,select on test.* to 'test'@'%';
flush privileges;
权限名称权限层级权限说明
create数据库、表、索引创建数据库、表、索引的权限
drop数据库、表、视图、索引删除数据库、表、视图、索引的权限
alter修改表结构权限
index操作索引权限
insert插入数据权限
delete删除数据权限
update修改数据权限
select查询数据权限
create view视图创建视图权限
show view视图查看视图权限
create routine存储过程创建存储过程权限
alter routine存储过程修改存储过程权限
execute存储过程执行存储过程权限
lock tables服务器管理锁表权限
create user服务器管理创建用户权限
grant option-权限赋予权限

4. 回收权限

-- Permission: 权限(all表示所有, 常见的权限如上表)
-- Database: 数据库(数据库层级权限,关于表层级和列层级这里不做说明)
-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
revoke [Permission] on [Database].* from '[User]'@'[Host]';
-- 刷新
flush privileges;

-- 例子
revoke all on test.* from 'test'@'%';
revoke insert,delete,update,select on test.* from 'test'@'%';
flush privileges;

5. 查询权限

-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
show grants for '[User]'@'[Host]';

-- 例子
show grants for 'test'@'%';

6. 重置用户密码

-- User: 用户名
-- Host: 允许登录IP(%为通配符, 表示所有IP)
-- Password: 新密码
set password for '[User]'@'[Host]' = password('[Password]');

-- 例子
set password for 'test'@'%' = password('111111');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieGGu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值