Как посмотреть список пользователей 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;
Добавить комментарий