MySQL DROP USUÁRIO

Resumo : neste tutorial, você aprenderá como usar a DROP USERinstrução MySQL para remover uma ou mais contas de usuário do banco de dados.

Introdução à instrução MySQL DROP USER

Para remover uma conta de usuário do servidor MySQL, você usa a DROP USERinstrução a seguir:

DROP USER account_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
MySQL DROP USUÁRIO

Nesta sintaxe, você especifica o nome da conta de usuário que deseja remover após as DROP USERpalavras-chave.

Se quiser remover várias contas de usuário de uma vez, especifique uma lista de contas de usuário separadas por vírgula na DROP USERcláusula:

DROP USER account_name [,account_name2]...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se você remover uma conta de usuário que não existe, o MySQL emitirá um erro.

No MySQL 5.7.8+, você pode usar a IF EXISTScláusula para descartar condicionalmente um usuário somente se ele existir:

DROP USER [IF EXISTS] account_name [,account_name2]...;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Além de remover a conta do usuário, a DROP USERinstrução também remove todos os privilégios do usuário de todas as tabelas de concessões.

Exemplos de DROP USER do MySQL

Vejamos alguns exemplos de abandono de usuários.

1) Usando a instrução MySQL DROP USER para descartar um exemplo de usuário

Primeiro, conecte-se ao servidor MySQL usando a rootconta:

mysql -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Digite a senha do rootusuário e pressione Enter:

Enter password: ********Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em segundo lugar, crie quatro contas de  usuários accounts api@localhost, remotee dbadmin@localhost:alice@localhost

create user api@localhost, 
remote, 
dbadmin@localhost, 
alice@localhost identified by 'Secure1Pass!';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, mostre aos usuários do servidor MySQL:

select 
  user, 
  host 
from 
  mysql.user;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a lista de usuários atual:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| remote           | %         |
| alice            | localhost |
| api              | localhost |
| bob              | localhost |
| dbadmin          | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
9 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, elimine o usuário dbadmin@localhostusando a DROP USERinstrução:

drop user dbadmin@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quinto, mostre novamente a todos os usuários:

select 
  user, 
  host 
from 
  mysql.user;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| remote           | %         |
| alice            | localhost |
| api              | localhost |
| bob              | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
8 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A conta do usuário dbadmin@localhostfoi removida com sucesso.

2) Usando a instrução DROP USER para remover várias contas de usuário

Primeiro, remova duas contas de usuário api@localhost e remoteuse a seguinte instrução:

drop user api@localhost, remote;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em segundo lugar, mostre a todos os usuários:

select user, host from mysql.user;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| alice            | localhost |
| bob              | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

3) Usando a instrução DROP USER para remover um usuário conectado

Primeiro, crie um novo banco de dados chamado people:

create database people;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, selecione o peoplebanco de dados:

use people;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, crie uma nova tabela persons no peoplebanco de dados:

create table persons(
  id int auto_increment, 
  firstName varchar(100) not null, 
  lastName varchar(100) not null, 
  primary key(id)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, conceda todos os privilégios no peoplebanco de dados ao usuário da conta alice:

grant all privileges on people.* to alice@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quinto, inicie outra sessão e conecte-se ao banco de dados usando o usuário alice@localhost:

mysql -u alice -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Digite a senha da conta do usuário alicee pressione a Entertecla:

Enter password: ************Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Sexto, selecione o peoplebanco de dados:

use people;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Sétimo, insira uma linha na personstabela:

insert into persons(firstname, lastname) 
values 
  ('John', 'Doe');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Suponha que você queira descartar o usuário alice@localhost.

No entanto, a conta do usuário alice@localhostainda está conectada ao MySQL Server. Se você descartar um usuário atualmente conectado, o usuário poderá operar normalmente até o próximo login. Neste caso, você deve informar primeiro o usuário.

Se não puder fazer isso, você pode encerrar as sessões do usuário primeiro, antes de descartar a conta do usuário.

Oitavo, use a SHOW PROCESSLISTinstrução da sessão raiz para encontrar o id da conexão:

show processlist;

Saída:

+----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+
| Id | User            | Host            | db     | Command | Time  | State                  | Info             |
+----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+
|  4 | event_scheduler | localhost       | NULL   | Daemon  | 31803 | Waiting on empty queue | NULL             |
| 20 | root            | localhost:63851 | NULL   | Query   |     0 | starting               | show processlist |
| 21 | alice           | localhost:64060 | people | Sleep   |    14 |                        | NULL             |
+----+-----------------+-----------------+--------+---------+-------+------------------------+------------------+Linguagem de código:  PHP  ( php )

A saída indica que a conta do usuário alice@localhostpossui o ID de conexão id 21.

Nono, encerre o processo 21 usando a KILLinstrução:

KILL 21;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A conta do usuário alicereceberá uma mensagem de erro se emitir alguma consulta:

ERROR 2013 (HY000): Lost connection to MySQL server during queryLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, execute a DROP USERinstrução para remover a conta do usuário alice@localhost.

drop user alice@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a DROP USERinstrução MySQL para remover uma ou mais contas de usuário.

Deixe um comentário

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