Кто имеет доступ к вашей базе? Смотрим всех пользователей MySQL
Ваша база данных — это не безлюдный остров. Наверняка к ней подключен не один пользователь, и вы даже не подозреваете, кто и когда заходил. Знать, кто имеет доступ к вашему MySQL-серверу — это не просто вопрос любопытства, а основа безопасности и грамотного администрирования.
Мы покажем вам, как быстро и легко получить полный список всех зарегистрированных пользователей. Вы удивитесь, обнаружив там старые и забытые учетные записи, которые могут стать лазейкой для злоумышленников.
Но на этом не всё. Вы также узнаете, как одним простым запросом определить, под каким именем работаете в системе прямо сейчас. Это особенно полезно при отладке сложных скриптов и проверке прав доступа.
А что, если вам нужно увидеть не просто список "заведенных" пользователей, а тех, кто активен в данный момент? Мы раскроем команду, которая выводит всех, кто подключен к серверу СУБД прямо сейчас, с указанием их хостов.
Всё это делается через консоль MySQL с помощью нескольких точных SQL-запросов. Мы разберем каждый шаг: от входа в оболочку до тонкостей работы с таблицей `mysql.user`, которая содержит 51 поле.
Готовы навести порядок и взять под контроль доступ к вашим данным? Переходите к полной статье, чтобы освоить эти важнейшие команды и сделать ваш сервер безопаснее.
В каждой СУБД всегда присутствует возможность посмотреть список пользователей зарегистрированных на сервере СУБД. MySQL также не лишена данной особенности. Помимо вывода списка всех пользователей зарегистрированных в MySQL дополнительно можно вывести имя текущего пользователя а также список всех пользователей которые подключены к серверу MySQL в данный момент.
В данной статье будет рассмотрено как посмотреть список пользователей MySQL присутствующих на сервере в операционной системе Ubuntu 20.04.
Содержание статьи
- Как посмотреть список пользователей MySQL
- Как посмотреть текущего пользователя
- Как посмотреть активных пользователей
- Выводы
Как посмотреть список пользователей MySQL
Как и в любой другой СУБД в MySQL можно посмотреть список всех доступных пользователей.
Шаг 1. Вход в консоль MySQL
Для начала необходимо войти в консоль MySQL. Для этого в терминале необходимо ввести следующую команду, где alex имя вашего пользователя:
mysql -u alex -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;

Выводы
В данной статье было рассмотрено как вывести список пользователей MySQL. Сделать это можно несколькими способами. Данная операция является одной из самых распространенных при администрировании сервера СУБД. Если у вас остались вопросы задавайте их в комментариях!