创建用户

创建用户的语句基本格式为:

create user if not exists ‘username’@‘ip’ identified with mysql_native_password by pwd

创建仅本地localhost访问用户

方法:create user if not exists ‘username’@‘localhost’ identified with mysql_native_password by pwd

示例,如下语句创建只能在本机localhost登陆访问数据的用户user_local。

create user if not exists 'user_local'@'localhost' identified with mysql_native_password by '6xJIugYIEfs6zMY5'

该方法创建的

  • 用户名为user_local。
  • ip为localhost,即只能在本机上访问数据。
  • 密码为6xJIugYIEfs6zMY5。
  • 身份验证方式为默认的mysql_native_password。

创建指定ip访问用户

方法:通过设置ip范围,以通配符%表示任意主机ip。

示例,如下语句创建只能在10.123打头的ip登陆访问数据的用户user_ip_limit。

create user if not exists 'user_ip_limit'@'10.123.%.%' identified with mysql_native_password by '6xJIugYIEfs6zMY5'

创建任意ip访问用户

方法:以通配符%表示任意主机ip。

示例,如下语句创建可以在任意ip登陆访问数据的用户user_no_limit。

create user if not exists 'user_no_limit'@'%' identified with mysql_native_password by '6xJIugYIEfs6zMY5'

设置密码有效期

在工作开发中,会出现以下场景。
场景1:要求开发人员首次必须修改密码才能继续使用。
场景2:开发人员长时间使用同一个密码会存在安全风险,则我们可以指定其每隔90天必须修改一次密码才能继续使用。

首次必须修改密码

针对场景1,我们创建一个有过期密码的用户,当开发人员第一次登陆并尝试任何语句时,都会抛出错误。只有当其通过「alter user」语句重置密码后才能继续使用mysql。

方法:创建用户时增加了关键词「password expire」
格式:create user ‘username’@‘ip’ identified with mysql_native_password by pwd password expire;

  1. 创建用户
create user 'developer'@'%'
identified with mysql_native_password by 'S&oMWhhIPax!z1Z9' password expire;

由于创建用户时增加了关键词「password expire」,第一次登陆时,执行任何语句都会抛出错误,开发人员必须使用以下语句更新密码。
image.png

alter user 'developer'@'%'
identified with mysql_native_password by '4!qosZ2&E1nc3*JJ';

image.png

每隔90天必须修改一次密码才能继续使用

针对场景2,我们要求用户每隔90天更改一次密码。

方法:alter user ‘username’@‘ip’ password expire interval 90 day;

示例代码如下,先创建好一个用户,再使用alter语句设置。

alter user 'developer'@'%' password expire interval 90 day;

备注

  1. 创建用户时,当前登录使用的用户必须拥有创建用户的权限。如root、dbadmin(自己创建)用户。
  2. 随机生成密码方式,可以使用生成随机密码网站在线生成。

image.png

  1. 其他常用参数
  2. max_queries_per_hour,用户每小时执行的最大查询数
  3. max_updates_per_hour,用户每小时执行的最大更新次数

如,

create user if not exists 'readonly'@'localhost' 
identified with mysql_native_password by 'readonlyuser'
with max_queries_per_hour 500
max_updates_per_hour 100;

以上内容进行解释:

  • 第1行指定了用户名和限制IP范围的访问。如该句表示创建一个名为readonly的用户,且该用户只能从localhost进行访问
  • 第2行为用户创建密码为「readonlyuser」。
  • 第3行表示用户每小时执行的最大查询数为500,该部分可以不设置。
  • 第4行表示用户每小时执行的最大更新次数为100,该部分亦可不进行设置,保持默认即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值