Список пользователей в MySQL

Posted by

Как посмотреть список пользователей MySQL

Как и в любой другой СУБД в MySQL можно посмотреть список всех доступных пользователей.

Шаг 1. Вход в консоль MySQL

Для начала необходимо войти в консоль MySQL. Для этого в терминале необходимо ввести следующую команду, где alex имя вашего пользователя:

mysql -u user -p

Если вход в оболочку осуществляется впервые, то необходимо войти под пользователем root. Далее отобразится фраза с предложением ввести пароль пользователя. На этом этапе необходимо ввести пароль именно пользователя БД, а не пользователя, присутствующего в операционной системе. В качестве безопасности пароль не отображается при вводе в терминале.

Шаг 2. Просмотр доступных полей

Пользователи в MySQL хранятся в базе данных под названием mysql в таблице user. Для того чтобы получить список пользователей MySQL нужно вывести содержимое этой таблицы. Однако из-за большого числа столбцов, вывод команды не отображается корректно. В этом случае вывести список пользователей в читаемом формате можно задав необходимые столбцы.

Таблица user имеет 51 столбец. Выполнив SQL запрос представленный ниже, можно получить наименования и описания всех столбов в этой таблице.

DESCRIBE mysql.user;

В данном случае для просмотра всех доступных пользователей можно вывести всего лишь один столбец — user при помощи SQL запроса:

SELECT user FROM mysql.user;

Как посмотреть текущего пользователя

Чтобы узнать из-под какого пользователя запущена текущая сессия в СУБД необходимо выполнить следующий SQL запрос:

SELECT user();

Также можно выполнить специальную команду, присутствующую в оболочке MySQL — status. Данная команда отображает такую информацию как версию сервера MySQL, номер подключения, включен ли SSL, а также содержит параметр Current user — в котором отображается текущий пользователь. Вывод команды можно увидеть ниже:

status

Как посмотреть активных пользователей

Для вывода всех пользователей, которые подключены к СУБД в текущий момент необходимо выполнить следующий SQL запрос:

SELECT SUBSTRING_INDEX(host, ':', 1) AS host_short, GROUP_CONCAT(DISTINCT user) AS users, COUNT(*) AS threads FROM information_schema.processlist GROUP BY host_short ORDER BY COUNT(*), host_short;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *