Сервер баз данных MySQL часто выбирают разработчики и те, кто хочет протестировать структурированный язык запросов. MySQL обладает множеством функций, которые делают его надежным, безопасным и эффективным.
Однако есть несколько способов еще больше повысить безопасность сервера MySQL. Один из них - создание пользователей с ограниченными правами доступа к базе данных.
В этом учебном пособии мы расскажем о том, почему следует создавать отдельные учетные записи пользователей MySQL, а также о том, как использовать команду MySQL SHOW USERS на сервере Linux.
Зачем создавать пользователей в MySQL Server?
Когда пользователи или администраторы баз данных устанавливают MySQL, первым пользователем, который будет создан, будет root - администратор MySQL. Пользователь root будет иметь права на все действия с базой данных MySQL.
Хотя наличие всех прав может показаться выгодным, это имеет свои недостатки в плане безопасности, а совместное использование root-пользователя несколькими людьми опасно. Хакеры часто пытаются войти в систему под именем пользователя root и похитить размещенную информацию или даже уничтожить весь сервер MySQL вместе с его данными.
Поэтому системные администраторы создают пользователей с определенными правами на некоторые базы данных. Другими словами, если будут скомпрометированы учетные данные одной учетной записи, то последствия будут минимальными и управляемыми.
Как показать пользователей в базе данных MySQL в Linux
В отличие от команд SHOW DATABASES или SHOW TABLES, которые сразу отображают все базы данных или таблицы, команды SHOW USERS в MySQL не существует. Несмотря на отсутствие такой команды, пользователи могут использовать запрос MySQL и получить полный список пользователей данного сервера баз данных MySQL.
Для получения дополнительной информации выполните следующие шаги.
1. Вход в систему от имени пользователя MySQL root
Начните с входа на VPS по протоколу SSH под пользователем root. После этого введите в командную строку MySQL следующую команду:
1 | sudo mysql -u root -p |
Затем введите пароль пользователя MySQL root.
Важно! Следует помнить, что системный пароль и пароль корня MySQL являются отдельными и могут различаться.
После того как вы войдете в консоль MySQL в качестве пользователя root, вы сможете выполнять запросы для отображения других пользователей MySQL.
2. Использование запроса MySQL SHOW USERS
Для отображения пользователей MySQL, созданных на сервере баз данных, используйте следующий запрос:
1 | SELECT user FROM mysql.user; |
В результате вы увидите список всех пользователей, которые были созданы в MySQL.
Обратите внимание, что среди пользователей могут быть дубликаты. Это связано с тем, что MySQL фильтрует доступ к серверу в зависимости от IP-адреса, с которого он поступает.
Для получения более подробной информации можно также добавить колонку host, используя следующую команду:
1 | SELECT user,host FROM mysql.user; |
Таким образом, вы сможете увидеть пользователей MySQL и то, к какому хосту или IP-адресу у них есть разрешение на доступ. В нашем случае все пользователи находятся в локальной базе данных:
3. Просмотр дополнительной информации о пользователях MySQL (опционально)
Если Вам необходима дополнительная информация о пользователях MySQL, то команда поиска может быть расширена с помощью запросов MySQL.
Например, следующая команда выведет всю возможную информацию из таблицы пользователей:
1 | SELECT * FROM mysql.user; |
Однако такой вывод может показаться слишком запутанным. Поэтому мы рекомендуем сузить поиск, используя более конкретные запросы.
Вот некоторые из наиболее популярных вариантов использования:
Предварительный просмотр столбцов таблицы
Следующий запрос выводит предварительный просмотр столбцов таблицы пользователя. Это особенно удобно, если пользователи хотят проверить информацию о конкретной таблице.
1 | DESC mysql.user |
Отображение только уникальных имен пользователей
Чтобы пропустить повторяющиеся имена пользователей, можно использовать следующий запрос:
1 | SELECT DISTINCT user FROM mysql.user; |
Истечение срока действия пароля и состояние блокировки учетной записи
Для проверки статуса истечения срока действия пароля и состояния блокировки учетной записи используйте следующий запрос:
1 | SELECT user, account_locked, password_expired FROM mysql.user; |
Отображение текущего и зарегистрированного пользователей
Текущий пользователь может быть показан с помощью следующего запроса:
1 | SELECT current_user(); |
Если вам нужна дополнительная информация, вы можете модифицировать запрос, чтобы отобразить текущих зарегистрированных пользователей с их состояниями. Эта команда полезна для поиска неработающих пользователей, потребляющих слишком много ресурсов.
1 | SELECT user,host, command FROM information_schema.processlist; |
Заключение
Администрирование сервера баз данных может быть сложной работой. Поэтому администраторы баз данных должны быть внимательны при создании и администрировании прав доступа пользователей.
Команда MySQL SHOW USERS позволяет администраторам просматривать пользователей MySQL наряду с другой важной информацией.
Напомним, что мы рассмотрели основы отображения пользователей MySQL, привязанных к базе данных, и узнали, как:
- Выводить список всех пользователей, созданных в данной базе данных MySQL
- Предварительно просматривать столбцы таблиц базы данных MySQL
- Отображать только уникальные имена пользователей в таблице
- Проверять срок действия пароля и состояние блокировки учетной записи
- Показывать текущих и вошедших в систему пользователей в базе данных MySQL.
Мы надеемся, что данное руководство было полезным для Вас. Если у вас возникли дополнительные вопросы или соображения, сообщите нам об этом в разделе комментариев ниже.