Как получить список учетных записей пользователей с помощью командной строки в MySQL? - PullRequest
1299 голосов
/ 16 июля 2009

Я использую утилиту командной строки MySQL и могу перемещаться по базе данных. Теперь мне нужно увидеть список учетных записей пользователей. Как я могу это сделать?

Я использую версию MySQL 5.4.1.

Ответы [ 15 ]

1815 голосов
/ 16 июля 2009

Используйте этот запрос:

SELECT User FROM mysql.user;

Который выведет таблицу следующим образом:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

Как отмечает Мэтью Шарли в комментариях к этому ответу , вы можете группировать по столбцу User, если хотите видеть уникальные имена пользователей.

438 голосов
/ 06 июля 2012

Я считаю этот формат наиболее полезным, поскольку он включает в себя поле хоста, которое важно в MySQL для различения записей пользователя.

select User,Host from mysql.user;
114 голосов
/ 30 сентября 2013

Учетная запись пользователя содержит имя пользователя и доступ на уровне хоста.

Следовательно, это запрос, который дает все учетные записи пользователей

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
48 голосов
/ 30 сентября 2013

, чтобы избежать повторений пользователей при подключении из другого источника:

select distinct User from mysql.user;
30 голосов
/ 16 июля 2009

Если вы имеете в виду реальных пользователей MySQL, попробуйте:

select User from mysql.user;
28 голосов
/ 26 октября 2016

MySQL хранит информацию о пользователе в своей собственной базе данных. Название базы данных: MySQL. Внутри этой базы данных пользовательская информация находится в таблице, наборе данных с именем user. Если вы хотите увидеть, какие пользователи настроены в пользовательской таблице MySQL, выполните следующую команду:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+
22 голосов
/ 16 июля 2009
SELECT * FROM mysql.user;

Это большая таблица, поэтому вы можете быть более разборчивы в выборе полей.

18 голосов
/ 04 марта 2014

Войдите в MySQL как root и введите следующий запрос

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+
15 голосов
/ 27 декабря 2014

Таблица mysql.db, возможно, важнее при определении прав пользователя. Я думаю, что запись в нем создается, если вы упомянули таблицу в команде GRANT. В моем случае таблица mysql.users не показала никаких полномочий для пользователя, когда он, очевидно, мог подключаться и выбирать и т. Д.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...
12 голосов
/ 02 ноября 2016

Я использую это для сортировки пользователей, поэтому разрешенные хосты легче обнаружить:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;
...