Mysql 简明教程

MySQL - Unlock User Account

在 MySQL 中引入账户锁定和解锁,其目的是通过阻止未经授权的交易或可疑活动来提高数据库安全性。

MySQL Unlock User Account

为了检查一个账户是否已解锁,MySQL 在“mysql.user”表中提供了“account_locked”属性,它将分别保存“Y”或“N”值。如果该属性保存“N”值,则该账户被认为处于解锁模式。

Unlocking New Accounts

您可以使用 CREATE USER…​ ACCOUNT UNLOCK 语句解锁在 MySQL 中创建的新账户。默认情况下,除非另有规定,否则新创建的账户始终处于解锁状态。但是,当一个账户处于锁定状态时,ACCOUNT UNLOCK 子句用得最多。

Syntax

以下是 CREATE USER…​ ACCOUNT UNLOCK 语句的语法:

CREATE USER username@hostname
IDENTIFIED BY 'new_password' ACCOUNT UNLOCK;

Example

在以下查询中,我们使用 CREATE USER 语句在 MySQL 中创建一个新用户账户:

CREATE USER testuser@localhost
IDENTIFIED BY 'qwerty' ACCOUNT UNLOCK;

Output

以下是上面代码的输出: -

Query OK, 0 rows affected (0.02 sec)

Verification

我们可以使用以下 SELECT 语句验证“testuser”账户是否已解锁:

SELECT User, Host, account_locked
FROM mysql.user WHERE User = 'testuser';

以上代码的输出如下所示 −

Example

如上所述,新创建的用户帐户默认解锁。请看下面的示例 −

CREATE USER demo@localhost IDENTIFIED BY '000000';

Output

产生的结果如下 −

Query OK, 0 rows affected (0.02 sec)

Verification

我们可以使用下面的 SELECT 语句,验证新创建的帐户是否默认解锁 −

SELECT User, Host, account_locked
FROM mysql.user WHERE User = 'demo';

获得的输出如下 −

Unlocking Existing Accounts

我们可以使用 ALTER USER…​ ACCOUNT UNLOCK 语句解锁此前在 MySQL 中锁定的现有帐户。

Syntax

以下是 ALTER USER…​ ACCOUNT UNLOCK 语句的语法 −

ALTER USER username@hostname ACCOUNT UNLOCK;

Example

我们首先检索现有帐户“sample”的信息,包括用户名、主机及其帐户锁定状态 −

SELECT User, Host, account_locked
FROM mysql.user WHERE User = 'sample';

我们可以在下面的输出中看到,用户帐户已锁定 −

现在,我们将使用 ALTER USER 语句解锁现有帐户“sample” −

ALTER USER sample@localhost ACCOUNT UNLOCK;

Output

以下是以上查询的输出:

Query OK, 0 rows affected (0.00 sec)

Verification

我们可以使用下面的 SELECT 查询,验证帐户是否已解锁 −

SELECT User, Host, account_locked
FROM mysql.user WHERE User = 'sample';

正如我们在下面的输出中看到,现在“sample@localhost”帐户已解锁,并且可以根据其权限进行访问 −

Unlock User Account Using a Client Program

现在,让我们在此部分讨论如何使用各种客户端程序解锁 MySQL 用户。

Syntax

以下是语法 −

Example

以下是用于在各种编程语言中解锁用户的程序 −