Які користувачі MySQL мають доступ до бази даних?


13

Як я можу сказати, які користувачі MySQL мають доступ до бази даних та які привілеї вони мають?

Здається, я можу отримати цю інформацію від phpMyAdmin, коли натискаю "Привілеї". . .

                 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

. . . але я хотів би знати, як виконати цей запит із командного рядка.

(phpMyAdmin часто показує мені синтаксис SQL команди, яку він виконує, але я цього не бачу в цьому випадку.)

Зауважте, що я не запитую, які гранти має конкретний користувач (наприклад, "ПОКАЗУВАТИ ГРАНТИ для myuser1"), а навпаки, даючи ім'я бази даних, як я можу визначити, які користувачі MySQL мають доступ до цієї бази даних та які привілеї вони мають ? В основному, як я можу отримати діаграму вище з командного рядка?

Відповіді:


16

Ви можете додати \ G до команди, щоб результати відображались у "grid" veiw

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

4
+1 для \ G не бачив цього раніше
jx12345

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

Дякую. Ця відповідь, схоже, видає ті самі необроблені дані, що і діаграма у запитанні. . . але в менш читаному форматі. Думаю, подання даних у тому самому форматі є вправою для читача. . . ;)
Філіп Дурбін

2

Ви можете спробувати це, щоб забезпечити найкращу читабельність:

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

Щось більш запам'ятоване для кліпу:

select db,host,user from mysql.db;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.