Resumo : neste tutorial, você aprenderá como usar a DROP USER
instruçã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 USER
instrução a seguir:
DROP USER account_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe, você especifica o nome da conta de usuário que deseja remover após as DROP USER
palavras-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 USER
clá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 EXISTS
clá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 USER
instruçã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 root
conta:
mysql -u root -p
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Digite a senha do root
usuá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
, remote
e 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@localhost
usando a DROP USER
instruçã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@localhost
foi 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 remote
use 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 people
banco de dados:
use people;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, crie uma nova tabela persons
no people
banco 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 people
banco 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 -p
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Digite a senha da conta do usuário alice
e pressione a Enter
tecla:
Enter password: ************
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Sexto, selecione o people
banco de dados:
use people;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Sétimo, insira uma linha na persons
tabela:
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@localhost
ainda 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 PROCESSLIST
instruçã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@localhost
possui o ID de conexão id 21
.
Nono, encerre o processo 21 usando a KILL
instrução:
KILL 21;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A conta do usuário alice
receberá uma mensagem de erro se emitir alguma consulta:
ERROR 2013 (HY000): Lost connection to MySQL server during query
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, execute a DROP USER
instruçã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 USER
instrução MySQL para remover uma ou mais contas de usuário.