Como bloquear contas de usuário no MySQL

Resumo : neste tutorial, você aprenderá como usar as instruções CREATE USER .. ACCOUNT LOCKe ALTER TABLE .. ACCOUNT LOCKpara bloquear contas de usuário no servidor MySQL.

Para bloquear uma conta de usuário, você pode usar o CREATE USER .. ACCOUNT LOCKextrato:

CREATE USER account_name
IDENTIFIED BY 'password'
ACCOUNT LOCK;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se você omitir a ACCOUNT LOCKcláusula, a CREATE USERinstrução criará um novo usuário em estado desbloqueado por padrão.

Ou você pode usar o ALTER USER .. ACCOUNT LOCKextrato para bloquear uma conta de usuário existente:

ALTER USER account_name
IDENTIFIED BY 'password'
ACCOUNT LOCK;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O MySQL registra o estado de bloqueio da conta na account_lockedcoluna da mysql.usertabela do sistema. Os valores Ye Npara bloqueado e desbloqueado respectivamente.

MySQL bloquear conta de usuário

Observe que para desbloquear contas de usuários, você usa o ALTER USER .. ACCOUNT UNLOCKextrato.

Exemplos de bloqueio de conta de usuário

Vejamos alguns exemplos de bloqueio de contas de usuário.

1) Exemplo de uso de ACCOUNT LOCK para bloquear uma nova conta

Primeiro, crie uma nova conta de usuário david@localhost no estado bloqueado:

CREATE USER david@localhost
IDENTIFIED BY 'Secret!Pass1'
ACCOUNT LOCK;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, mostre a conta do usuário e seu status:

SELECT 
    user, host, account_locked
FROM
    mysql.user
WHERE
    user = 'david' AND 
    host='localhost';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A account_lockedcoluna da mysql.usertabela indica se uma conta está bloqueada ou não, Ybloqueada e Nnão bloqueada.

Terceiro, use a conta de usuário davidpara conectar-se ao servidor MySQL, você receberá um erro:

mysql -u david -p
Enter password: ************Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a mensagem de erro:

ERROR 3118 (HY000): Access denied for user 'david'@'localhost'. Account is locked.
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Usando ACCOUNT LOCK para bloquear um exemplo de conta de usuário existente

Primeiro, crie uma conta de usuário dolphin@localhost:

CREATE USER dolphin@localhost
IDENTIFIED BY 'Secret!pass1';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, use a conta de usuário dolphin@localhostpara fazer login no servidor MySQL:

mysql -u dolphin -p
Enter password: ********Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A conta do usuário dolphin@localhostpode fazer login com sucesso.

Terceiro, use a ALTER TABLE LOCK ACCOUNTinstrução para bloquear a conta do usuário dolphin@localhost:

ALTER USER dolphin@localhost
ACCOUNT LOCK;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, mostre o status do usuário:

SELECT 
    user, host, account_locked
FROM
    mysql.user
WHERE
    user = 'dolphin';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A conta do usuário dolphinfoi bloqueada conforme esperado.

A Locked_connectsvariável de status das variáveis ​​mostra o número de tentativas de conexão ao servidor MySQL usando uma conta bloqueada.

Quando uma conta bloqueada tenta fazer login, o MySQL aumenta a Locked_connectsvariável de status em 1.

Para exibir o número de tentativas das contas bloqueadas, você usa este comando:

SHOW GLOBAL STATUS 
LIKE 'Locked_connects';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste tutorial, você aprenderá como usar as instruções CREATE USER .. ACCOUNT LOCKe ALTER TABLE .. ACCOUNT LOCKpara bloquear contas de usuário no servidor MySQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *