Którzy użytkownicy MySQL mają dostęp do bazy danych?


13

Jak mogę stwierdzić, którzy użytkownicy MySQL mają dostęp do bazy danych i jakie mają uprawnienia?

Wydaje mi się, że mogę uzyskać te informacje od phpMyAdmin, kiedy kliknę „Uprawnienia”. . .

                 Users having access to "mydatabase"
User     Host       Type               Privileges              Grant
myuser1  %          database-specific  ALL PRIVILEGES          Yes
root     localhost  global             ALL PRIVILEGES          Yes
myuser2  %          database-specific  SELECT, INSERT, UPDATE  No

. . . ale chciałbym wiedzieć, jak wykonać to zapytanie z wiersza poleceń.

(phpMyAdmin często pokazuje mi składnię SQL wykonywanego polecenia, ale nie widzę go w tym przypadku).

Należy pamiętać, że nie pytam, jakie uprawnienia przyznaje dany użytkownik (tj. „POKAŻ GRANTY dla myuser1”), ale raczej, biorąc pod uwagę nazwę bazy danych, jak ustalić, którzy użytkownicy MySQL mają dostęp do tej bazy danych i jakie mają uprawnienia ? Zasadniczo, jak mogę uzyskać powyższy wykres z wiersza polecenia?

Odpowiedzi:


16

Możesz dołączyć \ G do polecenia, aby wyniki były wyświetlane w 'grid' veiw

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;

4
+1 za \ G nie widziałem tego wcześniej
jx12345

8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';

Dzięki. Ta odpowiedź wydaje się dawać te same nieprzetworzone dane, jak wykres w pytaniu. . . ale w mniej czytelnym formacie. Wydaje mi się, że przedstawienie danych w tym samym formacie jest ćwiczeniem dla czytelnika. . . ;)
Philip Durbin

2

Możesz spróbować, powinien zapewnić najlepszą czytelność:

select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';

Cli bardziej zapamiętalne dla cli:

select db,host,user from mysql.db;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.