Jak uzyskać listę kont użytkowników za pomocą wiersza poleceń w MySQL?

Używam narzędzia wiersza poleceń MySQL i mogę poruszać się po bazie danych. Teraz muszę zobaczyć listę kont użytkowników. Jak mogę to zrobić?

Używam wersji MySQL 5.4.1.

Author: Mustapha Hadid, 2009-07-16

15 answers

Użyj tego zapytania:

SELECT User FROM mysql.user;

Który wyświetli tabelę w następujący sposób:

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

Jak zauważa Matthew Scharley w komentarzach do tej odpowiedzi , możesz grupować według kolumny User, jeśli chcesz zobaczyć tylko unikalne nazwy użytkowników.

 1860
Author: 5 revs, 2 users 53%unknown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:51

Uważam ten format za najbardziej przydatny, ponieważ zawiera pole hosta, które jest ważne w MySQL, aby odróżnić rekordy użytkownika.

select User,Host from mysql.user;
 446
Author: spkane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-06 18:21:58

Konto użytkownika zawiera nazwę użytkownika i dostęp z poziomu hosta.

Dlatego jest to zapytanie, które daje wszystkim kontom użytkowników

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
 119
Author: RolandoMySQLDBA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-29 22:29:11

Aby uniknąć powtórzeń użytkowników, gdy łączą się z innego źródła:

select distinct User from mysql.user;
 48
Author: Nicolas Manzini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-29 22:01:52

MySQL przechowuje informacje o użytkowniku we własnej bazie danych. Nazwa bazy danych to MySQL. W tej bazie danych informacje o użytkowniku znajdują się w tabeli, zbiorze danych o nazwie user. Jeśli chcesz zobaczyć, którzy użytkownicy są skonfigurowani w tabeli użytkowników MySQL, uruchom następujące polecenie:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+
 31
Author: VPK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-27 04:31:47

Jeśli odnosisz się do rzeczywistych użytkowników MySQL, spróbuj:

select User from mysql.user;
 30
Author: Jesse Vogt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-16 03:28:16
SELECT * FROM mysql.user;

Jest to duża tabela, więc możesz chcieć bardziej selektywnie wybrać pola.

 23
Author: Etzeitet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-16 03:29:24

Zaloguj się do mysql jako root i wpisz następujące zapytanie

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+
 18
Author: sandip divekar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 06:46:24

Mysql.tabela db jest prawdopodobnie ważniejsza w określaniu praw użytkownika. Myślę, że wpis w nim jest tworzony, jeśli wspomnisz tabelę w poleceniu GRANT. W moim przypadku mysql.tabela users nie pokazywała żadnych uprawnień dla użytkownika, gdy był w stanie połączyć się i wybrać, itd.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...
 15
Author: Brad Dre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-22 08:37:16

Używam tego do sortowania użytkowników, więc dozwolone hosty są łatwiejsze do wykrycia:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;
 12
Author: Tobias Holm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 19:01:33

Wyświetla listę unikalnych użytkowników:

SELECT DISTINCT User FROM mysql.user;
 11
Author: Nikhil Chavda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-16 07:25:17

Peter i Jesse są poprawne, ale upewnij się, że najpierw wybierzesz mysql DB.

use mysql;
select User from mysql.user;

That should do your trick

 11
Author: Armin Nehzat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-30 15:56:02
$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

Wykonanie tego polecenia w Linuksie prompt najpierw zapyta o hasło użytkownika mysql root, po podaniu poprawnego hasła wydrukuje wszystkich użytkowników bazy danych do pliku tekstowego.

 5
Author: Mian Asbat Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-02 21:39:30

Uważam, że jego jeden jest bardziej przydatny, ponieważ zawiera dodatkowe informacje o uprawnieniach DML i DDL

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;
 3
Author: Alper t. Turker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-14 16:54:32
SELECT User FROM mysql.user;

Użyj powyższego zapytania, aby uzyskać użytkowników Mysql

 0
Author: Arun Karnawat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-15 05:19:11