Resumo : neste tutorial, você aprenderá como usar as instruções CREATE USER .. ACCOUNT LOCK
e ALTER TABLE .. ACCOUNT LOCK
para bloquear contas de usuário no servidor MySQL.
Para bloquear uma conta de usuário, você pode usar o CREATE USER .. ACCOUNT LOCK
extrato:
CREATE USER account_name
IDENTIFIED BY 'password'
ACCOUNT LOCK;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se você omitir a ACCOUNT LOCK
cláusula, a CREATE USER
instrução criará um novo usuário em estado desbloqueado por padrão.
Ou você pode usar o ALTER USER .. ACCOUNT LOCK
extrato 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_locked
coluna da mysql.user
tabela do sistema. Os valores Y
e N
para bloqueado e desbloqueado respectivamente.
Observe que para desbloquear contas de usuários, você usa o ALTER USER .. ACCOUNT UNLOCK
extrato.
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_locked
coluna da mysql.user
tabela indica se uma conta está bloqueada ou não, Y
bloqueada e N
não bloqueada.
Terceiro, use a conta de usuário david
para 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@localhost
para 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@localhost
pode fazer login com sucesso.
Terceiro, use a ALTER TABLE LOCK ACCOUNT
instruçã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 dolphin
foi bloqueada conforme esperado.
A Locked_connects
variá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_connects
variá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 LOCK
e ALTER TABLE .. ACCOUNT LOCK
para bloquear contas de usuário no servidor MySQL.