MySQL Obtenha lista de contas de usuário

MySQL Obtenha lista de contas de usuário

Como administrador de banco de dados, você encontrará instâncias em que precisa conhecer os usuários em um servidor MySQL. Isso permitirá que você saiba quais usuários podem executar tarefas específicas e gerenciar suas permissões.

Este tutorial explorará o método de buscar os usuários disponíveis em um servidor MySQL.

Requisitos

Antes de começarmos com este tutorial, estamos assumindo que você tem:

  1. A versão mais recente do MySQL Server instalado em seu sistema.
  2. Acesso à sessão do MySQL Shell.

Etapa 1 - Faça login para MySQL

Você acessará seu shell MySQL para mostrar e gerenciar usuários em seu servidor MySQL.

Sintaxe de comando:

$ mysql -u -p

Substitua o nome de usuário pelo usuário -alvo que você deseja fazer login.

Por exemplo, como root, execute:

$ mysql -u root -p

Digite a senha do nome de usuário. Uma vez autenticado com sucesso, você deve cair no shell SQL como mostrado:

Aqui, você pode começar a executar comandos SQL e ver a saída resultante.

Listando usuários em MySQL

Infelizmente, o MySQL não fornece um comando de usuários de show nativo que podemos usar. Isso significa que temos que brincar com a forma como o MySQL armazena informações.

Por exemplo, MySQL usa o MySQL.Tabela de usuários para armazenar informações do usuário. Podemos então usar as informações armazenadas nesta tabela para recuperar várias informações.

MySQL mostra todos os usuários

Vamos começar discutindo como recuperar todos os usuários. Execute a consulta:

Selecione
do utilizador
DE
mysql.do utilizador;

O comando recuperará a coluna do usuário do MySQL.Tabela de usuários e retorne os resultados como mostrado:

A partir da saída acima, podemos ver vários usuários, como root, mysql.sys, mysql.sessão, etc.

Lembre -se de que o comando acima pode exigir que você altere os bancos de dados. Se você receber a “consulta 1: tabela 'mysql.Erro do usuário 'não existe ”, execute o comando abaixo para alternar os bancos de dados.

> Use MySQL

Depois de obter a lista de usuários no servidor, você pode coletar informações sobre o usuário usando comandos como Desc.

Mostre usuários com sessão ativa

Também podemos obter uma lista de usuários com sessões ativas usando o banco de dados Information_schema. Este banco de dados armazena informações sobre o servidor e as sessões atuais.

Executar o comando:

O comando acima buscará o nome de usuário, o host e o banco de dados da tabela ProcessList. Isso mostra o nome de usuário atual, o host do qual o cliente está se conectando e o banco de dados ao qual eles se conectaram.

Um exemplo de saída é como mostrado:

Da saída acima, podemos ver que existem atualmente três usuários conectados. Lembre -se de que o mesmo nome de usuário, mas um host diferente é tratado como um nome de usuário diferente.

Mostre o usuário atual

Às vezes, pode ser necessário coletar informações rápidas sobre o usuário atual. Felizmente, o MySQL tem uma função de usuário () que retorna o usuário atualmente conectado.

Um exemplo é como mostrado:

Selecione
do utilizador();

O comando deve retornar as informações atuais do usuário como:

Obtenha usos com acesso a um banco de dados específico

Suponha que você queira determinar o nome de usuário com acesso a um banco de dados alvo? Você pode usar a tabela e o filtro do banco de dados para esse nome de usuário em particular.

Pegue a ilustração de código abaixo:

Selecione
*
DE
mysql.dB
ONDE
Db = 'sys' \ g;

O comando acima retornará o usuário com qualquer acesso ao banco de dados SYS. Sinta -se à vontade para substituir o sistema pelo nome do banco de dados que você deseja avaliar.

O comando retornará uma saída como mostrado:

*************************** 1. linha ***************************
Anfitrião: localhost
DB: SYS
Usuário: MySQL.sys
SELECT_PRIV: n
Insert_priv: n
Update_priv: n
Delete_priv: n
Create_priv: n
Drop_priv: n
Grant_priv: n
Referências_priv: n
Index_priv: n
ALTER_PRIV: n
Create_tmp_table_priv: n
Lock_tables_priv: n
Create_view_priv: n
Show_view_priv: n
Create_routine_priv: n
ALTER_ROUTINE_PRIV: n
Execute_priv: n
Event_priv: n
Trigger_priv: y
1 linha no conjunto (0.00 seg)

Da saída acima, podemos ver que o MySQL.O usuário do SYS tem um privilégio de acionar o banco de dados.

Conclusão

Conforme ilustrado neste tutorial, podemos usar várias tabelas e bancos de dados MySQL para buscar informações sobre os usuários. Esse recurso poderoso permite criar procedimentos e outros tipos definidos pelo usuário para coletar informações do usuário.