Вы когда-нибудь хотели получить список всех пользователей на вашем сервере MySQL? Есть команды для отображения баз данных и таблиц, но нет команды в MySQL “показать пользователей”.
Эта статья объясняет, как перечислить все учетные записи пользователей на сервере базы данных MySQL через командную строку.
Прежде чем начать
Прежде чем вы начнете эту статью, мы предполагаем, что у вас уже есть MySQL или сервер MariaDB, установленный в вашей системе. Если нет, вы можете легко установить его, следуя одному из руководств ниже:
- Как установить MySQL на CentOS, Ubuntu с 16.04
- Как установить MariaDB на Ubuntu 14
Все команды будут выполнены внутри оболочки MySQL как пользователь root.
Чтобы получить доступ к оболочке MySQL, введите следующую команду и введите пароль пользователя root MySQL при запросе:
mysql -u root -p
Если вы еще не установили пароль для пользователя root в MySQL можно опустить переключатель -p
.
Если вы забыли ваш MySQL пароль root, вы можете сбросить его, следуя этой инструкции.
Показать пользователей в MySQL
MySQL хранит информацию о пользователях, в таблице с именем user
в базе данных mysql
. Чтобы получить список всех учетных записей пользователей в MySQL, можно использовать заявление SELECT
и извлечь все строки из таблицы mysql.users
:
SELECT User, Host FROM mysql.user;
Вывод должен выглядеть примерно так:
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | localhost |
| luke | % |
| yoda | % |
| alex | 10.10.0.6 |
| alex | 10.10.0.9 |
| andeyex | localhost |
| anton | localhost |
| sniper | localhost |
+------------------+-----------+
8 rows in set (0.00 sec)
Команда выше показывает только две колонки из таблицы mysql.user
(User
и Host
), в этой таблице содержится более 40 столбцов, таких как Password
, Select_priv
, Update_priv
… и т. д.
Учетная запись пользователя в MySQL состоит из имени пользователя и имени хоста.
Вы можете использовать оператор desc mysql.user;
для отображения информации о каждом столбце таблицы. Как только вы узнаете имя столбца, запустите запрос по выбранным данным.
Например, чтобы получить список всех учетных записей пользователей MySQL, включая информацию о пароле и о том, активен он или истек, вы можете использовать следующий запрос:
SELECT User, Host, Password, password_expired FROM mysql.user;
+----------------+-----------+-------------------------------------------+------------------+
| User | Host | Password | password_expired |
+----------------+-----------+-------------------------------------------+------------------+
| root | localhost | | N |
| luke | % | *AKFG85M09GH96LG058AKHUYOLN76258E149A7EC8 | N |
| yoda | % | *9550E004046348198A143A115550E1262209FB6F | N |
| alex | 10.10.0.6 | *F91C86B486B945C083BKJJF85JF94J75KHD187EC | Y |
| alex | 10.10.0.9 | | Y |
| andreyex | localhost | *17F2B1E480292KGFG587DJFR85U7JG9FFCA005AF | N |
| anton | localhost | *74409C8DB596J6JG86J7GKT9G76JY9H6EDBFC64A | N |
| sniper | localhost | *7B3022FCAECKFI6897J9H96J6IG850KYOHD95745 | N |
+----------------+-----------+-------------------------------------------+------------------+
8 rows in set (0.00 sec)
Вывод
В этой статье мы показали вам, как получить список всех учетных записей пользователей MySQL, извлекая данные из пользовательской таблицы в базе данных mysql.
Не стесняйтесь оставить комментарий, если у вас есть какие-либо вопросы.