4.20帐户锁定

MySQL支持使用账户锁定而且账号解锁的条款创建用户而且改变用户声明:

  • 与连用时创建用户,这些子句指定新帐户的初始锁定状态。如果没有这两个子句,帐户将在未锁定状态下创建。

    如果validate_password组件启用时,不允许创建没有密码的帐户,即使该帐户已被锁定。看到第6.3节“密码验证组件”

  • 与连用时改变用户,这些子句指定现有帐户的新锁定状态。如果没有任何子句,帐户锁定状态保持不变。

    从MySQL 8.0.19开始,Alter user…解锁解锁因多次失败登录而被暂时锁定的任何由语句命名的帐户。看到第4.15节,密码管理

帐户锁定状态记录在account_locked的列mysql.user系统表。的输出显示创建用户显示当前帐户是否被锁定或解锁。

如果客户端试图连接被锁定的帐户,则连接失败。的增量Locked_connects状态变量,指示尝试连接到锁定帐户的次数,返回ER_ACCOUNT_HAS_BEEN_LOCKED错误,并向错误日志中写入一条消息:

拒绝用户访问user_name“@”host_name”。帐户被锁定。

锁定帐户不会影响使用假定锁定帐户的身份的代理用户进行连接。属性的存储程序或视图的执行能力也不会受到影响定义者属性命名锁定帐户。也就是说,使用代理帐户或存储的程序或视图的能力不受锁定帐户的影响。

类型的存在决定了帐户锁定功能account_locked中的列。mysql.user系统表。如果从5.7.6以上的MySQL版本升级,请执行MySQL升级过程以确保该列存在。看到升级MySQL.对于未升级的安装account_locked列时,服务器将所有帐户视为已解锁,并使用账户锁定账号解锁子句产生错误。