MySQL 用户锁定是通过账户管理机制实现的,主要用于防止用户登录数据库。从 MySQL 5.7.16 开始,支持使用 ACCOUNT LOCK 和 ACCOUNT UNLOCK 功能来控制用户的访问状态。下面介绍如何配置和管理用户锁定。
创建带锁定状态的用户
在创建新用户时,可以直接指定该用户是否被锁定。
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password' ACCOUNT LOCK;上述语句创建了一个名为 testuser 的用户,并立即将其账户锁定,即使密码正确也无法登录。
如果不加 ACCOUNT LOCK,则默认为 ACCOUNT UNLOCK,即账户可正常使用。
锁定已存在的用户
对于已经存在的用户,可以通过 ALTER USER 语句进行锁定。
ALTER USER 'testuser'@'localhost' ACCOUNT LOCK;执行后,该用户将无法再登录 MySQL 服务器。
如果你希望批量锁定多个用户,可以依次执行 ALTER USER 命令。
解锁被锁定的用户
当需要恢复用户的访问权限时,使用 ACCOUNT UNLOCK 选项。
ALTER USER 'testuser'@'localhost' ACCOUNT UNLOCK;此命令会解除账户锁定状态,用户即可正常登录(前提是密码正确)。
查看用户锁定状态
要检查某个用户的锁定状态,可以查询 mysql.user 系统表中的 account_locked 字段。
SELECT user, host, account_locked FROM mysql.user WHERE user = 'testuser';返回结果中,account_locked 列显示为 'Y' 表示已锁定,'N' 表示未锁定。
注意:操作用户权限和锁定状态需要具备相应的管理权限,通常由具有 CREATE USER 或 SUPER 权限的管理员执行。
基本上就这些。合理使用账户锁定功能,有助于提升数据库安全,比如临时禁用不活跃或可疑账户。
