Как посмотреть список пользователей базы MySQL
Для того, чтобы посмотреть список пользователей MySQL-базы, необходимо подключиться к ней как root (или как другой пользователь, наделенный административными правами) и выполнить команду:
- Войдите в командную строку MySQL.
- Выполните следующую команду:
SELECT USER from mysql.user;
Остались вопросы?
Если у Вас что-то не получилось или остались вопросы по данной проблеме — обратитесь к автору и он Вам поможет.
Станьте одним из экспертов!
Мы будем рады видеть в своих рядах людей, которые могут поделиться своим опытом с другими!
Linux (любые дистрибутивы), MS Windows, Cisco, Python и многое другое.
Более чем 20-летний опыт в IT позволяет мне давать Вам мудрые советы.
Как просмотреть список пользователей MySQL и их привилегий
Если вы работаете с многопользовательской базой данных MySQL, в вашем шпаргалке могут быть удобные команды, отображающие список всех существующих пользователей MySQL и их привилегии. Чтобы узнать всех пользователей MySQL и разрешения, предоставленные каждому пользователю, войдите на свой сервер MySQL и выполните следующие команды MySQL.
Получить список пользователей MySQL
mysql> select user,host from mysql.user;
+------------------+--------------+ | user | host | +------------------+--------------+ | root | % | | root | 127.0.0.1 | | debian-sys-maint | localhost | | root | localhost | | root | stack.domain | +------------------+--------------+ 8 rows in set (0.01 sec)
Приведенный выше вывод показывает список существующих учетных записей MySQL. Обратите внимание, что учетная запись MySQL состоит из двух компонентов: user и host . Это позволяет одному и тому же пользователю использовать разные учетные записи MySQL в зависимости от того, с какого хоста они подключаются. % – это подстановочный знак, интерпретируемый как любой хост.
Найдите привилегии, предоставленные определенной учетной записи MySQL
mysql> show grants for 'root'@'%';
+------------------------------------------------+ | Grants for root@% | +------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' . | +------------------------------------------------+ 1 row in set (0.00 sec)
Как и выше, когда вы указываете конкретную учетную запись MySQL для проверки привилегий, используйте имя учетной записи, составленное из имени пользователя и имени хоста, связанных с помощью @ .
Все права защищены. © Linux-Console.net • 2019-2023
Как посмотреть список пользователей базы MySQL и MariaDB
В сегодняшней статье мы поговорим о том как можно отобразить всех пользователей в базе данных Mysql. Кстати в MariaDB эти команды тоже подойдут которые я вам буду показывать.
Как мы все знаем, что основная функция любой базы данных это конечно хранить какую-то информацию в таблицах в структурированном виде. Доступ к этой информации мы получаем посредством авторизации в базу данных, и только потом мы можем запросить какую-то информацию из неё. Рано или поздно подходит тот момент когда мы создали очень много пользователей и нам необходимо пересмотреть их всех. Все пользователи в Mysql хранятся в системной базе данных mysql в таблице user.
Я вам покажу несколько простых запросов которые покажут вам ценную информацию о пользователях и помогут предотвратить возможные проблемы.
Если мы хотим смотреть пользователей через консоль в Linux, то нам нужно подключится к консоли Mysql командой:

Авторизоваться в базу данных мы будем из под учетной записи root, она является самой главной в базе данных Mysql. После введения команды дальше вас попросит ввести пароль от учетной записи root, если вы пароль укажите правильно то СУБД вас пропустит, а иначе получите ошибку авторизации.
Самым первым запросом мы просто запросим всех пользователей выполнивши запрос до системной базы данных mysql и в ней таблица user.
mysql> SELECT user FROM mysql.user;

Поле user в результате указывает на то как называется имя пользователя в базе данных.
Этим запросом мы просто смотрим какие у нас есть пользователи в базе данных. Пользователей mysql.infoschema, mysql.session, mysql.sys и root нам сама СУБД создает при её первоначальной установки, и по этому я вам крайне не рекомендую с ними что-нибудь делать.
Но если у нас пользователей слишком много, а мы хотим узнать их количество, то мы можем воспользоваться специальной функцией COUNT(), которая нам посчитает всех пользователей.
mysql> SELECT COUNT(user) FROM mysql.user;

Как видим в результате у нас в данный момент находится в базе данных Mysql всего 4 пользователя.
Если кто не знает, то в базе данных Mysql существуют не просто пользователи, а есть как локальные пользователи, так и внешние. Чтобы нам узнать какой пользователь локальный, а какой внешний то нам нужно выполнить тот же запрос, но еще добавить в выборку дополнительное поле по имени host.
mysql> SELECT user, host FROM mysql.user;

Знак процента % означает что пользователь у нас является внешним, а значения localhost означает что пользователь локальный. Разница между локальным и внешним большая.
Вот к примеру у нас сейчас есть пользователь root. Мы под этим пользователем подключились к базе данных через консоль на самом сервере, где у нас установлена сама СУБД. Я допустим захочу подключиться к базе данных под этим же пользователем, но из своего ноутбука, то база данных мне этого сделать не даст так как root у нас локальный.
А от если я буду авторизоваться в базу данных из своего ноутбука, и использовать учетную запись it-inzhener, то база данных меня пропустит, потому что мы явно указали что у нас эта учетная запись является внешней. А от если я буду подключаться к базе данных через консоль на самом сервере где у нас установлена СУБД Mysql, то база данных меня не пропустит потому что подключатся к базе данных локально могут только локальные пользователи.
Вот и вся разница хоть и не большая, но может создать много проблем с доступом до базы данных.
Следующим примером допустим мы хотим узнать какие у нас пользователи заблокированные, а какие нет, для этого нам нужно выполнить тот же запрос, но еще добавить в выборку дополнительный параметр account_locked.
mysql> SELECT user, account_locked FROM mysql.user;

Как видим в результате у нас появились какие-то Y и N. Так от значения N как раз и означает что пользователь является не заблокированный, а Y заблокированный, это значит что если возле учетной записи стоит N то пользователи сможет зайти в базу данных, а тот у кого стоит Y не сможет.
К примеру у нас в базе данных 1000 пользователей и подсчитывать сколько заблокированных, а сколько нет то это очень сложно и неудобно. Для такой цели мы можем наших пользователей сгруппировать с помощью дополнительной команды GROUP BY.
mysql> SELECT account_locked, COUNT(user) FROM mysql.user GROUP BY account_locked;

В результате мы видим, что у нас 4 пользователя сейчас заблокированы и они не смогут пройти авторизацию в базу данных. А два пользователя у нас активны и они смогут зайти в базу данных.
Следующим простым примером мы можем посмотреть под каким пользователем мы сейчас авторизированны в базе данных.
mysql> SELECT user();

mysql> SELECT current_user();

В обоих вариантах база данных нам говорим что мы сейчас авторизированны из под учетной записи root.
В следующем примере мы можем посмотреть какие пользователи в данный момент авторизированны в базе данных. Этот обеспечивает нам важную информацию при мониторинге нашей базы данных Mysql на предмет несанкционированного доступа. Такая информация хранится в системной базе данных information_schema в таблице processlist.
mysql> SELECT user, host,db, command FROM information_schema.processlist;

- user — Имя пользователя.
- host — Локальный пользователь или внешний.
- db — Имя базы данных к которой пользователь подключился.
- command — SQL запрос который пользователь выполняет в данный момент.
В итоге коллеги пользуя команды которые представлены в статье вы теперь можете легко структурировать информацию о пользователях.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.
Как посмотреть всех пользователей и привилегии в MySQL

Иногда нужно посмотреть всех пользователей, которых вы завели в MySQL и узнать их привилегии каждого из них.
Первым делом логинимся с учетной записью root в MySQL.
#mysql -uroot -p
Затем выбираем системную базу данных MySQL:
mysql>use mysql;
Далее выбираем все имена пользователей, которые у нас существуют:
mysql>select user from user;
В ответ на команду будут выведены все пользователи MySQL.
Для того, чтобы узнать привилегии пользователя в MySQL, используя консоль, выполняем:
mysql>show grants for %username%;
где вместо %username% подставляем нужное нам имя пользователя и получаем привилегии данного пользователя.
Список описанных опций можно найти в документации.
Похожие статьи на сайте
- Шпаргалка основных команд mysql по работе с базой данных и таблицам
- Настройка удаленного доступа MySQL и MariaDB в Linux Ubuntu
- Процесс создания базы MySQL, нового пользователя и загрузки дампа
- Как посмотреть всех пользователей и привилегии в MySQL
- Проверка, восстановление и оптимизация баз MySQL
- Установка Nginx, MariaDB и PHP-FPM на Ubuntu 16.04
- Как полностью удалить MySQL из Ubuntu
- Удаление всех таблиц из базы MySQL
- Установка сервера percona
- Установка Nginx+php5-fpm+MariaDB на Ubuntu 14.04
- Дампы баз данных MySql — mysqldump
- Перенос баз данных MySQL
- Защита phpMyAdmin
